初识Struts2
基础了解:
框架的概念:
框架(framework)是整个或部分系统的可重用设计概念上的结构,用于解决或处理复杂的问题。
使用框架的好处:
可重用代码、
可重用设计、
分布式组件管理,便于组件的复用与分离、
结构统一
降低开发成本
JavaEE中的框架:
Struts:java领域最著名的框架,是MVC设计的事实标准。
Spring:JavaEE应用程序的集成框架,任何java程序都能从中受益。
Hibernate:最著名的ORM框架,实现数据层操作。
Struts2框架的介绍
Struts2是Struts1的下一代产品,是再Struts和webwork的技术基础上进行了合并的全新MVC框架。
因为Struts2框架基本以WebWork为技术核心,可以说Struts2相当于WebWork2.0。
Struts2相对于Struts1的优势:(八个知识点重点学习)
(1)与JSP/Servlet低耦合
(2)业务模型不需要考虑线程安全
(3)业务模型为POJO类
(4)表单模型的简化
(5)丰富的视图技术支持
(6)AOP和拦截器的使用
(7)完善的数据类型转换
(8)OGNL表达式的支持
Struts框架是Apache致力于推高JavaEE技术标准的产物,MVC框架的公认标准。
传统的Model2设计的缺陷:核心控制器在新增业务模型时需要同步修改Servlet业务模型,与ServletAPI耦合性高。
架构Struts2框架的步骤
(1)导入框架所需的jar包
(2)配置web.xml的核心控制器
<!-- 配置Struts核心控制器 --> <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <!-- 配置映射 --> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
(3)创建模型
public class LoginAction extends ActionSupport { @Override public String execute() throws Exception { return SUCCESS; } }
(4)配置Struts.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "struts-2.1.7.dtd" > <struts> <package name="niit" extends="struts-default"> <action name="login" class="com.niit.action.LoginAction"> <result name="input">WEB-INF/error.jsp</result> <result name="success">login.jsp</result> <result name="login">tag.jsp</result> </action> </package> </struts>
搭建注意点:
Struts2以过滤器作为请求的拦截手段
核心控制器为StrutsPreparenAndexecuteFilter
Struts.xml需要配置在classpath路径下
Struts.xml中的package必须配置extends属性,且值为struts-default
Struts2执行流程:
简单描述:
客户端发送一个请求,请求经过核心控制器(filter) ,核心控制器会根据请求的URL找到在配置文件中对应的Action,执行action前会执行相关拦截器操作,然后找到对应的返回视图,将处理得到的数据一并返回给客户端。