欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      struts異??偨Y(jié)

      時(shí)間:2019-05-13 20:12:42下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《struts異??偨Y(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《struts異??偨Y(jié)》。

      第一篇:struts異??偨Y(jié)

      Java的Struts框架的異常處理

      Struts提供了一個(gè)更簡(jiǎn)單的方式來(lái)處理未捕獲的異常,并將用戶重定向到一個(gè)專門的錯(cuò)誤頁(yè)面。

      Struts的異常處理所使用的“exception”攔截容易。“exception”攔截器作為默認(rèn)的棧的一部分,所以不必做任何額外的配置。它可為準(zhǔn)備使用的盒。

      根據(jù)元素出現(xiàn)位置的不同,異常映射又可分為兩種:

      局部異常映射:將元素作為元素的子元素配置;

      全局異常映射:將元素作為元素的子元素配置;

      全局異常映射對(duì)所有的Action都有效,但局部異常映射僅對(duì)該異常映射所在的Action有效。

      如果局部異常映射和全局異常映射配置了同一個(gè)異常類型,在元素內(nèi)的局部異常映射將覆蓋全局異常映射。

      有異常往外拋即可。你也可以在方法里面拋,比如throw SQLException。

      我們可以使用Struts2的標(biāo)簽輸出異常信息:

      輸出異常的message屬性信息: 輸出異常堆棧信息:。

      有了處理系統(tǒng)異常的基礎(chǔ),我們來(lái)看一看自定義異常:

      packagecom.exception;public class MyException extends Exception {

      private String message;

      publicMyException(String message){ super(message);this.message = message;} public String getMessage(){ return message;} public void setMessage(String message){ this.message = message;} }

      public String execute()throws Exception { if(!“hello”.equals(usename)||!“world”.equals(password)){ throw new MyException(“用戶名或密碼錯(cuò)誤,您發(fā)現(xiàn)了吧!”);} return “success”;}

      在action配置中的異常處理

      /error.jsp /result.jsp

      在全局配置中的異常處理

      /error.jsp

      /result.jsp

      錯(cuò)誤頁(yè)面error.jsp

      <%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%> <%@ taglib prefix=“s” uri=“/struts-tags”%>

      第二篇:Struts 2期末考試

      1、MVC模式(View-model-controller)

      2、MVC模式的優(yōu)點(diǎn):

      (1)低耦合性。視圖層、模型層和控制層分離,很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則,只需改變MVC的模型層就可以了。

      (2)高重用性。多個(gè)視圖可以對(duì)應(yīng)一個(gè)模型,這樣減少了代碼的重復(fù)性及維護(hù)量,一旦模型發(fā)生改變,也易于維護(hù)。

      (3)可實(shí)用性。MVC允許使用各種不同的表現(xiàn)層技術(shù)來(lái)訪問(wèn)同一個(gè)服務(wù)器端的代碼。如jsp、velocity等。(4)可維護(hù)性。3個(gè)模塊層相分離,是的web應(yīng)用更易維護(hù)和修改。

      3、model2模式下,模型用javaBean充當(dāng),視圖有jsp頁(yè)面充當(dāng),控制器由servlet充當(dāng)。

      4.struts2是在struts1的基礎(chǔ)上發(fā)展起來(lái)的,以webwork為核心,采用webwork的設(shè)計(jì)理念。Struts2是webwork的升級(jí)。

      5、webwork是基于MVC架構(gòu)模式的J2EE Web框架,現(xiàn)在的最新版本被拆分為XWork和WebWork2兩個(gè)項(xiàng)目。WebWork的優(yōu)點(diǎn):

      (1)action不需要與WebWork耦合,提高了代碼的重用率。

      (2)支持更多表現(xiàn)層技術(shù),從而有更好的適用性。Webwork的特征:

      (1)靈活的validation框架。運(yùn)行開(kāi)發(fā)者在XML文件中定義驗(yàn)證內(nèi)容,在運(yùn)行時(shí)通過(guò)interceptor自動(dòng)應(yīng)用,這樣可以脫離Action類。

      (2)Interceptor。在action處理的前后實(shí)現(xiàn)動(dòng)態(tài)攔截,簡(jiǎn)化action代碼。(3)支持I18N(4)支持OGNL表達(dá)式語(yǔ)言

      (5)Type Conversion.允許類之間很容易實(shí)現(xiàn)對(duì)象的轉(zhuǎn)換。(6)允許動(dòng)態(tài)對(duì)象圖表遍歷和方法執(zhí)行,使用valuestack透明訪問(wèn)多beans的屬性。

      (7)Ioc容器。管理組件的生命周期,使客戶不需要通過(guò)創(chuàng)建注冊(cè)類獲得組件實(shí)例。

      (8)velocity templates.使UI組件可重用,從而允許開(kāi)發(fā)者很容易地定制Web頁(yè)面的look&feel。

      (9)容易和第三方軟件集成。例如hibernate、spring和sitemesh。

      (10)支持多種視圖技術(shù)。如jsp、velosity、freemarker和xml等。

      6、struts2框架的大致處理流程:(1)客戶端瀏覽器發(fā)送一個(gè)請(qǐng)求。

      (2)核心控制器filterdispatcher根據(jù)請(qǐng)求決定調(diào)用合適的action。

      (3)webwork的攔截器鏈自動(dòng)對(duì)請(qǐng)求應(yīng)用通過(guò)功能,如驗(yàn)證。

      (4)回調(diào)action的execute()方法,該方法根據(jù)請(qǐng)求的參數(shù)來(lái)執(zhí)行一定的操作。

      (5)execute()方法的處理結(jié)果信息將被輸出到瀏覽器中,struts2支持多種形式的視圖。如jsp、html。

      7、web.xml

      xmlns=“http://java.sun.com/xml/ns/javaee” xmlns:xsi=“http://004km.cn/2001/XMLSchema-instance”

      xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”>

      struts2

      org.apache.struts2.dispatcher.FilterDispatcher struts2

      /*

      (2)

      ShowWords.java package action;

      import com.opensymphony.xwork2.ActionSupport;

      @SuppressWarnings(“serial”)

      public class ShowWords extends ActionSupport{

      private String name;private String words;

      public String getName(){

      return name;

      }

      public void setName(String name){

      this.name = name;

      }

      public String getWords(){

      return words;}

      public void setWords(String words){

      this.words = words;

      }

      public String execute(){

      return INPUT;

      }else{

      words = “歡迎您:” + name;

      return SUCCESS;

      }

      }

      }(3)Struts.Xml

      “-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”

      “http://struts.apache.org/dtds/struts-2.0.dtd”>

      extends=“struts-default”>

      class=“action.ShowWords”>

      name=“success”>/showWords.jsp

      name=“input”>/inputWords.jsp

      8、核心控制器FilterDispatcher:

      核心控制器是struts2框架的基礎(chǔ),它包含了框架內(nèi)部的控制流程和處理機(jī)制。在web應(yīng)用中,F(xiàn)ilterDispatcher作為一個(gè)filter運(yùn)行,負(fù)責(zé)攔截所有的用戶請(qǐng)求。如果用戶請(qǐng)求以.action結(jié)尾,則該請(qǐng)求被轉(zhuǎn)入Struts框架處理。Struts2框架按模塊可以分為Servlet Filters、struts核心模塊、攔截器和用戶實(shí)現(xiàn)模塊。P33 Srtuts2框架處理一個(gè)請(qǐng)求的步驟:

      (1)客戶端提交一個(gè)請(qǐng)求(HttpServletRequest).(2)請(qǐng)求被提交到一系列的過(guò)濾器(filter),首先提交ActionContextCleanUp然后提交到其他過(guò)濾器(SiteMesh等)最后提交到FilterDispatcher。

      (3)FilterDispatcher詢問(wèn)ActionMapper是否需要調(diào)用某個(gè)Action來(lái)處理這個(gè)請(qǐng)求。如果ActionMapper決定需要調(diào)用某個(gè)Action,則FilterDispatcher把請(qǐng)求的處理交給ActionProxy。

      (4)ActionProxy通過(guò)Configuration Manager(struts.xml)詢問(wèn)框架的配置文件,找到需要調(diào)用的Action類。(5)ActionProxy創(chuàng)建一個(gè)ActionInvocation實(shí)例,同時(shí)ActionInvocation通過(guò)代理模式調(diào)用Action,在調(diào)用之前,ActionInvocation會(huì)根據(jù)配置加載Action相關(guān)的所有攔截器。

      (6)一旦Action執(zhí)行完畢,ActionInvocation負(fù)責(zé)根據(jù)struts.xml中的配置找到對(duì)應(yīng)的返回結(jié)果。

      9、使用

      元素配置包時(shí)可以指定4個(gè)屬性。屬性名name,必選,指定包的名稱,該名稱是該包被其他包引用的key值。

      屬性名extends,可選,指明該包繼承的其他包。用extends繼承包,父包在子包前定義。Struts.xml

      “-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”

      “http://struts.apache.org/dtds/struts-2.0.dtd”>

      value=“gb2312” />

      class=“ActionClass1”>

      name=“success”>/success.jsp

      extends=“default” namespace=“/skill”>

      /success.jsp 結(jié)果類型

      (1)dispatcher結(jié)果類型用來(lái)表示“轉(zhuǎn)發(fā)”到指定結(jié)果類型,它是Struts 2的默認(rèn)結(jié)果類型。

      (2)redirect結(jié)果類型用來(lái)“重定向”到指定的結(jié)果資源,該資源可以是JSP文件,也可以是Action類。(3)redirectAction結(jié)果類型也是重定向到其他資源,重新生成一個(gè)新的請(qǐng)求。(4)其他結(jié)果類型

      1、簡(jiǎn)述使用攔截的意義。

      (1)通過(guò)攔截形式攔截器模塊,極大地提高了系統(tǒng)開(kāi)發(fā)的靈活性和復(fù)用性,AOP使用代理的方式,將多個(gè)攔截器和核心業(yè)務(wù)邏輯組合在一起,滿業(yè)務(wù)需求。

      (2)通過(guò)使用攔截器,可以使核心框架代碼比以前更加簡(jiǎn)潔,使開(kāi)發(fā)人員更加快捷地使用框架的特性。

      2、簡(jiǎn)述輸入校驗(yàn)流程。(1)(2)客戶端校驗(yàn)。

      對(duì)請(qǐng)求的字符串參數(shù)進(jìn)行類型轉(zhuǎn)換,并設(shè)置為對(duì)應(yīng)的Action屬性值。

      (3)如果類型轉(zhuǎn)換出現(xiàn)異常,將異常信息封裝到filedError中。

      (4)調(diào)用Action的validateXxx()校驗(yàn)方法,其中xxx()方法是Action中對(duì)應(yīng)的處理邏輯方法。

      (5)(6)調(diào)用Action類的validate()校驗(yàn)方法。完成上面的步驟后,框架開(kāi)始檢查在以上過(guò)程中是否產(chǎn)生了filedError,如果產(chǎn)生了,則返回邏輯視圖Input;反之,則返回處理方法中的邏輯視圖。

      (7)系統(tǒng)根據(jù)上一步驟返回的邏輯視圖,結(jié)合struts.Xml文件的配置內(nèi)容。呈現(xiàn)相應(yīng)的視圖頁(yè)面。

      第三篇:struts處理中文亂碼問(wèn)題總結(jié)

      http://58andy.sinaapp.com 學(xué)了很久的java,接觸SSH也有一段時(shí)間了,寫(xiě)成博文總是有點(diǎn)懶,最近在整理一些思緒,把SSH一點(diǎn)一滴放進(jìn)博客里,以備以后改進(jìn),再學(xué)習(xí)。

      以我自己的了解,在進(jìn)行struts開(kāi)發(fā)的過(guò)程中,總也是出現(xiàn)很多的亂碼問(wèn)題,但歸根到底,也只是以下三種情況:

      ㈠頁(yè)面顯示中文亂碼

      ㈡?zhèn)鬟f參數(shù)中文亂碼

      ㈢國(guó)際化資源文件亂碼

      下面就這三中情況介紹怎么在具體項(xiàng)目中處理這些亂碼問(wèn)題。而對(duì)于整體的處理思想,是要統(tǒng)一編碼為: UTF-8.(以myeclipse6支持的struts1.3為準(zhǔn))

      ㈠頁(yè)面顯示中文亂碼

      對(duì)于在頁(yè)面中顯示出現(xiàn)亂碼,這個(gè)問(wèn)題比較簡(jiǎn)單,便是檢查你的JSP文件里是不是出現(xiàn)了中文要處理,因?yàn)镴SP默認(rèn)的編碼格式為“ISO-8859-1”,當(dāng)JSP中出現(xiàn)要處理的中文時(shí),其顯示就出現(xiàn)亂碼了,這種情況一般出現(xiàn)在手寫(xiě)JSP,或修改時(shí)。因?yàn)樵趍yeclipse6.0中,如果出現(xiàn)了編碼錯(cuò)誤時(shí),程序不會(huì)讓你保存,而是會(huì)提示你注意編碼,這點(diǎn)很好。具體的修改辦法是把 Html代碼

      1.<%.@ page language=“java” import=“java.util.” pageEncoding=“ISO-8859-1”>

      改成:

      Html代碼

      1.<%.@ page language=“java” import=“java.util.” pageEncoding=“UTF-8”>

      ㈡?zhèn)鬟f參數(shù)中文亂碼

      傳遞參數(shù)出現(xiàn)的亂碼,參數(shù)的內(nèi)容為中文。比如在struts應(yīng)用中,簡(jiǎn)單的一個(gè)登錄界面中,需要傳遞的登錄名為中文時(shí),你沒(méi)經(jīng)處理之前,是會(huì)出現(xiàn)亂碼傳遞的,為了讓我們能看到顯示的亂碼,我們?cè)趯?duì)應(yīng)的Action類的子類里,修改一下,用System.out把接受到的參數(shù)輸出,代碼如下: Java代碼

      http://58andy.sinaapp.com 1.public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, 2.HttpServletResponse response)...{ 3.DynaActionForm loginForm =(DynaActionForm)form;4.5.String username =(String)loginForm.get(“username”);6.String password =(String)loginForm.get(“password”);7.System.out.println(“username:”+username);8.System.out.println(“password:”+password);9.if(username.equals(“ivorytower”)&& password.equals(“123456”))...{ 10.return mapping.findForward(“success”);11.} 12.return mapping.findForward(“fail”);13.}

      那么當(dāng)你提交了中文輸入后就會(huì)出現(xiàn)亂碼了。

      具體的解決方法:

      ①修改Tomcat---->conf----->server.xml文件,在修改端口的標(biāo)簽后面加一行代碼,如下: Xml代碼

      1.

      3.redirectPort=“8443” URIEncoding=“UTF-8”/>

      ②編寫(xiě)過(guò)濾器Filter Java代碼

      1.2.import java.io.IOException;3.4.import javax.servlet.Filter;5.import javax.servlet.FilterChain;6.import javax.servlet.FilterConfig;7.import javax.servlet.ServletException;8.import javax.servlet.ServletRequest;9.import javax.servlet.ServletResponse;10.11.public class CharacterEncodingFilter implements Filter...{

      http://58andy.sinaapp.com 12.13.@Override

      14.public void destroy()...{ 15.} 16.17.@Override

      18.public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException,ServletException { 19.request.setCharacterEncoding(“utf-8”);20.chain.doFilter(request, response);21.} 22.23.@Override

      24.public void init(FilterConfig arg0)throws ServletException...{ 25.} 26.27.}

      利用過(guò)濾器,把requst傳遞的中文參數(shù)都設(shè)成“UTF-8”編碼。

      ③修改web.xml文件

      打開(kāi)項(xiàng)目里的web.xml文件,在前面加上如下代碼: Xml代碼

      1.2.

      3.characterEncoding

      4.com.v512.example.CharacterEncodingFilter 5.

      6.

      7.characterEncoding 8./* 9.

      注意其過(guò)濾的URL為“/*”,表示當(dāng)前的request請(qǐng)求。為了使設(shè)置生效,重起tomcat。

      ㈢國(guó)際化資源文件亂碼

      http://58andy.sinaapp.com

      ①利用JDK的native2ascii工具進(jìn)行編碼轉(zhuǎn)換

      國(guó)際化問(wèn)題,主要是為了處理文件在瀏覽器上的顯示問(wèn)題,還是以登錄界面來(lái)說(shuō),比如在中文瀏覽器上,我們要看到中文顯示,對(duì)應(yīng)在英文瀏覽器上要顯示英文。那么我們?cè)诘卿浤莻€(gè)界面處理上,就不能直接寫(xiě)上我們的“用戶名”“密碼”等標(biāo)識(shí)了。就要用標(biāo)記轉(zhuǎn)換輸出了,修改為: Html代碼

      1.2.

      再者,打開(kāi)項(xiàng)目下的資源配置文件ApplicationResources.properties,依據(jù)上面所寫(xiě)key值,設(shè)定成我們要的默認(rèn)值(顯示英文),比如 引用

      #Resource for Parameter 'com.v512.example.struts.ApplicationResources #Project webexample2 example.login.username=username example.login.password=password

      現(xiàn)在我們動(dòng)手新建一個(gè)資源文件,讓其能顯示中文,直接Ctrl+C,Ctrl+V。改名為ApplicationResources_zh.properties,代碼如下: 引用

      #Resource for Parameter 'com.v512.example.struts.ApplicationResources #Project webexample2 example.login.username=用戶名 example.login.password=密碼

      但保存,myeclipse會(huì)報(bào)錯(cuò),這時(shí)我們需要修改資源文件的編碼格式。Windons---->Preferences---->Content Type------>Text----->JavaPropertiesFile,把其Default encoding改為“utf-8”,按“update”更新。這樣就能進(jìn)行保存了。但是當(dāng)我們進(jìn)行驗(yàn)證會(huì)不是成功時(shí),仍然給我們的是亂碼。

      不急,我們還得做一項(xiàng)任務(wù),打開(kāi)DOS窗口,CMD到資源文件所在目錄,運(yùn)用JDK的native2ascii工具把我們新建的資源文件改成另一個(gè)名字的資源文件,例如bank.properties。命令如下: 引用

      >native2ascii-encoding gbk ApplicationResources_zh.properties bank.properties

      http://58andy.sinaapp.com

      打開(kāi)bank.properties資源文件,自動(dòng)生成的代碼如下: 引用

      #Generated by ResourceBundle Editor(http://eclipse-rbe.sourceforge.net)

      example.login.username = u7528u6237u540D example.login.password = u5BC6u7801

      然后在myeclipse窗口中,把原來(lái)新建ApplicationResources_zh.properties 刪除,并把bank.properties改為ApplicationResources_zh.properties(為了方便記憶,管理)。然后重起tomcat或進(jìn)行reload文件,我們發(fā)現(xiàn)亂碼問(wèn)題沒(méi)有了。

      ②利用Eclipse ResourceBundle Editor插件工具

      以上我們是利用了JDK的native2ascii工具來(lái)處理國(guó)際化問(wèn)題,但在EC中,還有一種更方便的工具專門用來(lái)處理編輯java的資源文件國(guó)際化亂碼問(wèn)題,即Eclipse ResourceBundle Editor插件工具。安裝了這個(gè)插件后,我們能進(jìn)行方便的可視化資源文件編輯。推薦。

      第四篇:異常的總結(jié)

      異常的總結(jié)

      算術(shù)異常類:ArithmeticExecption

      空指針異常類:NullPointerException

      類型強(qiáng)制轉(zhuǎn)換異常:ClassCastException

      數(shù)組負(fù)下標(biāo)異常:NegativeArrayException

      數(shù)組下標(biāo)越界異常:ArrayIndexOutOfBoundsException

      違背安全原則異常:SecturityException

      文件已結(jié)束異常:EOFException

      文件未找到異常:FileNotFoundException

      字符串轉(zhuǎn)換為數(shù)字異常:NumberFormatException

      操作數(shù)據(jù)庫(kù)異常:SQLException

      輸入輸出異常:IOException

      方法未找到異常:NoSuchMethodException

      java.lang.AbstractMethodError

      抽象方法錯(cuò)誤。當(dāng)應(yīng)用試圖調(diào)用抽象方法時(shí)拋出。

      java.lang.AssertionError

      斷言錯(cuò)。用來(lái)指示一個(gè)斷言失敗的情況。

      java.lang.ClassCircularityError

      類循環(huán)依賴錯(cuò)誤。在初始化一個(gè)類時(shí),若檢測(cè)到類之間循環(huán)依賴則拋出該異常。

      java.lang.ClassFormatError

      類格式錯(cuò)誤。當(dāng)Java虛擬機(jī)試圖從一個(gè)文件中讀取Java類,而檢測(cè)到該文件的內(nèi)容不符合類的有效格式時(shí)拋出。

      java.lang.Error

      錯(cuò)誤。是所有錯(cuò)誤的基類,用于標(biāo)識(shí)嚴(yán)重的程序運(yùn)行問(wèn)題。這些問(wèn)題通常描述一些不應(yīng)被應(yīng)用程序捕獲的反常情況。

      java.lang.ExceptionInInitializerError

      初始化程序錯(cuò)誤。當(dāng)執(zhí)行一個(gè)類的靜態(tài)初始化程序的過(guò)程中,發(fā)生了異常時(shí)拋出。靜態(tài)初始化程序是指直接包含于類中的static語(yǔ)句段。

      java.lang.IllegalAccessError

      違法訪問(wèn)錯(cuò)誤。當(dāng)一個(gè)應(yīng)用試圖訪問(wèn)、修改某個(gè)類的域(Field)或者調(diào)用其方法,但是又違反域或方法的可見(jiàn)性聲明,則拋出該異常。

      java.lang.IncompatibleClassChangeError

      不兼容的類變化錯(cuò)誤。當(dāng)正在執(zhí)行的方法所依賴的類定義發(fā)生了不兼容的改變時(shí),拋出該異常。一般在修改了應(yīng)用中的某些類的聲明定義而沒(méi)有對(duì)整個(gè)應(yīng)用重新編譯而直接運(yùn)行的情況下,容易引發(fā)該錯(cuò)誤。

      java.lang.InstantiationError

      實(shí)例化錯(cuò)誤。當(dāng)一個(gè)應(yīng)用試圖通過(guò)Java的new操作符構(gòu)造一個(gè)抽象類或者接口時(shí)拋出該異常.java.lang.InternalError

      內(nèi)部錯(cuò)誤。用于指示Java虛擬機(jī)發(fā)生了內(nèi)部錯(cuò)誤。

      java.lang.LinkageError

      鏈接錯(cuò)誤。該錯(cuò)誤及其所有子類指示某個(gè)類依賴于另外一些類,在該類編譯之后,被依賴的類改變了其類定義而沒(méi)有重新編譯所有的類,進(jìn)而引發(fā)錯(cuò)誤的情況。

      java.lang.NoClassDefFoundError

      未找到類定義錯(cuò)誤。當(dāng)Java虛擬機(jī)或者類裝載器試圖實(shí)例化某個(gè)類,而找不到該類的定義時(shí)拋出該錯(cuò)誤。

      java.lang.NoSuchFieldError

      域不存在錯(cuò)誤。當(dāng)應(yīng)用試圖訪問(wèn)或者修改某類的某個(gè)域,而該類的定義中沒(méi)有該域的定義時(shí)拋出該錯(cuò)誤。

      java.lang.NoSuchMethodError

      方法不存在錯(cuò)誤。當(dāng)應(yīng)用試圖調(diào)用某類的某個(gè)方法,而該類的定義中沒(méi)有該方法的定義時(shí)拋出該錯(cuò)誤。

      java.lang.OutOfMemoryError

      內(nèi)存不足錯(cuò)誤。當(dāng)可用內(nèi)存不足以讓Java虛擬機(jī)分配給一個(gè)對(duì)象時(shí)拋出該錯(cuò)誤。

      java.lang.StackOverflowError

      堆棧溢出錯(cuò)誤。當(dāng)一個(gè)應(yīng)用遞歸調(diào)用的層次太深而導(dǎo)致堆棧溢出時(shí)拋出該錯(cuò)誤。

      java.lang.ThreadDeath

      線程結(jié)束。當(dāng)調(diào)用Thread類的stop方法時(shí)拋出該錯(cuò)誤,用于指示線程結(jié)束。

      java.lang.UnknownError

      未知錯(cuò)誤。用于指示Java虛擬機(jī)發(fā)生了未知嚴(yán)重錯(cuò)誤的情況。

      java.lang.UnsatisfiedLinkError

      未滿足的鏈接錯(cuò)誤。當(dāng)Java虛擬機(jī)未找到某個(gè)類的聲明為native方法的本機(jī)語(yǔ)言定義時(shí)拋出。

      java.lang.UnsupportedClassVersionError

      不支持的類版本錯(cuò)誤。當(dāng)Java虛擬機(jī)試圖從讀取某個(gè)類文件,但是發(fā)現(xiàn)該文件的主、次版本號(hào)不被當(dāng)前Java虛擬機(jī)支持的時(shí)候,拋出該錯(cuò)誤。

      java.lang.VerifyError

      驗(yàn)證錯(cuò)誤。當(dāng)驗(yàn)證器檢測(cè)到某個(gè)類文件中存在內(nèi)部不兼容或者安全問(wèn)題時(shí)拋出該錯(cuò)誤。

      java.lang.VirtualMachineError

      虛擬機(jī)錯(cuò)誤。用于指示虛擬機(jī)被破壞或者繼續(xù)執(zhí)行操作所需的資源不足的情況。

      java.lang.ArithmeticException

      算術(shù)條件異常。譬如:整數(shù)除零等。

      java.lang.ArrayIndexOutOfBoundsException

      數(shù)組索引越界異常。當(dāng)對(duì)數(shù)組的索引值為負(fù)數(shù)或大于等于數(shù)組大小時(shí)拋出。

      java.lang.ArrayStoreException

      數(shù)組存儲(chǔ)異常。當(dāng)向數(shù)組中存放非數(shù)組聲明類型對(duì)象時(shí)拋出。

      java.lang.ClassCastException

      類造型異常。假設(shè)有類A和B(A不是B的父類或子類),O是A的實(shí)例,那么當(dāng)強(qiáng)制將O構(gòu)造為類B的實(shí)例時(shí)拋出該異常。該異常經(jīng)常被稱為強(qiáng)制類型轉(zhuǎn)換異常。

      java.lang.ClassNotFoundException

      找不到類異常。當(dāng)應(yīng)用試圖根據(jù)字符串形式的類名構(gòu)造類,而在遍歷CLASSPAH之后找不到對(duì)應(yīng)名稱的class文件時(shí),拋出該異常。

      java.lang.CloneNotSupportedException

      不支持克隆異常。當(dāng)沒(méi)有實(shí)現(xiàn)Cloneable接口或者不支持克隆方法時(shí),調(diào)用其clone()方法則拋出該異常。

      java.lang.EnumConstantNotPresentException

      枚舉常量不存在異常。當(dāng)應(yīng)用試圖通過(guò)名稱和枚舉類型訪問(wèn)一個(gè)枚舉對(duì)象,但該枚舉對(duì)象并不包含常量時(shí),拋出該異常。

      java.lang.Exception

      根異常。用以描述應(yīng)用程序希望捕獲的情況。

      java.lang.IllegalAccessException

      違法的訪問(wèn)異常。當(dāng)應(yīng)用試圖通過(guò)反射方式創(chuàng)建某個(gè)類的實(shí)例、訪問(wèn)該類屬性、調(diào)用該類方法,而當(dāng)時(shí)又無(wú)法訪問(wèn)類的、屬性的、方法的或構(gòu)造方法的定義時(shí)拋出該異常。

      java.lang.IllegalMonitorStateException

      違法的監(jiān)控狀態(tài)異常。當(dāng)某個(gè)線程試圖等待一個(gè)自己并不擁有的對(duì)象(O)的監(jiān)控器或者通知其他線程等待該對(duì)象(O)的監(jiān)控器時(shí),拋出該異常。

      java.lang.IllegalStateException

      違法的狀態(tài)異常。當(dāng)在Java環(huán)境和應(yīng)用尚未處于某個(gè)方法的合法調(diào)用狀態(tài),而調(diào)用了該方法時(shí),拋出該異常。

      java.lang.IllegalThreadStateException

      違法的線程狀態(tài)異常。當(dāng)縣城尚未處于某個(gè)方法的合法調(diào)用狀態(tài),而調(diào)用了該方法時(shí),拋出異常。

      java.lang.IndexOutOfBoundsException

      索引越界異常。當(dāng)訪問(wèn)某個(gè)序列的索引值小于0或大于等于序列大小時(shí),拋出該異常。

      java.lang.InstantiationException

      實(shí)例化異常。當(dāng)試圖通過(guò)newInstance()方法創(chuàng)建某個(gè)類的實(shí)例,而該類是一個(gè)抽象類或接口時(shí),拋出該異常。

      java.lang.InterruptedException

      被中止異常。當(dāng)某個(gè)線程處于長(zhǎng)時(shí)間的等待、休眠或其他暫停狀態(tài),而此時(shí)其他的線程通過(guò)Thread的interrupt方法終止該線程時(shí)拋出該異常。

      java.lang.NegativeArraySizeException

      數(shù)組大小為負(fù)值異常。當(dāng)使用負(fù)數(shù)大小值創(chuàng)建數(shù)組時(shí)拋出該異常。

      java.lang.NoSuchFieldException

      屬性不存在異常。當(dāng)訪問(wèn)某個(gè)類的不存在的屬性時(shí)拋出該異常。

      java.lang.NoSuchMethodException

      方法不存在異常。當(dāng)訪問(wèn)某個(gè)類的不存在的方法時(shí)拋出該異常。

      java.lang.NullPointerException

      空指針異常。當(dāng)應(yīng)用試圖在要求使用對(duì)象的地方使用了null時(shí),拋出該異常。譬如:調(diào)用null對(duì)象的實(shí)例方法、訪問(wèn)null對(duì)象的屬性、計(jì)算null對(duì)象的長(zhǎng)度、使用throw語(yǔ)句拋出null等等。

      java.lang.NumberFormatException

      數(shù)字格式異常。當(dāng)試圖將一個(gè)String轉(zhuǎn)換為指定的數(shù)字類型,而該字符串確不滿足數(shù)字類型要求的格式時(shí),拋出該異常。

      java.lang.RuntimeException

      運(yùn)行時(shí)異常。是所有Java虛擬機(jī)正常操作期間可以被拋出的異常的父類。

      java.lang.SecurityException

      安全異常。由安全管理器拋出,用于指示違反安全情況的異常。

      java.lang.StringIndexOutOfBoundsException

      字符串索引越界異常。當(dāng)使用索引值訪問(wèn)某個(gè)字符串中的字符,而該索引值小于0或大于等于序列大小時(shí),拋出該異常。

      java.lang.TypeNotPresentException

      類型不存在異常。當(dāng)應(yīng)用試圖以某個(gè)類型名稱的字符串表達(dá)方式訪問(wèn)該類型,但是根據(jù)給定的名稱又找不到該類型是拋出該異常。該異常與 ClassNotFoundException的區(qū)別在于該異常是unchecked(不被檢查)異常,而ClassNotFoundException 是checked(被檢查)異常。

      java.lang.UnsupportedOperationException

      不支持的方法異常。指明請(qǐng)求的方法不被支持情況的異常。

      異常

      javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login(/Login是你的action名字)

      可能原因

      action沒(méi)有再struts-config.xml 中定義,或沒(méi)有找到匹配的action,例如在JSP文件中使用

      action=“Login.do”.將表單提交給Login.do處理,如果出現(xiàn)上述異常,請(qǐng)查看struts-config.xml中的定義部分,有時(shí)可能是打錯(cuò)了字符或者是某些不符合規(guī)則,可以使用strutsconsole工具來(lái)檢查。

      --------------------

      異常

      org.apache.jasper.JasperException: Cannot retrieve definition for form bean null

      可能原因

      這個(gè)異常是因?yàn)镾truts根據(jù)struts-config.xml中的mapping沒(méi)有找到action期望的form bean。大部分的情況可能是因?yàn)樵趂orm-bean中設(shè)置的name屬性和action中設(shè)置的name屬性不匹配所致。換句話說(shuō),action和 form都應(yīng)該各自有一個(gè)name屬性,并且要精確匹配,包括大小寫(xiě)。這個(gè)錯(cuò)誤當(dāng)沒(méi)有name屬性和action關(guān)聯(lián)時(shí)也會(huì)發(fā)生,如果沒(méi)有在action 中指定name屬性,那么就沒(méi)有name屬性和action相關(guān)聯(lián)。當(dāng)然當(dāng)action制作某些控制時(shí),譬如根據(jù)參數(shù)值跳轉(zhuǎn)到相應(yīng)的jsp頁(yè)面,而不是處理表單數(shù)據(jù),這是就不用name屬性,這也是action的使用方法之一

      第五篇:Struts 2框架分析

      寧波工程學(xué)院學(xué)年論文

      Struts2框架分析

      湯禹鑫

      寧波工程學(xué)院,(315016)

      E-mail 372854786@qq.com

      摘 要: 本文對(duì)基于MVC模式,延續(xù)了Struts1和WebWork優(yōu)勢(shì)的WEB框架——Struts2框架的各個(gè)層次的組成、功能進(jìn)行了詳細(xì)的介紹。關(guān)鍵詞:Struts2;框架;J2EE;

      1.引言

      Apache Struts2是一個(gè)為企業(yè)級(jí)應(yīng)用打造的優(yōu)秀的、可擴(kuò)展的Web框架。該框架旨在充分精簡(jiǎn)應(yīng)用程序的開(kāi)發(fā)周期,從而減少創(chuàng)建、發(fā)布、應(yīng)用所花費(fèi)的時(shí)間。而且對(duì)于Struts1有很多革命性的改進(jìn),但它并不是全新的框架,而是在WebWork框架的基礎(chǔ)上發(fā)展起來(lái)的。所以也可以說(shuō)Struts2是WebWork的升級(jí),吸收了Struts1和WebWork的優(yōu)勢(shì),穩(wěn)定性、性能都有了很好的保證。

      2.Struts2的起源和背景

      2.1 Struts1

      在過(guò)去,Struts1是所有MVC框架中不容辯駁的勝利者。其程序運(yùn)行流程如圖2-1所示。

      圖2-1 Struts 1的程序運(yùn)行流程

      但是對(duì)于Struts 1框架而言,因?yàn)樗cJSP/Servlet耦合非常緊密,因而導(dǎo)致了許多不可避免的缺陷,還有支持的表現(xiàn)層技術(shù)單

      一、代碼嚴(yán)重依賴于Struts 1 API。隨著Web應(yīng)用的拙見(jiàn)擴(kuò)大,這些缺陷逐漸變成制約Struts 1發(fā)展的的重要因素——這也是Struts 2出現(xiàn)的原因。

      寧波工程學(xué)院學(xué)年論文

      (1)客戶端初始化一個(gè)指向Servlet容器(例如Tomcat)的請(qǐng)求;

      (2)這個(gè)請(qǐng)求經(jīng)過(guò)一系列的過(guò)濾器(Filter)(這些過(guò)濾器中有一個(gè)叫做ActionContextCleanUp的可選過(guò)濾器,這個(gè)過(guò)濾器對(duì)于Struts2和其它框架的集成很有幫助,例如:SiteMesh Plugin);

      (3)接著FilterDispatcher被調(diào)用,F(xiàn)ilterDispatcher詢問(wèn)ActionMapper來(lái)決定這個(gè)請(qǐng)求是否需要調(diào)用某個(gè)Action;

      (4)如果ActionMapper決定需要調(diào)用某個(gè)Action,F(xiàn)ilterDispatcher把請(qǐng)求的處理交給ActionProxy;

      (5)ActionProxy通過(guò)Configuration Manager詢問(wèn)框架的配置文件,找到需要調(diào)用的Action類;

      (6)ActionProxy創(chuàng)建一個(gè)ActionInvocation的實(shí)例;

      (7)ActionInvocation實(shí)例使用命名模式來(lái)調(diào)用,在調(diào)用Action的過(guò)程前后,涉及到相關(guān)攔截器(Intercepter)的調(diào)用;

      (8)一旦Action執(zhí)行完畢,ActionInvocation負(fù)責(zé)根據(jù)struts.xml中的配置找到對(duì)應(yīng)的返回結(jié)果。返回結(jié)果通常是(但不總是,也可能是另外的一個(gè)Action鏈)一個(gè)需要被表示的JSP或者FreeMarker的模版。在表示的過(guò)程中可以使用Struts 2 框架中繼承的標(biāo)簽,在這個(gè)過(guò)程中需要涉及到ActionMapper。

      3.2 Struts 2配置文件

      Struts2 配置文件是用戶請(qǐng)求(View)和業(yè)務(wù)邏輯模塊(Model)Action 之間聯(lián)系的橋梁。開(kāi)發(fā)者可以通過(guò)修改Struts2的配置文件來(lái)快速適應(yīng)業(yè)務(wù)需求,它是整個(gè)Struts2的精髓之一。當(dāng)然,熟悉Struts1和WebWork的框架的人對(duì)配置文件一定不會(huì)陌生,同Struts1和WebWork框架一樣,Struts2框架配置文件也分為XML文件和屬性資源文件兩種。struts.xml 文件中包含了Action 的定義以及Action 的返回值對(duì)應(yīng)的視圖資源、命名空間等信息。此外,用戶也可以定義自己的XML文件,然后通過(guò)include指令將其包含到struts.xml文件中。另一類配置文件是屬性資源文件。資源文件中一般采用固定的Key-Value形式,用于定義Struts2 全局或者局部的資源數(shù)據(jù),例如定義國(guó)際化、開(kāi)發(fā)模式等信息。

      3.3 Struts 2控制器

      Struts 2的控制器組建是Struts 2框架的核心,事實(shí)上所有MVC框架都是以控制器組件為核心的。正如前面提到的,Struts 2的控制器由兩個(gè)部分組成:FilterDispatcher和業(yè)務(wù)控制器Action。前者由框架提供,負(fù)責(zé)攔截所有的用戶請(qǐng)求,其過(guò)程如圖3-3所示

      寧波工程學(xué)院學(xué)年論文

      圖3-1 過(guò)濾器處理請(qǐng)求過(guò)程

      對(duì)于業(yè)務(wù)控制器Action,Struts 2框架為用戶提供了一個(gè)名為Action的接口,在接口中定義了SUCCESS、ERROR、INPUT、LOGIN、NONE五個(gè)靜態(tài)的字符串和一個(gè)execute方法,用戶在編寫(xiě)自己的Action時(shí)只要實(shí)現(xiàn)該接口并重寫(xiě)其中的execute方法,將所要實(shí)現(xiàn)的業(yè)務(wù)邏輯在該方法中處理就行了,當(dāng)調(diào)用此Action時(shí),Struts 2框架會(huì)自調(diào)用execute方法來(lái)完成所需的業(yè)務(wù)邏輯處理。實(shí)際上,在Struts2中起作用的業(yè)務(wù)邏輯并不是用戶自定義的Action ,而是系統(tǒng)生成的Action代理,只不過(guò)Action代理以用戶定義的Action為目標(biāo)。

      3.4 Struts 2標(biāo)簽庫(kù)

      于業(yè)Struts 2的標(biāo)簽庫(kù)也是Struts 2的重要組成部分,Struts 2的標(biāo)簽庫(kù)提供了非常豐富的功能,這些標(biāo)簽不僅提供了表現(xiàn)層數(shù)據(jù)處理,而且還提供了基本的流程控制功能,還提供了國(guó)際化、Ajax支持等功能。使用標(biāo)簽,開(kāi)發(fā)者可以最大限度地減少頁(yè)面代碼的書(shū)寫(xiě)。

      4.Struts 2框架應(yīng)用舉例

      例如課本上的Struts2用作登陸的例子,添加Struts 2功能框架核心需要如下三個(gè)步驟:(1)修改web.xml文件,在web.xml中配置Struts 2的核心Filter。

      struts2

      org.apache.struts2.dispatcher.FilterDispatcher

      (2)將Struts 2框架的類庫(kù)復(fù)制到Web應(yīng)用的WEB-INF/lib路徑下(也可以自己手動(dòng)進(jìn)行添加)。

      寧波工程學(xué)院學(xué)年論文

      5.結(jié)論

      Struts 2結(jié)合了Struts 1框架和WebWork框架的優(yōu)點(diǎn),其框架的各個(gè)組件都是可靠的松散耦合。Struts 2最大的特點(diǎn)就是簡(jiǎn)單性,引入了OGNL表達(dá)式和值棧的概念,可以用最單間的代碼實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)訪問(wèn)。總而言之,Struts 2是一個(gè)當(dāng)今Web開(kāi)發(fā)中一個(gè)很重要而且功能足夠強(qiáng)大的框架,能讓我們更好地設(shè)計(jì)和完成Web應(yīng)用。

      參考文獻(xiàn)

      [1]鄭阿奇.J2EE應(yīng)用實(shí)踐教程.電子工業(yè)出版社,2011年7月.[2]李剛.Strut s2權(quán)威指南.電子工業(yè)出版社,2007年9月.[3]閆術(shù)卓.楊強(qiáng).Strut s2技術(shù)詳解.電子工業(yè)出版社,2008年6月.

      下載struts異??偨Y(jié)word格式文檔
      下載struts異??偨Y(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        Oracle異??偨Y(jié)5篇

        Oracle異常總結(jié) Oracle異常處理異常處理是考驗(yàn)一個(gè)應(yīng)用程序健壯性的最好方式,開(kāi)發(fā)人員必須考慮程序中可能出現(xiàn)的各種錯(cuò)誤,并進(jìn)行相應(yīng)的處理。 Oracle中異常分為預(yù)定義異常,非預(yù)......

        員工異常行為排查總結(jié)

        員工異常行為排查總結(jié)第一條 目的依據(jù)為規(guī)范有序開(kāi)展員工異常行為排查工作,建立常態(tài)化排查機(jī)制,提升員工合規(guī)意識(shí),防范操作風(fēng)險(xiǎn)、案件風(fēng)險(xiǎn),根據(jù)《上海銀行從業(yè)人員行為管理辦法......

        存貨異常結(jié)存問(wèn)題總結(jié)

        存貨異常結(jié)存問(wèn)題總結(jié) 在業(yè)務(wù)進(jìn)行過(guò)程中,庫(kù)存會(huì)因?yàn)槟承┰虺霈F(xiàn)異常結(jié)存,NC系統(tǒng)中涉及到的庫(kù)存異常結(jié)存有以下幾種: 現(xiàn)就系統(tǒng)可能出現(xiàn)的這幾種情況及調(diào)整方式做一下講解。 第......

        員工異常行為排查總結(jié)

        支行員工異常行為排查工作總結(jié) 為了全面落實(shí)2011年案件防控工作會(huì)議精神,根據(jù)分行要求進(jìn)一步加大員工異常行為排查力度,在年末前組織開(kāi)展全行會(huì)計(jì)人員道德風(fēng)險(xiǎn)全面排查活動(dòng),......

        標(biāo)題異常

        【發(fā)布單位】環(huán)境保護(hù)部 【發(fā)布文號(hào)】環(huán)人函[2008]119號(hào) 【發(fā)布日期】2008-12-29 【生效日期】2008-12-29 【失效日期】 【所屬類別】政策參考 【文件來(lái)源】環(huán)境保護(hù)部 環(huán)......

        心理異常

        主題:克服依賴心理 一(2)班 教學(xué)內(nèi)容:請(qǐng)讓我來(lái)幫助你 教學(xué)目標(biāo):克服依賴心理,學(xué)會(huì)寬容別人.發(fā)現(xiàn)同學(xué)的缺點(diǎn)能當(dāng)面指出.初步培養(yǎng)自己的問(wèn)題自己解決的能力. 教學(xué)重點(diǎn):......

        基于Struts的網(wǎng)上商城系統(tǒng)研究論文(共五篇)

        摘要:隨著計(jì)算機(jī)的廣泛應(yīng)用和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)上購(gòu)物成了眾多上網(wǎng)者所追捧的時(shí)尚活動(dòng)。網(wǎng)上購(gòu)物突破了傳統(tǒng)商務(wù)的障礙,不管是對(duì)企業(yè)、消費(fèi)者還是市場(chǎng)都有著巨大的吸引力和......

        基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗(yàn)證

        龍?jiān)雌诳W(wǎng) http://.cn 基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗(yàn)證 作者:董衛(wèi)鵬 陳建彪 來(lái)源:《沿海企業(yè)與科技》2009年第06期......