java

位置:IT落伍者 >> java >> 浏览文章

struts分发请求的过程与相关配置


发布日期:2018年01月14日
 
struts分发请求的过程与相关配置

/_struts分发请求的过程与相关配置

按照mvc模式设计出的web层框架其实就是一个大大的servlet

我们可以在webxml文件中将符合某种特征所有请求交给这个Servlet处理

这个servlet再参照一个配置文件(strutsconfigxml)将各个请求分配给不同的action去处理

根据struts提供的例子

[html]Java/UploadFiles_//gif); BORDERBOTTOMSTYLE: none; PADDINGBOTTOM: px; BORDERRIGHTSTYLE: none; TEXTINDENT: px; MARGIN: px px px px; PADDINGLEFT: px; WIDTH: px; PADDINGRIGHT: px; DISPLAY: inlineblock; BACKGROUNDPOSITION: % %; BORDERTOPSTYLE: none; HEIGHT: px; COLOR: rgb(); FONTSIZE: px; BORDERLEFTSTYLE: none; TEXTDECORATION: none; PADDINGTOP: px class=ViewSource title=view plain >view plainJava/UploadFiles_//gif); BORDERBOTTOMSTYLE: none; PADDINGBOTTOM: px; BORDERRIGHTSTYLE: none; TEXTINDENT: px; MARGIN: px px px px; PADDINGLEFT: px; WIDTH: px; PADDINGRIGHT: px; DISPLAY: inlineblock; BACKGROUNDPOSITION: % %; BORDERTOPSTYLE: none; HEIGHT: px; COLOR: rgb(); FONTSIZE: px; BORDERLEFTSTYLE: none; TEXTDECORATION: none; PADDINGTOP: px class=CopyToClipboard title=copy >copyxml>

<formid=LogonFormmethod=postaction=/strutsmailreader/SubmitLogondo;

jsessionid=FADEABCEFBFFDFDCAAAonsubmit=returnvalidateLogonForm(this);>

查看源代码后知道提交后交给/SubmitLogondo

在webxml文件中查找/SubmitLogondo没有找到有通配符*do

[html]view plaincopyxml>

<!ActionServletConfiguration>

<servlet>

<servletname>action</servletname>

<servletclass>orgapachestrutsactionActionServlet</servletclass>

<initparam>

<paramname>config</paramname>

<paramvalue>/WEBINF/strutsconfigxml</paramvalue>

</initparam>

<loadonstartup></loadonstartup>

</servlet>

<!ActionServletMapping>

<servletmapping>

<servletname>action</servletname>

<urlpattern>*do</urlpattern>

</servletmapping>

action对应一个叫ActionServlet的类

查询strutsconfigxml中/SubmitLogon不能加do后缀名可以改变

[html]view plaincopyxml>

<!Processauserlogon>

<action

path=/SubmitLogon

type=orgapachestrutsappsmailreaderactionsLogonAction

name=LogonForm

scope=request

cancellable=true

validate=true

input=Logon>

<exception

key=expiredpassword

type=orgapachestrutsappsmailreaderdaoExpiredPasswordException

        path=/ChangePassworddo/>

<forward

name=Success

path=/MainMenudo/>

</action>

而注册页面的转到/SaveRegistrationdo却找不到有*号通配符防止膨胀

<action path=//BaseAction

input=Input

type=orgapachestrutsappsmailreaderactions{}Action

name={}Form

scope=request>

<forward

name=Success

path=/{}jsp/>

<forward

name=Input

path=/{}jsp/>

</action>

<action

path=/Save*

extends=//BaseAction

parameter=Save

cancellable=true

validate=true> //是否需要校验

<forward

name=Success

path=/MainMenudo/>

</action>

_struts封装请求参数的过程与相关配置

将参数封装成formbean对象(就是一个java类)这个类的每一个属性对应一个请求参数Formbean有一个validata的方法

src=http://imgeducitycn/img_///gif>

               

上一篇:Hibernate中inverse与cascade作用

下一篇:怎样利用Hibernate开发Blog实例分析