Struts2简介
Struts2是一个工作在表现层的MVC的流程框架,它本质上相当于一个Servlet在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开。Struts相对于WebWork差别不大,相对于Struts1差别很大
MVC设计模式
M(Model):模型包含数据模型和业务模型(JavaBean,业务逻辑)
V(View):视图,将不同的数据展示到页面上
C(Controller):控制请求处理(接收请求,处理请求,响应结果)它作为数据库与视图之间的一个媒介存在,将对数据库的操作和结果的显示分离。
MVC模式流程:
请求与响应的过程
【1】提交请求,提交数据
方式:
地址栏:http://ip:port/contextPath/index.jsp
表单:收集客户端数据
链接:<a href="/contextPath/userServlet?username=xiaoma&age=22">请求</a>
异步JS:ajax
【2】接收请求,接收数据
方式:
String value = request.getParameter("key");
将接收的数据封装成模型对象
【3】视图跳转,传递数据
跳转方式:
转发:
request.getRequestDispatcher("资源路径").forWard(requeset,response);
重定向:
response.sendRedirect("资源路径");
将数据保存到域对象中进行传递
常用域对象
request (HttpServletRequest ), session(HttpSession ) ,application(ServletContext )
【4】展示数据
使用JSTL/EL在JSP页面展示保存在域对象中的数据
原生webMVC【2】【3】都是由Servlet完成
框架
将通用代码封装起来,提供程序员开发使用,可以大大提高开发效率。
程序员只需要将开发重点放在业务逻辑的实现上,不用再去花费精力解决公共的问题了。
重复性,扩展性,稳定性...
Struts2具备核心功能
①可以将请求数据封装模型对象
②拦截器
文件上传
国际化
表单数据验证
类型转换
表单重复提交
...
③Action 处理请求,作用相当于Servlet
④Result 封装跳转方式
⑤支持多种视图技术:JSP , Freemarker
⑥ValueStack 存储数据
⑦Ognl 类似EL,用于操作数据
...
框架整体核心结构
apps框架给我们提供的学习案例
docs框架文档
lib框架类库
src框架源码