亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 第一章:struts2入門(mén).txt

?? struts2.0入門(mén)介紹
?? TXT
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
一. 下載
   http://struts.apache.org/download.cgi
二. 介紹
   Apache Struts 2是一個(gè)優(yōu)秀的,可擴(kuò)展的企業(yè)級(jí)Java WEB應(yīng)用程序框架.
   是基于webwork2的框架,是WebWork和Struts社區(qū)二者的合并
   功能:
     1) 框架中包括了標(biāo)簽庫(kù)。標(biāo)簽與框架的驗(yàn)證和國(guó)際化特性相交互,來(lái)確保輸入的正確和輸出范圍.標(biāo)簽庫(kù)可以用在JSP,FreeMarker,或Velocity.當(dāng)然,其它的標(biāo)簽庫(kù),JSTL,和AJAX也可以使用,可選的同Struts標(biāo)簽.JSF組件也支持.
三. 新特性
  比struts1.x與webwork2.x
  1) Action不同,吸取webwork的action的特定,不需要繼承任何接口
  2) 線程模式不同,struts1.x的action是單例的,2.0是一個(gè)請(qǐng)求一個(gè)實(shí)例,沒(méi)有線程安全問(wèn)題,但web容器保證不會(huì)產(chǎn)生性能問(wèn)題和過(guò)多的垃圾對(duì)象
  3) servlet容器依賴(lài),action對(duì)request和response進(jìn)行了封裝,可以不依賴(lài)這些對(duì)象,但有需要,仍可訪問(wèn)它們。
  4) 可測(cè)試性,提供了StrutsTestCase,可以很方便的模擬一些對(duì)象,進(jìn)行單元測(cè)試
  5) 簡(jiǎn)化了actionform,不需要繼承任何父類(lèi)
  6) 表達(dá)式語(yǔ)言,struts1整合了jstl,2.0使用Ognl
  7) 校驗(yàn)不同,1.x用validatorForm+配置文件,2.x用xwork框架,XWork 校驗(yàn)框架使用為屬性類(lèi)類(lèi)型定義的校驗(yàn)和內(nèi)容校驗(yàn),來(lái)支持chain校驗(yàn)子屬性
  8) Struts1 支持每一個(gè)模塊有單獨(dú)的Request Processors(生命周期),但是模塊中的所有Action必須共享相同的生命周期。Struts2 支持通過(guò)攔截器堆棧(Interceptor Stacks)為每一個(gè)Action創(chuàng)建不同的生命周期。堆棧能夠根據(jù)需要和不同的Action一起使用。
四、環(huán)境要求
  servlet2.4+jsp2.0+jdk5.0
五、開(kāi)發(fā)工具
  目前J2EE開(kāi)發(fā)工具主要分為Eclipse和NetBeans兩大陣營(yíng),Eclipse的最高版本為3.3,NetBeans 的最高版本為6.0.MyEclipse 是一個(gè)功能強(qiáng)大且框架支持非常廣泛的WEB 開(kāi)發(fā)插件,該產(chǎn)品是收費(fèi)項(xiàng)目。目前MyEclipse 的最高版本為6.0,即便如此,尚不支持Struts2.0,我們只能手工配置Struts2.0 的開(kāi)發(fā)環(huán)境。
六、庫(kù)文件
  從網(wǎng)站上下載的Struts2 包含了二三十個(gè)庫(kù)文件,但大多數(shù)是可選的,有些庫(kù)是插件,用于和其他框架的整合。
  讀者可自行下載struts2-blank-2.1.0.war 壓縮包,展開(kāi)后是一個(gè)非常簡(jiǎn)單的項(xiàng)目,從WEB-INF/lib 目錄中可以看到5個(gè)庫(kù)文件,解釋如下:
	包名				說(shuō)明
	commons-logging-1.0.4.jar	日志管理
	freemarker-2.3.8.jar		表現(xiàn)層框架,定義了struts2的可視組件主題(theme)
	ognl-2.6.11.jar			OGNL表達(dá)式語(yǔ)言,struts2 支持該EL
	struts2-core-2.0.10.jar		struts2 的核心庫(kù)
	xwork-2.0.4.jar			webwork的核心庫(kù),自然需要它的支持

七. struts常用包與類(lèi)分析
  ,基本上每一個(gè)Struts2 類(lèi)都訪問(wèn)了WebWork提供的功能,從而也可以看出Struts2 與WebWork千絲萬(wàn)縷的聯(lián)系。但無(wú)論如何,Struts2 的核心功能比如將請(qǐng)求委托給哪個(gè)Action處理都是由xwork完成的,Struts2 只是在WebWork的基礎(chǔ)上做了適當(dāng)?shù)暮?jiǎn)化、加強(qiáng)和封裝,并少量保留Struts1.x 中的習(xí)慣。
  1. 常用包
    org.apache.struts2.components 
      該包封裝視圖組件,Struts2 在視圖組件上有了很大加強(qiáng),不僅增加了組件的屬性個(gè)數(shù),更新增了幾個(gè)非常有用的組件,如updownselect、doubleselect、datetimepicker、token、tree等。另外,Struts2 可視化視圖組件開(kāi)始支持主題(theme),缺省情況下,使用自帶的缺省主題,如果要自定義頁(yè)面效果,需要將組件的theme屬性設(shè)置為simple。
    org.apache.struts2.config 
      該包定義與配置相關(guān)的接口和類(lèi)。實(shí)際上,工程中的xml 和properties 文件的讀取和解析都是由WebWork 完成的,Struts 只做了少量的工作。
    org.apache.struts2.dispatcher 
      Struts2 的核心包,最重要的類(lèi)都放在該包中。
    org.apache.struts2.impl 
      該包只定義了3 個(gè)類(lèi), 他們是StrutsActionProxy 、StrutsActionProxyFactory、StrutsObjectFactory,這三個(gè)類(lèi)都是對(duì)xwork的擴(kuò)展。
    org.apache.struts2.interceptor : 定義內(nèi)置的截?cái)r器。
    org.apache.struts2.util : 實(shí)用包
    org.apache.struts2.validators : 只定義了一個(gè)類(lèi):DWRValidator。
    org.apache.struts2.views : 提供freemarker、jsp、velocity等不同類(lèi)型的頁(yè)面呈現(xiàn)。

  2. 常用的類(lèi)
    org.apache.struts2.dispatcher.Dispatcher 
      該類(lèi)有兩個(gè)作用:
	1)、初始化
	2)、調(diào)用指定的Action的execute()方法。
    org.apache.struts2.dispatcher.FilterDispatcher 
      這是一個(gè)過(guò)濾器,有四個(gè)作用:
	1)、執(zhí)行Action
	2)、清理ActionContext,避免內(nèi)存泄漏
	3)、處理靜態(tài)內(nèi)容(Serving static content)
	4)、為請(qǐng)求啟動(dòng)xwork’s的截?cái)r器鏈。

八、工作機(jī)制
    1. 表示一次Action請(qǐng)求所要經(jīng)過(guò)的Servlet filters(Servlet 過(guò)濾器)。ActionContextCleanUp 的可選過(guò)濾器,這個(gè)過(guò)濾器對(duì)于Struts2 和其他框架的集成很有幫助,例如:SiteMesh Plugin。最后一個(gè)filter就是我們注冊(cè)的過(guò)濾器FilterDispatcher。
    2. FilterDispatcher首先會(huì)根據(jù)請(qǐng)求的URL解析出對(duì)應(yīng)的action 名稱(chēng),然后去咨詢(xún)ActionMapper這個(gè)action是否需要被執(zhí)行。
    3. 如果ActionMapper決定這個(gè)action需要被執(zhí)行,把工作委派給ActionProxy。接著它會(huì)咨詢(xún)配置管理器,并讀取在struts.xml文件中定義的配置信息。接下來(lái)ActionProxy會(huì)創(chuàng)建ActionInvocation對(duì)象。
    4. ActionInvocation是Xwork原理的(Command模式)實(shí)現(xiàn)部分。它會(huì)調(diào)用這個(gè)Action已定義的攔截器(before方法),Action方法,Result方法。
    5. 最后,看上面流程的圖的方向,它會(huì)再執(zhí)行攔截器(after方法),再回到Servlet Filter部分
    6. 最后結(jié)束,并傳給用戶(hù)一個(gè)結(jié)果響應(yīng),返回到result定義的結(jié)果頁(yè)面。

    http請(qǐng)求-->一系列過(guò)濾器(FilterDispatcher)-->ActionMapper-->ActionProxy(讀取xwork.xml)-->創(chuàng)建Action對(duì)象(command模式)-->方法前攔截器-->excute方法并定位返回的視圖-->方法后攔截器-->響應(yīng)視圖

九、WebWork的三個(gè)關(guān)鍵組件
    1、  Action
    一般一個(gè)Action代表一次請(qǐng)求或調(diào)用,是基于Command模式的實(shí)現(xiàn)。在WebWork中,一般Action類(lèi)需要實(shí)現(xiàn)Action接口,或者直接繼承基礎(chǔ)類(lèi)ActionSupport。不要將業(yè)務(wù)邏輯放在Action中。
    2、  Result。
    它是一個(gè)結(jié)果頁(yè)面的定義。它用來(lái)指示Action執(zhí)行之后,如何顯示執(zhí)行的結(jié)果。Result Type表示如何以及用哪種視圖技術(shù)展現(xiàn)結(jié)果。通過(guò)Result Type,WebWork可以方便的支持多種視圖技術(shù);而且這些視圖技術(shù)可以互相切換,Action部分不需做任何改動(dòng)。
    3、  Interceptor。
    WebWork的攔截器,WebWork截獲Action請(qǐng)求,在Action執(zhí)行之前或之后調(diào)用攔截器方法。這樣,可以用插拔的方式將功能注入到Action中。WebWork框架的很多功能都是以攔截器的形式提供出來(lái)。例如:參數(shù)組裝,驗(yàn)證,國(guó)際化,文件上傳等等。

十、用eclipse開(kāi)發(fā)struts2.0
  1. 在eclipse中配置用戶(hù)庫(kù)
     選擇菜單Window->Preferences->Java->Build Path->User Libraries。
     new--add jars--添加27個(gè)jar包
  2. 新建web項(xiàng)目,導(dǎo)入用戶(hù)庫(kù)struts2.0
     右擊項(xiàng)目--build path--add libraries--user library--選中struts2.0--完成
  3. 修改web.xml,加上struts2.0的過(guò)濾器
	  <filter>
	    <filter-name>struts2</filter-name>
	    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	  </filter>
	  <filter-mapping>
	    <filter-name>struts2</filter-name>
	    <url-pattern>/*</url-pattern>
	  </filter-mapping>
     默認(rèn)情況下,該過(guò)濾器攔截請(qǐng)求字符串中以.action 結(jié)尾的請(qǐng)求,并將該請(qǐng)求委托給指定的Action 進(jìn)行處理。

  4. 新建org.accp.struts2.action.LoginAction
	import com.opensymphony.xwork2.ActionSupport;
	/**
	 * 理論上不用繼承或?qū)崿F(xiàn)任何類(lèi)接口,但為了減少程序的編碼量
	 */
	public class LoginAction extends ActionSupport{
		/**
		 * 在父類(lèi)中定義了方法execute(),當(dāng)用戶(hù)向該Action發(fā)送請(qǐng)求時(shí)自動(dòng)調(diào)用<p>
		 * 該類(lèi)還封裝了幾個(gè)有用的功能<p>
		 * getText():從資源文件中獲取國(guó)際化消息<p>
		 * addFieldError():驗(yàn)證輸入未通過(guò)時(shí)添加錯(cuò)誤消息,支持國(guó)際化<p>
		 */
	  public String execute() throws Exception{
		return this.SUCCESS;
	  }
	}
   5. 創(chuàng)建全局配置文件struts.xml
   在src(編譯后到WEB-INF\classes)下創(chuàng)建struts.xml 文件,這是Struts2 的配置文件,類(lèi)似于Struts1.x中的struts-config.xml,在struts.xml 文件中可以配置Action、Bean、Interceptor 等組件。
   可以拷貝struts-default.xml中的dtd

	<?xml version="1.0" encoding="UTF-8" ?>
	<!DOCTYPE struts PUBLIC
	    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
	    "http://struts.apache.org/dtds/struts-2.0.dtd">
	<struts>
	  <include file="struts-default.xml"></include>
	  <package name="a" extends="struts-default">
	    <action name="login" class="org.accp.struts2.action.LoginAction">
	      <result>/index.jsp</result>
	    </action>
	  </package>
	</struts>
  
    1) include 
      包含其他xml 文件,在示例中,這意味著struts.xml 可以訪問(wèn)定義在struts-default.xml 文件中的組件。該元素可以使得Struts2 定義多個(gè)配置文件,“分而治之”。要注意的是,任何一個(gè)struts2 配置文件都應(yīng)該和struts.xml 有相同的格式,包括doctype,并且可以放在類(lèi)路徑下的任何地方。
    2) package
      為Action或截?cái)r器分組。
      name:名稱(chēng),必填項(xiàng),名稱(chēng)自定義,沒(méi)特別要求。方便別的package引用。
      extends:package 能繼承其他的package,即通過(guò)該屬性實(shí)現(xiàn),值為另一個(gè)package的name。在示例中,extends =”struts-default”是從struts-default.xml 中繼承的。
    3) action 
      定義Action,name屬性為訪問(wèn)時(shí)用到的名稱(chēng),class屬性是Action的類(lèi)名。
    4) result 根據(jù)Action的返回值定義頁(yè)面導(dǎo)航。缺省是SUCCESS
	Action的預(yù)定義的返回值有:
	String SUCCESS = "success";
	String NONE = "none";
	String ERROR = "error";
	String INPUT = "input";
	String LOGIN = "login";
      比如,當(dāng)Action返回SUCCESS時(shí)希望轉(zhuǎn)到ok.jsp頁(yè)面,則可以這樣寫(xiě):
      <result name=”success”>ok.jsp</result>

   6. 寫(xiě)返回頁(yè)面index.jsp
	<%@ page pageEncoding="gbk"%>
	<body>
	  <h1 style="color:red">第一個(gè)struts2.0應(yīng)用程序成功發(fā)布,希望再接再勵(lì),漸入佳境</h1>
	</body>
   7. 訪問(wèn)
      http://localhost:8080/test/login.action

   8. 修改index.jsp,加上登陸
	<%@ page pageEncoding="gbk"%>
	<%@ taglib prefix="s" uri="/struts-tags" %>
	<html>  
	<body>
	  <font color="red"><s:property value="message" /></font>
	  <s:form action="login">
	  <table>
	    <tr><td><s:textfield label="用戶(hù)名" name="uname"/></td></tr>
	    <tr><td><s:password label="密  碼" name="upass"/></td></tr>
	    <tr><td><s:submit/></td></tr>
	  </table>
	  </s:form>
	</body>
	</html>

   9. 修改LoginAction,處理驗(yàn)證
	public class LoginAction extends ActionSupport{
		private String uname;
		private String upass;
		private String message;
		
	  public String execute() throws Exception{
		if(!uname.equals(upass)) {
			setMessage("用戶(hù)名或密碼錯(cuò)誤");
			return this.INPUT;
		}
		return this.SUCCESS;
	  }
	  public getter/setter() {}
	}

   10. 修改struts.xml
	<?xml version="1.0" encoding="UTF-8" ?>
	<!DOCTYPE struts PUBLIC
	    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
	    "http://struts.apache.org/dtds/struts-2.0.dtd">
	<struts>
	  <include file="struts-default.xml"></include>
	  <package name="a" extends="struts-default">
	    <action name="login" class="org.accp.struts2.action.LoginAction">
	      <result>/main.jsp</result>
	      <result name="input">/index.jsp</result>
	    </action>
	  </package>
	</struts>

   11. 加上main.jsp
	<%@ page pageEncoding="gbk"%>
	<%@ taglib prefix="s" uri="/struts-tags" %>
	<html>  
	<body>
	  <h1 style="align:center;color:blue"><s:property value="uname" />,歡迎登陸!</h1>
	</body>
	</html>

   

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2020国产精品| 国产揄拍国内精品对白| 色综合视频一区二区三区高清| 久久免费午夜影院| 国产精品一二二区| 中文一区二区在线观看| 不卡区在线中文字幕| 中文字幕亚洲不卡| 欧美福利视频导航| 九色综合狠狠综合久久| 国产欧美综合在线观看第十页| 欧美日韩精品久久久| 亚洲高清免费在线| 日韩视频一区在线观看| 国产精品一区一区三区| 欧美国产禁国产网站cc| 91视频一区二区三区| 偷窥少妇高潮呻吟av久久免费| 精品国产一区二区亚洲人成毛片| 国产高清亚洲一区| 亚洲激情男女视频| 日韩欧美亚洲另类制服综合在线| 国产乱码精品一区二区三 | 香蕉加勒比综合久久| 欧美人与z0zoxxxx视频| 韩国在线一区二区| 亚洲黄色小说网站| 日韩视频免费观看高清完整版| 国产成a人亚洲| 午夜精品免费在线观看| 久久久精品中文字幕麻豆发布| 91婷婷韩国欧美一区二区| 日本午夜一本久久久综合| 国产调教视频一区| 欧美日韩黄色一区二区| 国产成人av一区| 亚洲动漫第一页| 国产午夜精品久久久久久久| 欧美日韩免费一区二区三区视频| 国产成人在线观看| 天天操天天色综合| 中文字幕视频一区| 精品国产欧美一区二区| 欧美日韩中文国产| av网站一区二区三区| 久久99蜜桃精品| 亚洲第一av色| 亚洲美女在线一区| 国产欧美日韩麻豆91| 日韩一卡二卡三卡国产欧美| 色婷婷久久综合| 国产高清久久久久| 欧美96一区二区免费视频| 17c精品麻豆一区二区免费| 欧美精品一区二区三区在线| 精品视频在线免费| 一本在线高清不卡dvd| 国产黄色91视频| 国产麻豆精品久久一二三| 日韩精品一级中文字幕精品视频免费观看 | 国产suv精品一区二区三区| 天天做天天摸天天爽国产一区 | 欧美一区二区视频在线观看2022| 91片黄在线观看| 成人午夜激情视频| 国产成人精品免费视频网站| 美女视频免费一区| 日韩av电影免费观看高清完整版在线观看| 国产女同性恋一区二区| 久久精品视频在线免费观看| 91精品国产一区二区| 欧美精品自拍偷拍动漫精品| 色综合久久综合| 91久久精品网| 欧洲精品在线观看| 欧洲日韩一区二区三区| 欧美日韩精品欧美日韩精品一| 日本精品裸体写真集在线观看 | 一区二区中文视频| 一区在线观看免费| 亚洲欧美一区二区三区久本道91| 国产精品久久久久久亚洲伦| 国产视频一区二区在线| 日本一区二区免费在线观看视频| 久久久久久99久久久精品网站| 精品福利一二区| 国产视频一区在线播放| 中文字幕精品一区二区精品绿巨人 | 欧美理论片在线| 3751色影院一区二区三区| 欧美精品tushy高清| 日韩一级二级三级| 精品国产乱码久久久久久牛牛| 精品国产在天天线2019| 久久影视一区二区| 国产精品久久久久久久久图文区 | 国产精品女人毛片| 中文字幕一区在线| 亚洲国产成人av| 日本欧美大码aⅴ在线播放| 蜜桃一区二区三区在线| 国产一区二区在线视频| 不卡的av中国片| 欧美日韩视频在线一区二区| 91精品婷婷国产综合久久| 精品少妇一区二区三区在线视频| 久久精品亚洲国产奇米99| 亚洲欧美另类久久久精品| 丝袜国产日韩另类美女| 精品一区二区免费看| av中文字幕亚洲| 精品婷婷伊人一区三区三| 2024国产精品| 亚洲欧美成人一区二区三区| 天天综合色天天| 国产麻豆精品视频| 91成人免费在线视频| 欧美一区二区免费视频| 日本一二三四高清不卡| 亚洲妇女屁股眼交7| 久久成人羞羞网站| 91在线视频观看| 91超碰这里只有精品国产| 久久久久国产一区二区三区四区 | 亚洲一区二区在线免费观看视频| 免费在线观看一区| 波多野洁衣一区| 日韩一区二区在线看片| 日韩理论片中文av| 毛片不卡一区二区| 91福利区一区二区三区| 国产欧美综合在线| 男女性色大片免费观看一区二区| www.av亚洲| 日韩精品一区二区三区中文不卡| 亚洲男人的天堂在线观看| 国产一区二区免费视频| 欧美在线999| 亚洲欧洲av另类| 国内精品国产三级国产a久久| 欧美网站大全在线观看| 国产精品国产三级国产普通话蜜臀| 日本少妇一区二区| 欧美性猛交一区二区三区精品| 国产日韩亚洲欧美综合| 免费日本视频一区| 欧美日韩中文国产| 亚洲精品国产成人久久av盗摄| 国产精品12区| 日韩欧美www| 日韩精品亚洲一区| 欧美性videosxxxxx| 最新不卡av在线| 懂色中文一区二区在线播放| 日韩一级完整毛片| 麻豆成人免费电影| 欧美高清www午色夜在线视频| 亚洲国产日韩精品| 在线视频欧美精品| 亚洲国产视频网站| 在线免费亚洲电影| 亚洲激情av在线| 欧洲在线/亚洲| 午夜国产不卡在线观看视频| 欧美中文字幕一区二区三区亚洲 | 午夜免费欧美电影| 欧美色图第一页| 亚洲精品国产高清久久伦理二区| fc2成人免费人成在线观看播放| 国产性做久久久久久| 丁香一区二区三区| 国产欧美精品一区二区色综合| 国产精品中文字幕欧美| 国产无一区二区| 成人午夜免费av| 中文字幕日韩av资源站| 色婷婷久久久亚洲一区二区三区 | 亚洲国产人成综合网站| 欧美色图天堂网| 婷婷亚洲久悠悠色悠在线播放| 欧美日韩国产首页| 久久国产精品露脸对白| 久久免费精品国产久精品久久久久| 极品美女销魂一区二区三区| 久久久噜噜噜久久人人看 | 久久综合色之久久综合| 国产精品影视天天线| 国产精品女人毛片| 91久久精品日日躁夜夜躁欧美| 亚洲成av人片一区二区三区| 91精品国产一区二区三区蜜臀 | 国产精品夜夜嗨| 亚洲视频一区在线观看| 欧美日韩精品一区二区天天拍小说| 日日夜夜免费精品视频| 国产亚洲成aⅴ人片在线观看| 91在线免费视频观看| 五月激情六月综合| 久久综合九色欧美综合狠狠| 9i在线看片成人免费|