struts1.2入门
- 格式:docx
- 大小:15.45 KB
- 文档页数:2
struts1.2配置详细收藏struts配置文件web.xml是web应用的发布描述文件。
struts-config.xml是struts应用专有的配置文件,可以根据需要给这个配置文件起其它的文件名。
一、web配置文件web.xml<servlet>元素必须出现在<servlet-mapping>元素前面,<servlet-mapping>元素必须出现在<taglib>元素的前面。
<init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param>元素用来声明servlet初始化参数,config参数是配置struts的ActionServlet专有的,用来设置struts配置文件的相对路径。
<welcome-file-list>。
不能直接把struts的Action作为欢迎文件,以下是在欢迎文件中调用struts action。
<global-forwards><forward name="welcome" path="HelloWorld.do"/></global-forwards><body><logic:forward name="welcome"/></body><welcome-file-list><welcome-file>welcome.jsp</welcome-file></welcome-file-list>配置错误处理<error-page><error-code>404</error-code><location>/common/404.jsp</location></error-page><error-page><error-code>505</error-code><location>/common/505.jsp</location></error-page>配置异常处理<error-page><exception-type>javax.servle.ServletException</exception-type><location>/common/system_error.jsp</location></error-page>配置标签库<taglib><taglib-uri>/WEB-INF/struts-html.tld</taglib-uri><taglib-location>WEB-INF/struts-html.tld</taglib-location></taglib><taglib><taglib-uri>/WEB-INF/mytaglib.tld</taglib-uri><taglib-location>WEB-INF/mytaglib.tld</taglib-location></taglib>web版本在2.4版本中允许不在web.xml中配置taglib描述文件而直接在页面上引用。
Struts2讲义第1章Struts2入门1.1 Struts2简介1.1.1 框架1.1.2 Struts2简介1.1.3 Struts2下载与版本Struts2官网:版本号的意义:Alpha:内测版,一般不向外部发布,会有很多Bug。
Beta:除错 + 增新内测版,但相对于Alpha版已有了很大的改进,消除了严重错误,但还是存在缺陷,需经更多测试来消除。
这个阶段的版本会加入新的功能。
RC:除错Release Candidate,发行候选版,外测版。
与Beta版最大的区别在于Beta阶段会加入新功能,而RC版一般不会加入新功能,而主要着重于除错。
RC版本是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,是正式版之前的最后一个测试版。
GA:General Availability,普通有效版,稳定版,官方开始推荐广泛使用了。
Release:发行版,即最终版。
在一系列测试版之后的正式发行版本,是最终交付用户使用的一个版本。
该版本也称标准版。
Release会以单词形式出现在软件封面上,有时会使用符号R。
1.1.4 Strut2的优点(1)Struts2是非侵入式设计Struts2的Action类为POJO类,不依赖于Servlet API和Struts API。
(2)Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。
(3)Struts2提供了类型转换器,可以将特殊的请求参数转换成需要的类型。
(4)Struts2的输入验证可以对指定方法进行验证。
(5)提供了全局范围、包范围和Action范围的国际化资源文件管理实现。
1.2 Struts2开发环境的搭建1.2.1 Struts2的Jar包Struts2最基本的Jar包,可以从Struts2框架解压目录下的apps中的struts2-blank.war 中获取。
将struts2-blank.war扩展名修改为zip后,解压。
1. Struts2简介1.1. 什么是Struts21.1.1. Struts2的概念Struts2是轻量级的MVC框架,它主要解决了请求分发的问题,重心在于控制层和表现层。
轻量级,指的是Struts2具有较低的侵入性,就是它对我们业务代码的依赖程度很低,简单来说,在使用Struts2框架时,我们的业务代码中基本上不需要import它的包。
Struts2实现了MVC,满足了MVC设计思想。
在我们使用Struts2做开发的时候,就相当于使用了MVC,这是Struts2自动帮助我们实现的,是默认的、隐含的,我们不需要再写特别的代码来实现MVC了。
作为一个框架,Struts2提供了一系列的API,我们可以使用它们来简化代码的编写,从而提升开发效率。
这些API复用程度很高,对业务代码的依赖性也很小,甚至很多是Struts2自动调用的,因此在很大程度上,我们的开发变得可以复用。
Struts2解决请求分发的问题,我们会在后面为什么使用Struts2中讲解。
重心在控制层和表现层,是纵观整个Struts2理论课程来看的,从中我们会体会到这一点,随着大家对Struts2的逐步了解,届时我们再回顾这一点。
1.1.2. 什么是MVCMVC是代码的分层思想,是软件设计领域经典的设计模式。
它根据代码功能的不同,将一个软件的代码分为3部分,即模型、视图、控制器,这3部分代码的含义和功能如下。
1、M-Model 模型模型(Model)的职责是负责业务逻辑。
包含两层:业务数据和业务处理逻辑。
比如实体类、DAO、Service都属于模型层。
2、V-View 视图视图(View)的职责是负责显示界面和用户交互(收集用户信息)。
属于视图的组件是不包含业务逻辑和控制逻辑的JSP。
3、C-Controller 控制器控制器是模型层M和视图层V之间的桥梁,用于控制流程。
比如:在Servlet项目中的单一控制器ActionServlet。
Struts旅程(一)Struts简介和原理struts简介Struts是Apache软件基金会(ASF)赞助的一个开源项目。
它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。
它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
Struts发展历史Struts是作为ApacheJakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、servlet、标签库以及面向对象的技术水准。
Struts这个名字的来源于在建筑和旧式飞机中使用的支持金属架。
之所以这个框架叫做“struts”,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷的基础支撑。
这也是解释struts在开发web应用程序中所扮演的角色的精彩描述。
Struts的含义是”支柱,枝干”,它的目的是为了减少程序开发的时间,项目的创建者认为JSP,servlet的存在虽然可以帮助用户解决大部分问题,但是由于它们的编码对项目的开发带来了许多的不方便,可重用性也差,所以struts应运而生,帮助用户在最短的时间内解决这些问题。
Struts框架提供如下服务:(1)作为控制器的Servlet。
(2)提供大量的标签库。
(3)提供了用于国际化的框架,利用不同的配置文件,可以帮助用户选择合适自己的语言。
(4)提供了JDBC的实现,来定义数据源和数据库连接池。
(5)XML语法分析工具。
(6)文件下载机制。
Struts原理Struts是对JSPModel2设计标准的一种实现,下面分别从模型(Model)、视图(view)和控制器3个部分介绍Struts的体系结构和工作原理。
调用流程如下所示(图1.1)。
图1.1(1)视图(view)在Struts中,视图层包含两个部分,JSP页面和ActionForm。
Struts1.2教程一 Struts1.2入门
我们为什么要用Struts1.2这个框架,他的到来到底为了解决什么样的问题
在这前的我们已经学习了Java WEB,我们已经知道Java WEB开发的两个模式Model1和Model2,其中Model2模式借鉴了一种MVC模式(模型、视图、控制),这个模式能够有效的将业务与视图分开,从而将开发人员与网页美工人员分离开,有利于分工合作,但Model2模式也有它致命的弱点,由于所有的用户请求都通过控制器来与后台业务交互,但每一个用户请求又不同,这样我们就必须为每一个请求写一个控制器(servlet),如果一旦业务庞大,就可能有很多的控制器,这样会给系统维护和扩展都带来巨大的不便,为了解决这一问题基于MVC 模式的开源框架Struts悄然问世,在这个框架中我们所有的请求都到一个中央控制器(ActionServlet)统一处理,这样既有利于我们的维护工作,也增强了系统的扩展性。
Struts1.2初始化流程和具体工作流程
初始化流程:struts最主要的是中央控制器(ActionServlet),它和其他Servlet一样,ActionServlet的加载取决于Servlet容器(WEB容器)来决定,容器根据配置文件(web.xml)的<load-on-startup>标签决定是在容器启动时加载还是第一次请求到来时加载。
不管哪种方式,当ActionServlet加载时,ActionServlet加载并初始化Struts配置文件struts-config.xml,它会把每一个<action>标签的内容生成ActionMapping对象存放在内存中,对于每一个
<form-bean>标签会生成ActionFormBean对象存放在内存中等等,最后加载并初始化消息文件到内存中。
基本工作流程:当完成Struts初始化工作后,以下是一个请求到来时的工作流程。
1.一个请求到来,在内存中找到与之匹配的ActionMapping对象,如果没有找到这提示请求路径错误信息,如果找到进入第二步;
2.找到ActionMapping对象对应的formBean,并创建一个实例把请求信息填充到对象中;
3.根据配置的validate属性决定是否进行表单验证,如果需要则执行formbean的validate方法,如果返回null或者不包含ActionMessage的ActionErrors对象,则表明验证通过,如果不通过则根据配置的input属性的值跳到相应的错误页面;
4.通过验证后配置的映射对象并创建该Action对象,执行execute 方法完成业务逻辑的操作,返回一个ActionForward对象,ActionServlet根据返回的ActionForward对象,生成动态页面并响应给客户端。
Struts1.2的几个知识点
1.Struts1.2的初始化流程和工作流程;
2.Struts1.2实质上应用了JavaEE的前端控制器模式,所有用户的请求都由这个控制器统一处理;
3.Struts1.2在视图层有一些JSP组件和ActionFormBean来实现,控制器由ActionServlet和Action来完成,对于模型层Struts1.2没有对其实现,一般由javabean和EJB来完成;
4.Struts标签如<bean:message>可以将消息文件中的文本显示在JSP页面,这样Struts1.2可以对国际化的实现;
5.Struts1.2的核心配置文件struts-config.xml必须在web.xml配置文件中注册,因此struts-config.xml文件名是可以改动的。
好了,这就是Struts1.2的一些入门知识点,主要是一些原理问题,最主要是弄清楚Struts1.2的工作原理,这里我没有给出Struts1.2的代码例子,大家可以在网上找找,还是用Struts1.2简单实现下用户登陆业务,熟悉熟悉其工作原理。