Struts2是一种前端的技术框架 替代Servlet来处理请求
Struts2优势
自动封装参数
参数校验
结果的处理(转发|重定向)
国际化
显示等待页面
表单的防止重复提交
搭建框架:导包->直接找blank项目中lib、书写Action类、struts.xml、web.xml
web.xml:这里用到了StrutsPrepareAndExecuteFilter包是struts2核心的过滤器,对应下面的流程里FilterDispacther
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 5 id="WebApp_9" version="2.4"> 6 <display-name>Struts Blank</display-name> 7 <filter> 8 <filter-name>struts2</filter-name> 9 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 10 </filter> 11 <filter-mapping> 12 <filter-name>struts2</filter-name> 13 <url-pattern>/*</url-pattern> 14 </filter-mapping> 15 <welcome-file-list> 16 <welcome-file>index.html</welcome-file> 17 </welcome-file-list> 18 </web-app>
配置详解:struts.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 6 <struts> 7 <!-- 如果使用使用动态方法调用和include冲突 --> 8 <constant name="struts.enable.DynamicMethodInvocation" value="true" /> 9 <constant name="struts.devMode" value="true" /> 10 <package name="default" namespace="/" extends="struts-default"> 11 <action name="Action" class="cn.zhr.Action"> 12 <result name="success" type="dispatcher">hello.jsp</result> 13 </action> 14 </package> 15 </struts>
package:将Action配置封装,就是可以在package中配置很多action
name属性:给包起个名字,起到标识作用,随便起。不能与其他包名重复
namespace属性:给 action 的访问路径中定义一个命名空间(action的前缀)
extends属性:继承一个指定包 struts-default 在core核心包最下面 struts-deffault.xml168行 必选
abstract属性:包是否为抽象的;标识性属性,该包不能独立运行专门被继承。和name一样给开发看的
action元素:配置action类
name属性:决定了Action 访问资源名
class属性:action的完整类名
method属性:指定调用Action中的那个方法来处理请求
result元素:结果配置
name属性:标识结果处理的民变成。与action方法的返回值对应
type属性:指定调用那一个 result 类来处理结果(转发|重定向)默认使用转发
标签体:填写页面的相对路径
include引入:引入其他struts配置文件
<include file="cn/zhr/struts.xml></include>
下图为struts2的流程

拦截器:
1.表面上看,拦截器帮我们封装了很多功能
2.拦截器优秀的设计,可插拔式设计
3.aop思想
