一、简介SSH框架:
1、SSH框架在mvc模式的位置作用:
2、框架(framework):
软件中的框架,是一种半成品; 我们项目开发需要在框架的基础上进行!因为框架已经实现了一些功能,这样就可以提高开发效率!
二、Struts2框架初识
1、Struts1最早的一种基于mvc模式的框架。
2、Struts2 是在Struts1的基础上,融合了xwork的功能。
1)也可以说,Struts2 = struts1 + xwork
2)Struts2框架预先实现了一些功能(之后我们都会有所提及):
a)请求数据自动封装。
b)文件上传的功能。
c)对国际化功能的简化。
d)数据效验功能。
……………….
三、Struts2开发流程详解:
1、先确定所用Struts版本(基本用2以上版本): 2.3.4
2、新建Web项目
3、引入jar文件
commons-fileupload-1.2.2.jar 【文件上传相关包】
commons-io-2.0.1.jar
struts2-core-2.3.4.1.jar 【struts2核心功能包】
xwork-core-2.3.4.1.jar 【Xwork核心包】
ognl-3.0.5.jar 【Ognl表达式功能支持包】
commons-lang3-3.1.jar 【struts对java.lang包的扩展】
freemarker-2.3.19.jar 【struts的标签模板库jar文件】
javassist-3.11.0.GA.jar 【struts对字节码的处理相关jar】
4、配置web.xml
1)Tomcat启动——>加载自身web.xml(项目部署描述文件)——>加载所有项目的web.xml——>通过在项目的web.xml中引入过滤器(Struts的核心功能的初始化,通过过滤器完成)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!--
其他拦截器,一定要放在Struts核心拦截器配置的上面
否则,其他拦截器失效。
因为Struts拦截器没有放行功能,在内部被处理过的。
-->
<!-- Struts核心拦截器 -->
<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>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2)过滤器的执行过程:(3种方法及执行时间)
filter 【
init 启动时执行
doFilter 访问时执行
Destroy 销毁时执行
】
3)注意事项:
struts2-core-2.3.4.1.jar中的StrutsPrepareAndExecuteFilter 这个类即为核心过滤器的调用。
使用的struts的版本不同,所使用的核心过滤器类是不一样的!
5、开发Action
注意点:
1)action类,也叫做动作类; 一般继承ActionSupport类(不继承也可以)即处理请求的类 (struts中的action类取代之前的servlet)。
2)action类中的业务方法,处理具体的请求。
注意:
a)必须有返回值,且类型必须为String。
b)方法不能为私有(private),并且方法不能有参数
6、配置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>
<package name="xxxx" extends="struts-default">
<action name="hello" class="sram.action.HelloAction" method="execute">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
四、Struts2执行流程(在源码中也可以设置断点)
1、服务器启动:
1)加载项目web.xml
2)根据项目的web.xml文件,创建Struts核心过滤器对象, 执行filter init()
struts-default.xml—–核心功能的初始化 —–最重要的struts文件
struts-plugin.xml—–struts相关插件
struts.xml—–用户编写的配置文件
2、访问:后面每次再访问时,都会创建action实例(再执行3、4、5的过程)
1)用户访问Action, 服务器根据访问路径名称,找对应的aciton配置, 创建action对象。
2)执行默认拦截器栈中定义的18个拦截器。
3)执行action的业务处理方法。