struts2自学学习笔记之一
2014-03-14 14:34
363 查看
什么是struts2?
struts2是从webwork2的基础上发展起来的,属于mvc框架。它不依赖于servlet,是无侵入的。struts2提供了拦截器,可以进行aop编程;还可以对制定方法进行校验,提供了全局范围,包范围和action范围的国际化资源文件的管理。其风格几乎和strut1不同,是线程安全的。
struts2的处理流程
![](https://oscdn.geek-share.com/Uploads/Images/Content/201909/10/0be4650f4a30487d7eb1d598a192cf29)
如上图所示,到来一个用户请求,被struts2的核心控制器strutsPrepareAndExecuteFilter拦截.它在web.xml中的<url-pattern>/*.action</url-pattern>指定了用户请求类型,它会过滤用户的请求。当用户请求的路径下的有.action结尾的,
那么将会被struts2框架接受处理,否则不被该框架处理。被处理的请求然后被struts2内置的一些拦截器或者用户自
定义的拦截器处理,然后到action,最后有result 指定的页面跳转返回给用户。struts对用户的每次请求都会创建一
个新的action,因此struts的action是线程安全的。
以一个helloword的action为例,来透视这个流程。
首先创建一个struts2的项目,将相关jar包添加进去。然后编写一个HelloWorldAction的java类,属性和方向如下
public class HelloWorldAction {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() {
return "success";
}
}
然后分别配置web.xml和是struts.xml的配置文件.在 web.xml配置文件指定加载struts2的配置文件.
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
然后在classpath下的struts.xml配置中指定action的相关信息
<struts>
<package name="mytest" namespace="/test" extends="struts-default">
<action name="helloWorld" class="com.test.action.HelloWorldAction" method="execute">
<result name="success">/WEB-INF/page/test.jsp</result>
</action>
</package>
</struts>
然后在 result处指定你要返回给客户端的信息,或者其他的action都可以。
指定多个配置文件
有时候根据项目的需要需要多个配置文件,这时候就需要多个配置文件。假如有学生和老师两个配置文件 : student.xml和teacher.xml。那么我们只需要在struts2.xml中指定他们就行。
制定的形式为
<struts>
<constant name="struts.action.extension" value="do,ation">
<!--此处为struts2指定多个后缀 -->
<include file="student,xml" />
<include file="teacher.xml" />
<struts>
这样就ok了
struts2是从webwork2的基础上发展起来的,属于mvc框架。它不依赖于servlet,是无侵入的。struts2提供了拦截器,可以进行aop编程;还可以对制定方法进行校验,提供了全局范围,包范围和action范围的国际化资源文件的管理。其风格几乎和strut1不同,是线程安全的。
struts2的处理流程
如上图所示,到来一个用户请求,被struts2的核心控制器strutsPrepareAndExecuteFilter拦截.它在web.xml中的<url-pattern>/*.action</url-pattern>指定了用户请求类型,它会过滤用户的请求。当用户请求的路径下的有.action结尾的,
那么将会被struts2框架接受处理,否则不被该框架处理。被处理的请求然后被struts2内置的一些拦截器或者用户自
定义的拦截器处理,然后到action,最后有result 指定的页面跳转返回给用户。struts对用户的每次请求都会创建一
个新的action,因此struts的action是线程安全的。
以一个helloword的action为例,来透视这个流程。
首先创建一个struts2的项目,将相关jar包添加进去。然后编写一个HelloWorldAction的java类,属性和方向如下
public class HelloWorldAction {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() {
return "success";
}
}
然后分别配置web.xml和是struts.xml的配置文件.在 web.xml配置文件指定加载struts2的配置文件.
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
然后在classpath下的struts.xml配置中指定action的相关信息
<struts>
<package name="mytest" namespace="/test" extends="struts-default">
<action name="helloWorld" class="com.test.action.HelloWorldAction" method="execute">
<result name="success">/WEB-INF/page/test.jsp</result>
</action>
</package>
</struts>
然后在 result处指定你要返回给客户端的信息,或者其他的action都可以。
指定多个配置文件
有时候根据项目的需要需要多个配置文件,这时候就需要多个配置文件。假如有学生和老师两个配置文件 : student.xml和teacher.xml。那么我们只需要在struts2.xml中指定他们就行。
制定的形式为
<struts>
<constant name="struts.action.extension" value="do,ation">
<!--此处为struts2指定多个后缀 -->
<include file="student,xml" />
<include file="teacher.xml" />
<struts>
这样就ok了
相关文章推荐
- java发送邮件
- java Math类
- java_Timer_schedule jdk自带定时器
- web spring
- java打zip包 基于ant
- Java-Date 日期类型与字符串类型相互转换
- [2014-3-14]JAVA笔记_多态(Polymophism)、instanceof关键字
- Spring MVC Homework2 我的建立表的语句
- Java finally语句到底是在return之前还是之后执行?
- Spring MVC Homework2 我的建立表的语句
- LRU缓存介绍与实现 (Java)
- 理解java抽象类和spring的IOC
- [Storm 0.8.2]: java.io.FileNotFoundException: File '../stormconf.ser' does not exist
- java中自己定义一个类,类中必须有一个自己定义的构造方法,否则编译系统识别不了
- maven实战1
- Java设计模式之观察者模式
- Spring3.0.5和Hibernate3.6.0集成的事务控制配置方法
- eclipse打不开,只是闪一下问题解决方案。
- Java核心技术代理
- JAVA解析XML格式字符串