一、Struts2概述
I.在很长一段时间Struts1在MVC框架中占有绝对的地位,虽然Struts1可以很好地实现将控制与业务逻辑相分离,但是其自身仍然存在这一定的缺陷1.表现层支持单一
Struts1只支持jsp作为表现层,而在实际开发中不一定只是使用jsp作为表现层,如FreeMarker、Velocity等。
2.对ServletAPI依赖
jsp+Servlet+JavaBean方式属于Model II的开发模式,而Struts1也是基于ModelII的开发模式,因此会在其中应用大量的ServletAPI,而ServletAPI需要Web容器进行初始化,从而进一步对web容器产生依赖
3.不利于代码复用
在Struts开发的代码中除了自己定义的类外,还必须使用Struts1中的某些类(如actionForm),这样一来,与Struts1的类耦合在一起很难进行代码重用 Struts2在设计之初,更多的是以 WebWork的设计思想为核心,从应用角度也更接近于 WebWork的使用习惯。Struts1与WebWork的优势互补是的Struts2拥有更加广阔的前景II.开发Struts2应用一般由两大部分组成
1.确认环境
(1)将Struts2框架支持jar包引入项目中
(2)修改工程的web.xml文件,配置过滤器。
2.代码编写
(1)编写开发处理请求的Action类,实现具体的请求方法(方法返回字符串类型)
(2)编写struts.xml文件,对Action进行配置
(3)编写与Action相关的JSP页面
二、Struts2的应用
1.创建好web项目Struts2Demo,在项目中引用Struts2的jar包,下面来做一个登录的Demo文件名 | 说明 |
---|---|
struts2-core-xxx.jar | Struts2框架的核心类库 |
xwork-core-xxx.jar | XWork类库,Struts2的构建基础 |
ognl-xxx.jar | Struts2使用的一种表达式语言类型 |
freemarker-xxx.jar | Struts2的标签模板使用类库 |
javassist-xxx.GA.jar | 对字节码进行处理 |
commons-fileupload.jar | 文件上传时需要使用 |
commons-io-xxx.jar | Java IO扩展 |
Commons-lang-xxx.jar | 包含了一些数据类型的工具类 |
2.配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
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_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--
1.使用filter元素定义过滤器,
filter-name指定过滤器名字(自定义),
filter-class指定对应的java类的完整类名,这里固定指定为org.apac