




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Struts 1.2学习笔记第一部分:Java Web基础1.1 Java Web体系结构1.1.1 Servlet(构成了Struts的控制器组件)被容器加载来处理客户的请求。如下图所示:1.1.2 JSP组件A. 指令:声明页面属性B. 代码段:完成doGet()或者doPost()方法内的处理(代码的作用域只限于doGet()或者doPost())C. 声明:声明变量和方法D. 表达式:输出变量的值E. 动作:用一个符号来代替java类1.1.3 共享数据在Web应用中的范围1.1.4 JavaBean组件1.1.5 Jsp标签1.1.6 EJB组件1.1.7 XML1.1.8 Web服务器和应用服务器1.2 Web组件的三种关联关系A 请求转发B URL重定向C 包含1.2.1 请求转发原理如图所示a.在Servlet中请求转发:HttpServletRequestDispatcher rd=request.getRequestDispatcher();rd.forward(request,response);b.在jsp中请求转发注意:请求转发只能将请求转发给同一个web应用中的对象。也就是说目标组件和源组件位于同一个web应用,它们共享Request范围内的数据。1.2.2 URL重定向原理如图:注意:可以将请求重新定向到任意的web应中。1.2.3 包含原理如图:1.3 MVC概述1.4 Model I1.5 Model II第二部分 Struts概述2.1Struts实现MVC的机制MJavaBean/EJBVJSPCActionServlet/Action如下图所示:2.1.1视图视图的由JSP页面和ActionForm Bean构成,但是这些JSP页面中没有业务逻辑,也没有模型的信息,只有一些标签构成。用来提供一个界面给用户。说明:ActionForm Bean的作用:第一 具有javabean的所有功能第二 可以验证表单数据和重设其默认值第三 在视图和控制器之间承担传递数据的载体如下图所示:2.1.2模型模型由javabean和ejb来实现。用来保存程序状态和处理业务逻辑。Javabean重点处理同一应用程序中的数据EJB在应用服务器中提供分布式应用。2.1.3控制器由ActionServlet和Action类来实现。Action作用:第一:调用模型方法,更新模型的状态第二:对于小型的应用他也可以负责处理业务逻辑第三:对于大型的应用Action充当用户请求和业务逻辑之间的适配器(Adapter)。即:Action根据用户的请求调用相关的业务逻辑组件。业务逻辑由JavaBean或EJB来组成。Action类用来控制应用程序的流程,而不是实现应用程序的逻辑。ActionServlet主要负责接受HTTP请求信息,并根据配置文件struts-config.xml中的配置信息把请求发给Action对象。如果Action不存在,则ActionServlet负责创建这个对象。然后调用Action对象的execute()方法。注意:1) Execute()方法返回一个ActionForward对象,该对象封装了把用户请求再转发给其他web组件的信息。2) 用户自定义的Action的子类必须覆盖execute()方法,因为Action父类的execute()方法返回的是null。2.1.4 struts-config.xml配置文件struts-config.xml决定了ActionServlet将用户请求转发给那一个Action来处理。在系统启动是将被加载到内存。其中的每一个对应与一个ActionMapping类的实例。2.1.4Struts的工作流程第三部分:Struts配置3.1应用的发布描述文件3.1.1Web应用的发布描述文件的文档类型定义DTD(Document Type Definition)定义的xml文件的格式DTD将xml文件划分为以下三个组件:元素属性实体3.2为Struts配置web.xml文件3.2.1配置Struts的ActionServlet action /定义servlet的名称 org.apache.struts.action.ActionServlet /指定servlet完整的类名 /指定初始化参数 config /指定初始化参数名称,它是struts专有的参数。 /WEB-INF/struts-config.xml /指定初始化参数的值 debug 3 detail 3 0 action *.do /处理以.do为扩展名结尾的URL /do/*处理以do为前缀的URL hello.jsp /配置欢迎文件清单 404 /错误号 404.jsp /发生错误时跳转到的页面 注意:不论多少个子应用只要一个ActionServlet即可。因为Servlet本身就支持多线程。3.3 Struts配置文件3.3.1 org.apache.struts.configThe config package contains configuration objects that correspond to elements that may be specified in the struts-config.xml module configuration file.当Struts应用启动时,会把Struts配置文件(struts-config.xml)中的配置信息读到内存。并把它封装成相当于JavaBean类的实例中。其中每一个类相当于配置文件中一个特定元素。当Struts框架验证了对配置文件的验证和解析后,就把配置文件存储在这些类的实例中。这些类充当配置信息的运行时容器。Struts组件可以方便的通过这些类来获取配置信息。3.3.2元素所有元素的根元素 /配置文件根元素对应与ModuleConfig类 /指定数据源 3.3.3 用来配置应用所需要的数据源。备注:Java语言提供了java.sql.DataSource接口,所有的数据源都必须实现该接口。java.sql.DataSource提供了所有数据源都必须遵循的规范。Web容器和应用服务器以及数据库厂商都要实现该接口。在中可以有多个子元素。如下图所示:子元素的type属性用来指定数据源的实现类。3.3.4来配置多个ActionForm Bean属性说明:type指定完整的类名。name指定实例名称。3.3.5元素:用来声明全局的转发关系。属性说明:其中可以有0个或多个元素构成。3.3.6元素表示从特定的请求路径到相应的Action类的映射。其中可以包含一个或多个Action元素。Action元素的属性如下:属性描述AttributeAction关联的ActionFormBean在request和session范围内的Key。假定FormBean在request范围内,并且设置其属性名称为:myBean,那么可以通过,request.getAttribute(“myBean”)方法得到FormBean的实例。classNaem和Action元素对应的配置元素,默认对应的元素为ActionMapping元素。Forward指定转发的URL请求。Include指定包含的URL请求Path指定访问Action的路径。必须以”/”开头Parameter指定action的配置参数。在ActionMapping的execute()的方法中可以通过getParameter()得到。Scope指定ActionFormBean的存在范围。可选值为request和session,默认为sessionType指定Action的完整类名。该代码说明请求的URL为search.do,Struts框架会把请求转发给SearchAction ,与SearchAction关联的表单为searchForm,它位于request请求范围。Struts框架会在配置文件中检索匹配的元素:Struts框架在将请求转发给SearchAction的之前先要调用SearchForm的validate()方法。如果验证失败,会将请求转发给input属性指定的search.jsp页面。第四部分: Struts控制器组件4.1控制器组件的控制机制4.1.1作用:A接受用户请求B根据用户请求,调用合适的控制器组件来执行相应的业务逻辑。C获取业务逻辑执行结果。D根据业务逻辑执行结果和当前状态选择合适的视图组件返回给用户。4.2ActionServlet类org.apache.struts.action.ActionServlet类是整个请求的中央控制器,所有的用户请求都由他来处理后再将请求转发其他其他组件。4.2.1工作原理AActionServlet的Init()方法如下所示:B. ActionServlet的process()方法其方法原型如下:Protected void process(HttpServletRequest request,HttpServletResponse response)ModuleUtils.getInstance().selectModule(request.getServletContext();/选择当前请求的子应用模块getRequestProcessor(getModuleConfig(request).processer(request,response);/获取RequestProcessor的实例,然后调用process()方法来完成实际预处理的请求。C 扩展ActionServlet继承ActionServlet然后在web.xml文件中配置。如下是对ActionServlet的扩展那么在web.xml文件中的配置如下:注意:如果重写了ActionServlet的初始化方法,那么先要用super.Init()来调用父类的初始化方法。4.3 RequestProcessor类4.3.1作用:RequestProcessor contains the processing logic that the ActionServlet performs as it receives each servlet request from the container. You can customize the request processing behavior by subclassing this class and overriding the method(s) whose behavior you are interested in changing.对于多应用模块的Struts应用,每个子模块都有各自的RequestProcessor实例。在ActionServlet的process()方法中选择了对应的模块之后,就会调用该子模块的RequestProcessor类的对象的process()方法。4.4 Action类An Action is an adapter between the contents of an incoming HTTP request and the corresponding business logic that should be executed to process this request. The controller (RequestProcessor) will select an appropriate Action for each request, create an instance (if necessary), and call the execute method.Actions must be programmed in a thread-safe manner, because the controller will share the same instance for multiple simultaneous requests. This means you should design with the following items in mind: Instance and static variables MUST NOT be used to store information related to the state of a particular request. They MAY be used to share global resources across requests for the same action. Access to other resources (JavaBeans, session variables, etc.) MUST be synchronized if those resources require protection. (Generally, however, resource classes should be designed to provide their own protection where necessary. When an Action instance is first created, the controller will call setServlet with a non-null argument to identify the servlet instance to which this Action is attached. When the servlet is to be shut down (or restarted), the setServlet method will be called with a null argument, which can be used to clean up any allocated resources in u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天水中语文考试题及答案
- 2025年公需科目人工智能与健康试题及参考答案
- 装修仓库单据管理办法
- 专户资金存放管理办法
- 街道小区楼道管理办法
- 营销创业销售管理办法
- 行政服务提升管理办法
- 中国创新驿站管理办法
- 营养包发放管理办法
- 蚌埠公益岗管理办法
- 纺织企业安全生产知识培训
- 2025年秋新北师大版数学三年级上册全册教学设计
- 2025年全国小学生“学宪法、讲宪法”活动知识竞赛题库及答案
- 小学心理健康教育四级预警汇报流程
- 教案2025秋形势与政策纪念抗战胜利坚定民族信念抗战胜利80周年
- 2025-2026人教版(2024)物理九年级全册教学进度表
- 义务教育质量监测学校成绩分析报告
- 2025版房地产抵押按揭续贷合同
- 2025年秋季小学四年级上册语文教学计划及教学进度表
- 北京市西城区2024-2025学年七年级下学期期末道德与法治试题(解析版)
- 2025年广东省高考化学试题(含答案解析)
评论
0/150
提交评论