您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > Struts1---从入门到精通
Struts开源MVC框架成为软件行业的武林高手少林派(照着练)注重根基,循序渐进多学,多练,多思,多改。武当派(想着练)善长技巧,以柔克刚多掌握一些编程技巧,多去考虑一下性能,效率,重构一些代码,多分析一下代码的优劣性逍遥派(创新练)任意发挥,注重人性化设计(如何让使用者更易上手,更易于使用),注重美感(交互性强),注重哪种架构(语言)的优劣选择,编程软件就是设计一件艺术作品。Struts1Lession1为什么要用SSH框架使用框架,可以让我们更简单的开发,更容易的架构项目,更好的提升程序性能.Struts工作流程第一个struts程序多层架构概述JAVAEE开发的体系结构表示层Structs(MVC)ActionServletActionFormActionjsp业务层SpringStruts管理Hibernate管理Spring管理JavaBean管理持久层Hibernate数据源连接池ORMQuer语言支持IE工具类JavaBean将常用功能进行封装WebService对外提供服务接口数据库管理模型层springController控制层1、Servlet2、Struts1(MVC)3、Struts2(webwork)Hibernate(mybatis)DBDAOPOView视图层JspHtmlflash…Service多层架构概述分层的目的:将显示、业务逻辑、数据访问等功能完全分开,避免相互之间的影响,实现模块间的松耦合,简化维护成本。所谓“耦合”,指将两个元素像链子一样连接在一起。在软件领域,“耦合”一般指软件组件之间的依赖程度。呈现层:用struts实现MVC。业务逻辑层:用spring持久化层:用hibernateStruts是什么?Struts的目标是提供一个开发Web应用的开源框架。Struts鼓励基于M2模式(即MVC设计模式)来开发程序。回顾Model1设计模式以JSP为中心的开发模型,称为Model1(JSP+JAVABEAN)。1.业务逻辑与表示逻辑混和,不利维护与重用。2.HTML中嵌入了大量的JAVA代码3.验证、流程控制、更新程序的状态全部在JSP中完成回顾Model2设计模式ModelViewControllerMVCMVCMVC是一种设计模式M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离C确保M和V的同步,用来控制M层和V层,一旦M改变,V应该同步更新。被推荐为Sun公司J2EE平台的设计模式。Struts实现的MVC框架web.xmlStruts框架组件ActionServlet类控制导航流。ActionServlet根据URI来决定哪个Action类被用于处理请求,Action可以校验输入,并访问业务层以便从数据库检索信息。Action需要知道页面提交了哪些内容,所以由ActionServlet根据请求URI来决定将请求参数绑定到哪个ActionForm中,并传入Action。Action在完成业务逻辑后,返回一个ActionForward对象,ActionServlet根据ActionForward对象中的路径来调用页面完成响应。Struts将这些信息绑定在一个ActionMapping对象中,一个ActionMapping对应一个请求URI,当请求路径到达的时候,ActionServlet就会查询ActionMapping对象,ActionMapping对象将告诉ActionServlet哪个Action类会被调用、哪个ActionForm类被用于传递页面数据以及哪些ActionForward将被用于转向。Action、ActionForm、ActionForward等,Struts通过一个配置文件:struts-config.xml文件来定义。Stringpath=request.getRequestURI();path=path.subString(path.indexOf(/,1),path.lastIndexOf(.));开始一个Struts项目在Apache网站上下载Struts,将文件解压。将lib路径下的所有JAR文件复制到Web应用的WEB-INF/lib路径下。下载struts例:版本或在MyEclipce的集成环境中加载Struts的JAR文件。第一个Struts项目,实现用户登录操作配置ActionServlet配置ActionServlet:修改web项目的web.xml文件,添加如下Servlet映射配置。servletservlet-nameaction/servlet-nameservlet-classorg.apache.struts.action.ActionServlet/servlet-classinit-paramparam-nameconfig/param-nameparam-value/WEB-INF/struts-config.xml/param-value/init-paramload-on-startup2/load-on-startup/servletservlet-mappingservlet-nameaction/servlet-nameurl-pattern*.do/url-pattern/servlet-mapping(可选)没有单位,表示的是服务器启动的时候初始化加载的顺序,数值越大,加载优先级别越低。如果我们在web服务器启动的时候加载多个程序,那么就用这个数值的相对大小来确定那几个程序的加载顺序。load-on-startup给容器一个actionservlet的权重。如果设置为2,则允许其他servlet在需要的时候首先装入servlet-mapping这段告诉容器将匹配*.do格式的文件请求转发到actionservlet。这就是我们所配的action。不匹配这种格式的文件请求将不被struts处理。参数:config缺省值:/WEB-INF/struts-config.xml说明:包含配置信息的xml文件上下问相关路径参数:debug缺省值:0说明:调试的详细级别,控制针对这个servlet将记录多少信息。接受的值为0(off)和1(最不严格)直到6(最严格)。大多数struts组件设置为级别0或2参数:detail缺省值:0说明:用来处理应用配置文件的Digester的调试详细级别。接受的值为0(off)和1(最不严格)直到6(最严格)。编写几个必要的文件一个ActionForm(UserForm)填充页面表单封装成一个类一个Action(LoginAction)通过action调用业务逻辑,转发等操作进行处理struts-config.xml文件Struts核心配置文件。JSP页面登录页面(login.jsp)成功页面(welcome.jsp)失败页面(error.jsp)创建struts-config.xml在WEB-INF目录下创建struts-config.xml文件,并添加如下内容?xmlversion=1.0encoding=“UTF-8?!DOCTYPEstruts-configPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.3//EN文件,是由ActionServlet读取的配置文件,它定义了所有关于Action、ActionForm、ActionForward等的详细信息struts-configform-beansform-beanname=loginFormtype=com.struts.form.LoginForm“//form-beansglobal-forwardsforwardname=failpath=/fail.jsp/forward/global-forwardsaction-mappingsactionpath=/loginname=loginFormtype=com.struts.action.LoginActionforwardname=succpath=/succ.jsp/forward/action/action-mappings/struts-config创建ActionFormActionForm是一个JavaBean,需继承org.apache.struts.action.ActionForm类,它捕获通过HTTP请求传送的参数ActionForm针对每个HTML表单中的字段具有一个对应的属性ActionServlet匹配请求中的参数和ActionForm中的属性,并调用ActionForm中的setter方法,将参数传入ActionFormActionForm中的内部属性全部定义为私有的(private),并通过公共(public)的getter/setter方法来访问创建ActionAction是一个Java类,需继承org.apache.struts.action.Action类ActionServlet将会组装ActionForm,并将它传递给ActionAction通常负责:输入校验调用业务逻辑类执行业务逻辑操作决定返回哪个ActionForward添加ActionForm配置在struts-config.xml文件中,在struts-config标签的内部,添加如下配置:form-beansform-beanname=type=//form-beansform-beans标签内部可以包含多个form-bean标签form-bean标签必须指定name和type属性name属性是给此ActionForm一个标识名称type属性指定了此ActionForm是哪个类,必须是全路径的类名添加Action配置在struts-config.xml文件中,紧接着form-beans标签的下面,添加对LoginAction的配置:action-mappingsactionpath=type=name=scope=forwardname=path=/forwardname=path=//action/action-mappingsaction标签可以配置的重要属性包括path-从页面上通过一个什么样的URL路径来访问Action(不包含.do)type–访问这个URL的时候,调用哪个Action类,这是Action的全路径类名name–这个属性用来标识哪个ActionForm将被创建,并将提交的表单组件给它scope–FormBean的作用域范围,可以取值为session和request,一般取值都是request创建jsp文件创建login.jsp文件,添加一个表单,action为login.do,这个login.do的意思,将会告诉struts的ActionServlet,它将需要调用哪个Action来处理这个表单的请求。创建welcome.jsp文件,输入登录成功的欢迎信息创建error.jsp文件,输入登录失败的提示信息运行流程从浏览器输入地址:,Tomcat将按通常情况来处理这个JSP并返回浏览器。提交表单,实际上是提交到
本文标题:Struts1---从入门到精通
链接地址:https://www.777doc.com/doc-4645381 .html