Struts2配置流程及处理请求过程
2017-08-26 19:38
603 查看
struts2的配置步骤:
1、创建web项目
2、添加struts2框架所需的jar
3、配置web.xml文件(FilterDispatcher)
4、创建Action.java文件
5、配置strut.xml文件(Action)
6、创建welcome.jsp文件
7、部署运行项目
Web.xml:
Struts.xml:
Struts2处理请求过程:
先是清空值栈(ValueStack),同时留下相应的session,然后经过Filter,由FilterDispatcher捕获,经过ActionMapping 将请求发至对应的Action,期间是FilterDispatcher把请求的处理交给ActionProxy,并加载Structs.xml文件查找对应的action。Action 反射实例进行处理,回调execute()方法。并返回result字符串传给FilterDispacher,根据映射配置跳转页面。
1、创建web项目
2、添加struts2框架所需的jar
3、配置web.xml文件(FilterDispatcher)
4、创建Action.java文件
5、配置strut.xml文件(Action)
6、创建welcome.jsp文件
7、部署运行项目
Web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <filter> <!-- 配置Struts2核心Filter的名字 --> <filter-name>struts2</filter-name> <!-- 配置Struts2核心Filter的实现类 --> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> <init-param> <!-- 配置Struts2框架默认加载的Action包结构,可以没有。 --> <param-name>actionPackages</param-name> <param-value>org.apache.struts2.showcase.person</param-value> </init-param> <!-- 配置Struts2框架的配置提供者类 --> <init-param> <param-name>configProviders</param-name> <param-value>lee.MyConfigurationProvider</param-value> </init-param> </filter> <!-- 配置Filter拦截的URL --> <filter-mapping> <!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 --> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
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节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --> <include file="struts-default.xml"></include> <!-- package提供了将多个Action组织为一个模块的方式 package的名字必须是唯一的 package可以扩展 当一个package扩展自 另一个package时该package会在本身配置的基础上加入扩展的package 的配置 父package必须在子package前配置 name:package名称 extends:继承的父package名称 abstract:设置package的属性为抽象的 抽象的package不能定义action 值true:false namespace:定义package命名空间 该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action --> <package name="com.kay.struts2" extends="struts-default" namespace="/test"> <interceptors> <!-- 定义拦截器 name:拦截器名称 class:拦截器类路径 --> <interceptor name="timer" class="com.kay.timer"></interceptor> <interceptor name="logger" class="com.kay.logger"></interceptor> <!-- 定义拦截器栈 --> <interceptor-stack name="mystack"> <interceptor-ref name="timer"></interceptor-ref> <interceptor-ref name="logger"></interceptor-ref> </interceptor-stack> </interceptors> <!-- 定义默认的拦截器 每个Action都会自动引用 如果Action中引用了其它的拦截器 默认的拦截器将无效 --> <default-interceptor-ref name="mystack"></default-interceptor-ref> <!-- 全局results配置 --> <global-results> <result name="input">/error.jsp</result> </global-results> <!-- Action配置 一个Action可以被多次映射(只要action配置中的name不同) name:action名称 class: 对应的类的路径 method: 调用Action中的方法名 --> <action name="hello" class="com.kay.struts2.Action.LoginAction"> <!-- 引用拦截器 name:拦截器名称或拦截器栈名称 --> <interceptor-ref name="timer"></interceptor-ref> <!-- 节点配置 name : result名称 和Action中返回的值相同 type : result类型 不写则选用superpackage的type struts-default.xml中的默认为dispatcher --> <result name="success" type="dispatcher">/talk.jsp</result> <!-- 参数设置 name:对应Action中的get/set方法 --> <param name="url">http://www.sina.com</param> </action> </package> </struts>
Struts2处理请求过程:
先是清空值栈(ValueStack),同时留下相应的session,然后经过Filter,由FilterDispatcher捕获,经过ActionMapping 将请求发至对应的Action,期间是FilterDispatcher把请求的处理交给ActionProxy,并加载Structs.xml文件查找对应的action。Action 反射实例进行处理,回调execute()方法。并返回result字符串传给FilterDispacher,根据映射配置跳转页面。
相关文章推荐
- Struts2请求处理流程及源码分析
- Struts2学习笔记之struts.xml配置常量和Action处理流程
- struts2处理请求的过程
- struts2学习:配置篇值请求处理元素
- struts2处理请求的过程分析
- Struts2请求处理流程及源码分析
- struts2的请求处理过程源码分析
- struts2项目配置文件及处理流程
- struts2请求处理流程详解
- Struts2对请求的处理过程
- struts2学习:配置篇值请求处理元素
- Struts2请求处理流程及源码分析
- Struts2请求处理流程及源码分析
- Struts2请求处理流程及源码分析
- Struts2中请求处理的流程步骤(转自《Struts2入门3.0》)
- struts2中请求的处理流程
- Struts2请求处理流程及源码分析
- Java Struts2 的请求处理流程详解
- Java Struts2 的请求处理流程详解
- struts2 中请求的处理流程