第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Struts2入門

難度中級(jí)
時(shí)長(zhǎng) 1小時(shí)58分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.37
407人評(píng)價(jià) 查看評(píng)價(jià)
9.6 內(nèi)容實(shí)用
9.3 簡(jiǎn)潔易懂
9.2 邏輯清晰
  • Action內(nèi)置的五個(gè)系統(tǒng)屬性

    查看全部
  • @Struts2---處理結(jié)果類型

    1.Structs2處理流程
    用戶請(qǐng)求Structs框架控制器(Action)Structs框架視圖資源
    返回String,提供代碼復(fù)用性,有利于框架分離。

    2.Action中五種內(nèi)置屬性(com.opensymphony.xwork2.Action)
    (1) SUCCESS??Action正確的執(zhí)行完成,返回相應(yīng)的視圖,success是name屬性的默認(rèn)值。
    (2) NONE??表示Action正確的執(zhí)行完成,但并不返回任何事視圖。
    (3) ERROR??表示Action執(zhí)行失效,返回錯(cuò)誤處理視圖。
    (4) LOGIN??Action因?yàn)橛脩魶]有登錄的原因沒有正確執(zhí)行,將返回該登錄視圖,要求用戶進(jìn)行登錄驗(yàn)證
    (5) INPUT??Action的執(zhí)行,需要從前端界面獲取參數(shù),INPUT就是代表這個(gè)參數(shù)輸入界面,一般在應(yīng)用中,會(huì)對(duì)這些 參數(shù)進(jìn)行驗(yàn)證,如果驗(yàn)證沒有通過,將自動(dòng)返回該視圖。

    查看全部
  • @Struts2---接收參數(shù)

    接收參數(shù)
    1.使用Action的屬性接受參數(shù),在Action中定義需要接受的屬性,并寫它的set/get方法。
    2.使用DomainModel接受參數(shù),創(chuàng)建實(shí)體類定義需要接受的屬性,并set/get方法,在Action中創(chuàng)建實(shí)體類名屬性。并在界面進(jìn)行指定。
    3.使用ModelDriver接受參數(shù),在Action中實(shí)現(xiàn)ModelDriver<實(shí)體類名>接口,并實(shí)現(xiàn)方法返回當(dāng)前需要轉(zhuǎn)換的對(duì)象,刪除set/get方法,并對(duì) 對(duì)象 進(jìn)行實(shí)例化,并取消指定。
    4.request
    5.獲取List集合中的參數(shù)。獲取多個(gè)參數(shù)。

    方式一:直接在action類中創(chuàng)建相應(yīng)的屬性和getter和setter,和前端的name名字相同。eg:前端的username,在action類中就要建立一個(gè)private String username; Struts會(huì)自動(dòng)映射為這個(gè)屬性賦值

    方式二:使用DomainModel,將username 和password兩個(gè)屬性封裝為一個(gè)類User(必須是標(biāo)準(zhǔn)的JavaBean),在action中聲明這個(gè)屬性:private User user; 同時(shí)為user設(shè)置getter和setter;在前端中的name需要設(shè)置為user.name和user.password,才能映射成功

    方式三:使用ModelDriven<T>接口,這個(gè)action必須實(shí)現(xiàn)這個(gè)接口的public T getModel()方法。此時(shí)聲明的屬性必須實(shí)例化,eg: private User user = new User(); 同時(shí)不需要getter和setter。前端的name也只需要寫username和password就可以,不需要再加域了。這種方法時(shí)最推薦的方法,因?yàn)榭梢詼p少前后端的耦合

    查看全部
  • @Struts2---編寫struts2后綴的三種方式

    方式一:在struts.xml中設(shè)置

    <constant?name="struts.action.extension"?value="do"></constant>

    方式二:在struts.properties中設(shè)置

    struts.action.extension=action,do

    方式三:在web.xml中的struts2過濾器中初始化參數(shù)

    <init-param>
    ?<param-name>struts.action.extension</param-name>
    ?<param-value>do</param-value>
    </init-param>


    查看全部
  • @Struts2---默認(rèn)Action

    <default-action-ref?name="index"></default-action-ref>
    <action?name="index">
    ???<result>/error.jsp</result>
    </action>
    查看全部
  • @Struts2---指定多個(gè)配置文件

    1.如果有很多個(gè)Action的配置文件,則需要在struts.xml中使用<include file="fileName.xml"/>來包含其他的配置文件

    2.struts文件中添加<constant name="struts.i18n.encoding" value="UTF-8"></constant>以防亂碼問題的出現(xiàn)

    3.配置文件和struts.xml的格式如下:

    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?struts?PUBLIC?"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.3//EN"?"http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
    ...
    </struts>
    查看全部
  • @Struts2---動(dòng)態(tài)方法調(diào)用
    動(dòng)態(tài)方法調(diào)用是為了解決一個(gè)Action對(duì)應(yīng)多個(gè)請(qǐng)求的處理,以免Action太多。

    三種方式
    1:指定method屬性

    <action?name="addAction"?method="add"?class="com.action.HelloWorldAction">
    http://localhost:8080/struts2/aaa/addAction.action

    2:感嘆號(hào)方式

    <constant?name="struts.enable.DynamicMethodInvocation"?value="true"></constant>
    <action?name="helloworld"?class="com.action.HelloWorldAction">
    ??????<result?>/result.jsp</result>
    ??????<result?name="add">/add.jsp</result>
    ??????<result?name="update">/update.jsp</result>
    </action>
    http://localhost:8080/struts2/aaa/helloworld!add.action

    3:通配符方式(推薦)

    <action?name="*_*_*"?method="{2}"?class="com.{3}.{1}Action">
    ??????<result?>/{2}.jsp</result>
    ??????<result?name="add">/{2}.jsp</result>
    ??????<result?name="update">/{2}.jsp</result>
    </action>
    http://localhost:8080/struts2/aaa/HelloWorld_add_action.action
    查看全部
  • @Struts2---Action搜索順序

    例子:
    http://localhost:8080/product_one/hellowworld.jsp可以進(jìn)入result.jsp頁(yè)面
    http://localhost:8080/product_one/aaa/ddd/ccc/hellowworld.jsp也可以進(jìn)入result.jsp頁(yè)面

    Action搜索順序:
    http://localhost:8080/struts2/path1/path2/path3/student.action
    第一步:判斷package是否存在,如:path1/path2/path3/

    如果package存在
    第二步:則判斷該package中action是否存在,如果不存在則到默認(rèn)namespace的package里面尋找action
    第三步:如果沒有,則報(bào)錯(cuò)

    如果package不存在:
    第二步:檢查上一級(jí)路徑的package是否存在(直到默認(rèn)namespace),重復(fù)第一步
    第三步:如果沒有則報(bào)錯(cuò)

    如果請(qǐng)求為/login.action,系統(tǒng)會(huì)根據(jù)根命名空間("/")中查找名為login的Action,如果在根命名空間中找到了名為login的Action,則該Action處理用戶的請(qǐng)求;否則系統(tǒng)將轉(zhuǎn)為在默認(rèn)命名空間中尋找名為login的Action,如果默認(rèn)的命名空間中有名為login的Action,則由該Action處理用戶的請(qǐng)求。如果兩個(gè)命名空間中都找不到名為login的Action,那么系統(tǒng)將出現(xiàn)錯(cuò)誤。

    注意:命名空間只有一個(gè)級(jí)別。如果請(qǐng)求的URL是/bookservice/search/get.action系統(tǒng)將先在/bookservice/search的命名空間下查找名為get的Action,如果在該系統(tǒng)命名空間內(nèi)找到名為get的Action,則由該Action處理該用戶的請(qǐng)求;如果在該命名空間中沒有找到名為get的Action,系統(tǒng)將直接進(jìn)入默認(rèn)的命名空間中查找名為get的Action,而不會(huì)在bookservice的命名空間下查找名為get的Action。
    可以多個(gè)包使用同一個(gè)命名空間,但是相同的命名空間相當(dāng)于同一個(gè)模塊,也就是同一個(gè)包。
    一個(gè)包中可以有name值相同的action,但是后面的action會(huì)把前面同名的action覆蓋掉

    查看全部
  • @Struts2---struts2訪問Servlet API的三種方式

    Servlet API
    ????HttpServletRequest
    ????HttpServletResponse
    ????ServletContext

    Struts2沒有Servlet API

    Struts2訪問Servlet API的三種方式
    1>使用ActionContext訪問Servlet API(推薦使用)

    ActionContext?actionContext=ActionContext.getContext();
    Map<String,?Object>?sessionMap=actionContext.getSession();
    sessionMap.put("user",?user);

    2>使用IOC的方式訪問Servlet ApI
    實(shí)現(xiàn)****Aware接口,如實(shí)現(xiàn)SessionAware接口,重寫setSession方法

    public?void?setSession(Map<String,?Object>?sessionMap)?{
    ????this.sessionMap=sessionMap;
    }
    sessionMap.put("user",user);

    3>耦合方式(ServletActionContext)訪問Servlet API(不推薦使用)

    ServletActionContext.getPageContext();
    ServletActionContext.getRequest();
    ServletActionContext.getResponse();
    ServletActionContext.getServletContext();
    查看全部
  • @Struts2---深入8個(gè)方面

    1.訪問Servlet API
    2.Action搜索順序
    3.動(dòng)態(tài)方法調(diào)用
    4.指定多個(gè)配置文件
    5.默認(rèn)Action
    6.Struts2后綴
    7.接受參數(shù)
    8.處理結(jié)果類型

    查看全部
  • web.xml
    任何MVC框架都需要與Web應(yīng)用整合,這就不得不借用于web.xml文件,只有配置web.xml文件中Servlet才會(huì)被應(yīng)用加載

    Model2:JSP+JavaBean+Servlet

    通常,所有MVC框架都需要Web應(yīng)用加載一個(gè)核心控制器,對(duì)于Struts2框架而言,需要加載StrutsPerpareAndExecuteFilter,只負(fù)責(zé)Web應(yīng)用加載StrutsPerpareAndExecuteFilter,StrutsPerpareAndExecuteFilter將會(huì)加載Struts2框架。
    遇到.acton文件就會(huì)攔截并進(jìn)行處理

    struts.xml
    struts2的核心配置文件,在開發(fā)過程中利用率最高。
    該文件主要負(fù)責(zé)管理Action的映射,以及該Action包含的Result定義等。

    struts.xml中包含的內(nèi)容:
    1、全局屬性
    2、用戶請(qǐng)求和相應(yīng)Action之間的對(duì)應(yīng)關(guān)系
    3、Action可能會(huì)用到的參數(shù)和返回結(jié)果
    4、各種攔截器的配置

    struts.properties
    struts2框架的全局屬性文件,自動(dòng)加載
    和strusts.xml在一個(gè)路徑
    該文件包含很多key-value鍵值對(duì)。
    這個(gè)文件可以不要,可以在structs.xml中進(jìn)行配置,使用constant元素可以替換

    .dtd就是約束struts.xml中可以有哪些標(biāo)簽不能有哪些標(biāo)簽
    可以通過 <include file=“”>包含其他文件
    可以把每個(gè)功能模塊獨(dú)立到一個(gè)xml配置文件中,然后用Include節(jié)點(diǎn)引用
    <package>
    package提供了將多個(gè)Action組織成為一個(gè)模塊的方式
    package的名字必須是唯一的,可以在這個(gè)包上加一些拓展的包
    <package name="包名" extends="繼承的父類的名稱" abstract設(shè)置package的屬性為抽象,抽象的package不能定義action的值, ture或false namespace 包的命名空間>

    <interceptors>為攔截器
    可以為攔截器定義name(名稱)和class(類路徑)
    <interceptor-stack>攔截器棧

    <default-interceptor-ref name="">定義默認(rèn)的攔截器,每個(gè)Action都會(huì)自動(dòng)引用如果

    查看全部
    0 采集 收起 來源:struts2核心文件

    2018-06-12

  • @Struts2---struts.properties模板

    #制定默認(rèn)編碼集,對(duì)于請(qǐng)求參數(shù)帶有中文的情況應(yīng)該設(shè)置成gbk.gb2312,默認(rèn)值utf-8
    struts.i18n.encoding=utf-8
    #是否每次HTTP請(qǐng)求到達(dá)時(shí),都重新加載國(guó)際化資源文件,默認(rèn)為false
    struts.i18n.reload?=?true
    #但struts.xml改動(dòng)后,是否重新加載該文件,在開發(fā)階段建議設(shè)置成true,提高開發(fā)效率,默認(rèn)為false
    struts.configuration.xml.reload=true
    #是否使用struts2的開發(fā)模式,可獲得更多報(bào)錯(cuò)信息,便于調(diào)試,在開發(fā)階段設(shè)置為true,默認(rèn)為false
    struts.devMode?=true
    #設(shè)置瀏覽器是否緩存靜態(tài)頁(yè)面,開發(fā)階段設(shè)置為false,以獲得服務(wù)器最新響應(yīng),默認(rèn)為true
    struts.serve.static.browserCache=true
    #指定后綴為.action形式的請(qǐng)求可以被struts2處理,可配置多個(gè)請(qǐng)求后綴,比如.do,struts等,配置多個(gè)后綴名用逗號(hào)隔開
    struts.action.extendsion=action,do,struts2,
    #配置服務(wù)器運(yùn)行時(shí)的端口號(hào),一般情況下該屬性不用修改,如果端口號(hào)占用則重新分配端口號(hào),默認(rèn)為80
    struts.url.http.port?=?8080
    查看全部
    2 采集 收起 來源:struts2核心文件

    2018-06-12

  • @Struts2---struts.xml模板

    <?xml?version="1.0"?encoding="UTF-8"??>
    <!DOCTYPE?struts?PUBLIC?
    ????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.1//EN"?
    ????"http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    	<include?file=""></include>
    	<package?name=""?extends=""?namespace=""?abstract=""?externalReferenceResolver="">
    		<interceptors>
    			<interceptor?name=""?class=""></interceptor>
    			<interceptor-stack?name="">
    				<interceptor-ref?name=""></interceptor-ref>
    			</interceptor-stack>
    		</interceptors>
    		
    		<default-interceptor-ref?name=""></default-interceptor-ref>
    		
    		<global-results>
    			<result?name="">/xxx.jsp</result>
    		</global-results>
    		
    		?<action?name=""?class=""?method=""?converter="">
    		?	<interceptor-ref?name=""></interceptor-ref>
    		?	
    		?	<result?name=""?type="">/xxx.jsp</result>
    		?	
    		?	<param?name="">值</param>
    		?</action>
    	</package>
    	
    	<constant?name=""?value=""></constant>
    </struts>
    查看全部
    2 采集 收起 來源:struts2核心文件

    2018-06-12

  • @Struts2---工作原理圖

    查看全部
  • @Struts2---代碼實(shí)現(xiàn)

    1.要導(dǎo)入的包:(共9個(gè))
    commons-fileupload(上傳下載包)
    commons-io(輸入輸出包)
    commons-lang 3-3.2(基礎(chǔ)包)
    commons-logging(日志包)
    freemarker(模板引擎,通過模板生成文本輸出的通用工具)
    structs2-core(核心包)
    xwork-core(一些類基于xwork)
    ognl(表達(dá)式)
    javassist-3.11.0.GA.jar(解析java類文件的一個(gè)包)

    2.配置web.xml文檔
    web項(xiàng)目在啟動(dòng)tomcat時(shí)第一個(gè)啟動(dòng)的文件就是web.xml
    首先定義過濾器
    <filter>
    <filter-name>struct2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    這里寫完后按住ctrl點(diǎn)擊鼠標(biāo)左鍵如果可以跳轉(zhuǎn)則證明正確
    </filter>

    filter的映射
    <filter-mapping>
    <filter-name>struct2</filter-name>
    <url-pattern>/*</url-pattern>
    /*是所有的都需要過濾
    </filter-mapping>

    映射與文件的filter-name應(yīng)該保持一致

    3.在src中創(chuàng)建struts.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    ??? "http://struts.apache.org/dtds/struts-2.3.dtd">

    <struts>

    </struts>

    4.創(chuàng)建action包
    創(chuàng)建action類讓其繼承ActionSupport
    Struts2中有一個(gè)默認(rèn)的方法不指定方法名的話有一個(gè)execute()方法
    之后去配置struts.xml中的action文件

    5.注意點(diǎn)
    編譯環(huán)境問題,類名問題,導(dǎo)包問題


    查看全部

舉報(bào)

0/150
提交
取消
課程須知
小伙伴們,學(xué)習(xí)本課程前需要具備Java Web基礎(chǔ),熟悉JSP和Servlet。
老師告訴你能學(xué)到什么?
1、能夠?qū)truts2框架有更深入的了解 2、能夠獨(dú)立編寫Struts2程序

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買該課程,無需重復(fù)購(gòu)買,感謝您對(duì)慕課網(wǎng)的支持!