最近学习struts2,虽说以前接触过一点,但并没有理解。现在开始学习struts2,并记些简要的笔记。欢迎各位指导和建议,谢谢咯
1. http请求的简要流程:
客户端浏览器发送http请求,该请求被传送至servlet容器(如tomcat)。可以配置servlet容器的过滤器,来加入用户自定义的servlet。
http请求会经过这些配置的过滤器,并被处理。
servlet容器中的应用程序处理完http请求后,响应该请求信息,回送给客户端。
2. 基于struts2的web project的两个主要的配置文件:
web.xml, 配置过滤器,处理客户端http请求。
struts.xml,配置action至java处理类的映射。(action的触发,通过如form表单中的action属性,或者url,如/index.action)。
当然action不一定都需要java类来处理,可以简单的转发页面,如
<action name="index">
<result>/index.jsp</result>
</action>
action处理完之后,返回给客户端什么样的界面,也是通过struts.xml来配置的。
3. 要使用struts2框架,将相应的jar包包含进工程即可,这些jar包含了处理的流程。当然,要走struts2的流程,
需要在web.xml配置struts2的servlet,相当于struts2的一个入口,然后填充我们自己的代码。
4. struts是基于MVC模式实现的,简单的理解:
Action类可以看成controller,server page(如jsp)可以看成view。一些基本的类(getter, setter, 类似于C++中的结构体,
也称作javabean,struts会通过其中的set,get方法实现view至model的转换),可以看成model。struts.xml配置文件就是来配置view和controller的,
它充当的角色:MVC纽带。
5. java类中的setter方法和getter方法:
javabean, 通过这两个方法实现view和javabean变量值的传递。使得jsp页面中,可以利用javabean中变量的值,反之亦然。
当然,要实现这种方式的值传递,需要用到struts2标签,如<h2><s:property value="messageStore.message" /></h2>,
这里的messageStore为一个对象,message为该对象的属性。 s:property标签,用来显示从服务器端(action)返回的javabean的值,
struts2框架会调用对应的(action中的)getter方法得到。
6. 学习struts2,它的标签库肯定是少不了的。这些标签,可以方便的帮助我们完成很多事情。
要使用struts2的标签库,需要在jsp界面中包含标签库的指令: <%@ taglib prefix="s" uri="/struts-tags" %>
其中用的最多的,就是用来显示服务器处理后的动态数据。而这些通过普通的html标签是很难做到的。
7. struts2中,界面和后台服务变量的交换,是通过名字来找映射的,相同名字的会自动对应起来,前提
条件是action中有该名字变量的setter和getter方法。这也用到了反射原理。