精通Struts1

 
颓废了一段时间以后,决定要努力学习一下,先把以前的东西拾起来。
首先学习《精通Struts》
第一章    Sturts与JavaWeb应用简介
1.JavaWeb应用的结构——MVC结构(模块model控制器controler视图view)
2.Servlet组件:
Servlet运行于Servlet容器内,可以被Servlet容器动态加载,来扩展服务器的功能,并提供特定的服务。在Struts结构中,控制器就是由Servlet来构成。
当用户请求访问某个Servlet时,Servlet容器将创建一个ServletRequest对象和ServletResponse对象。在ServletRequest对象中封装了用户请求信息,然后Servlet容器把ServletRequest对象和ServletResponse对象传给用户所请求的Servlet。Servlet把响应结果写到ServletResponse中,然后由Servlet容器把响应结果传给用户。
3.JSP组件:
在传统的HTML文件中加入Java程序片段和JSP标签,就构成了JSP网页。
当JSP容器接收到Web用户的一个JSP文件请求时,它对JSP文件进行语法分析并生成Java Servlet源文件,然后对其编译。
4.JavaBean组件:
JavaBean是一种符合特定规范的Java对象,在JavaBean中定义了一系列的属性,并提供了访问和设置这些属性的公共方法。JavaBean可以作为共享数据,存放在page、request、session或application范围内。在JSP文件中,可以通过专门的标签来定义或访问JavaBean。
5.共享数据在Web应用中的范围
共享数据有4种存在范围
Page:共享数据的有效范围是用户请求访问的当前JSP网页。
Request:共享数据的有效范围为“用户请求访问的当前Web组件,以及和当前Web组件共享同一个用户请求的其他Web组件”request范围内的共享数据实际上存放在HttpServletRequest对象中。
Session:共享数据存在于整个HTTP会话的生存周期内,同一个HTTP会话中的Web组件共享它。Session范围内的共享数据实际上存放在HttpSession对象中。
Application:共享数据存在于整个Web应用的生命周期内,Web应用中的所有Web组件都能共享它。共享数据实际上存放在ServletContext对象中。
6.Web组件的三种关联关系
请求转发:
请求转发允许把请求转发给同一应用程序中的其他Web组件。这种技术通常用于Web应用控制层的Servlet流程控制器,它检查HTTP请求数据,并将请求转发到合适的目标组件,目标组件执行具体的请求处理操作,并生成响应结果。
URL重定向
请求重定向类似于请求转发,但也有一些重要区别:
Web组件可以将请求重定向到任一URL,而不仅仅是同一应用中的URL。
重定向的源组件和目标组件之间不共用同一HttpServletRequest对象,不能共享request范围内的共享数据。
包含
包含关系允许一个Web组件聚集来自同一应用中其他Web组件的输出数据,并使用被聚集的数据来创建响应结果。这种技术通常用于模板处理器,它可以控制网页的布局。包含关机的源组件和目标组件共用同一个HttpServletRequest对象,因此它们共享request范围内的共享数据。
7.Struts概述
Struts实质上是在JSP Model2的基础上实现的一个MVC框架。
8.Struts实现MVC的机制
视图:
视图就是一组JSP文件。在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签。此外,通常把Struts框架中的ActionForm Bean也划分到视图模型中。Struts框架利用ActionForm Bean来进行视图和控制器之间表单数据的传递。Struts框架把用户输入的表单数据保存在ActionForm Bean中,把它传递给控制器,控制器可以对ActionFomr Bean中的数据进行修改,JSP文件使用Struts标签读取修改后的ActionFormBean 的信息,重新设置HTML表单。
模型:
模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由JavaBean或EJB组件来实现。
控制器:
控制器由ActionServlet类和Action类来实现。ActionServlet主要负责接收HTTP请求信息,根据配置文件sturts-config.xml的配置信息,把请求转发给适当的Action对象,如果该Action对象不存在,ActionServlet会先创建这个Action对象。
9.Struts的工作流程
当ActionServlet接收到一个客户请求时,将执行如下流程。
1)        检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。
2)        如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionFomr对象中。
3)        根据配置信息决定是否需要表单验证,如果需要验证,就调用ActionFomr的validate()方法。
4)        如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。
5)        ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action。如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。
6)        Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。
7)        ActionForward对象指向的JSP组件生成动态网页,返回给客户。
 
 

你可能感兴趣的:(struts,servlet,jsp,action,web,bean,Sturts)