j2ee学习struts1.x总结1
*******JSP设计模式Model1:完全使用含有java代码的JSP来实现;
--编码简单,适用于小型的项目;
--显示逻辑和业务逻辑都混合在jsp中,并且不适合中大型的项目;
******JSP设计模式Model2:使用servlet和jsp相结合的方式来实现;
--实现了java代码和页面显示的分离,可扩展性强;
--增加了额外的编码和配置文件的工作量;
******Struts MVC框架原理:
1.客户端浏览器提交请求信息
2.web容器根据web.xml中的配置信息,调用中央控制类(org.apache.struts.action.ActionServlet)
3.中央控制器类根据struts-config.xml中的配置信息,将请求信息中的表单数据填充到一个ActionForm(即javabean)的对象中
--调用ActionForm中的reset()和set***()方法来实现将表单中的信息赋值给继承了ActionForm的类的对象;
--调用ActionForm中的validate()方法来实现对表单中数据有效性的判断;
--如果有错误,就会转发到<action>标签中input属性所指定的页面;
4.中央控制器类根据struts-config.xml中的配置信息,调用相应的Action
5.Action类调用相应的Model组件完成业务逻辑后,返回到中央控制器类中
6.中央控制器根据struts-config.xml中的配置信息和从Action类中返回的结果,调用相应的jsp页面
7.在jsp页面中负责对客户端请求的响应
******Struts包:
1.org.apache.struts.action
--整个Struts框架的核心;
2.org.apache.struts.actions
--提供了作为输入的客户请求和作为响应的业务逻辑之间的转换适配器的功能;
3.org.apache.struts.config
--它定义了一些记录配置信息的类,这些类是对struts-config.xml配置文件的映射;
4.org.apache.struts.taglib
--它定义了支持struts框架自定义标签功能的类,包含html、logic、bean等标签;
5.org.apache.struts.validator
--它定义了用于支持表单验证的Validator验证框架,Validator验证框架是一种基于配置文件的验证方式;
******Struts开发过程:
1.准备工作:
--JDK;
--Web Container;
--Servlet API Class;
--将struts发布的jar包添加到web应用中的lib目录下;
2.定义视图层组件(V)
--创建相关的JSP;
--创建用于保存表单信息的继承于ActionForm的类;
3.配置web.xml中的信息,配置客户端请求与Struts中的ActionServlet的映射关系
<servlet>
<servlet-name>...</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<load-on-startup>0</load-on-startup> --最好进行配置,因为当使用struts标签的时候,会出现错误
</servlet>
<servlet-mapping>
<servlet-name>...</servlet-name>
<url-pattern>...</url-pattern>
</servlet-mapping>
4.定义控制层组件(C)
--创建继承自Action的类;
--重写public ActionForward execute(ActionMapping m,ActionForm form,HttpServletRequest request,HttpServletResponse response)方法;
--在该方法中实现对表单中数据的处理以及调用模型层的组件来进行业务逻辑的处理,最后实现转发;
5.定义模型组件(M)
--用于业务处理;
--供控制层调用;
6.配置struts-config.xml文件
<struts-config>
<form-beans>
<form-bean name="ActionForm的逻辑名字" type="对应的ActionForm的路径和名称" />
......
</form-beans>
<action-mappings>
<action path="/..." type="..." name="..." scope="..." validate="..." input="...">
<forward name="..." path="/..."></forward>
<forward name="..." path="/..."></forward>
......
</action>
......
</action-mappings>
<message-resources parameter="..." />
</struts-config>
1>action标记属性
path 配置匹配的请求路径,需要以/开始
type ActionServlet需要将请求转发给继承了Action的类,此处为该类的路径和名称
name 匹配<form-beans>中的<form-bean>标签
scope 表示生成的ActionForm的有效范围,request或者是session,默认情况下是session
validate 配置该表单是否在继承了ActionForm的validate方法中进行验证,true或者false
input 当在ActionForm的validate方法中进行表单验证的时候,如果有错,就会转到该页面上显示错误信息
2>action的字标记
<forward name="..." path="/..."></forward>
--name标识了在继承自Action类的execute方法中实现转发的时候对应的转发逻辑名字;
--path必须是以/开始;
3><message-resources>
--parameter属性指定了消息文件的路径和名称(不包含扩展名),该文件中可以作为国际化的资源文件和保存错误信息的文件
7.对外发布