struts1.X配置文件详解
【IT专家】struts1.x验证框架(转)

本文由我司收集整编,推荐下载,如有疑问,请与我司联系struts1.x验证框架(转)2009/06/16 718 scope=“request” type=“com.yourcompany.struts.action.LogAction” validate=“true” forwardname=“s”path=“/form/MyJsp.jsp”/ /action action-mappings action attribute=“logForm” input=“/form/log.jsp” name=“logForm” path=“/log” scope=“request” type=“com.yourcompany.struts.action.LogAction” validate=“true” forward name=“s” path=“/form/MyJsp.jsp” / /action 里面必须加上validate=“true”这么句代码,否则,验证机制将可能不会运行。
另外,配置文件中还须加入以下代码,表示使用插件: plug-inclassName=“org.apache.struts.validator.ValidatorPlugIn” set-propertyproperty=“pathnames” value=“/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml”/ /plug-in plug-in className=“org.apache.struts.validator.ValidatorPlugIn” set-property property=“pathnames” value=“/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml” / /plug-in 注意加入plug-in 标签的位置,该标签应该放在struts配置文件中的最后,具体位置在元素struts-config /struts-config 内部,在message-resources parameter=“com.blog.struts.ApplicationResources” / 之后,切记要注意位置,不然报错。
struts1入门

1、从struts官方网站下载1.x版。
你可以只下载lib文件,就是几个jar包,放到我们自己项目的WEB-INF/lib目录下面即可。
我们下载他的的demo app,在他的struts-blank-1.3.10.war这个项目的基础上修改就很好。
这是一个压缩包,解压缩即可。
2、在eclipse中创建一个普通的java项目。
创建一个action,继承自org.apache.struts.action.Action即可,覆盖实现execute操作。
在该操作中写你的处理代码,结果用request.setAttribute传递到下一步。
3、创建一个form,继承自org.apache.struts.action.ActionForm,加几个属性,属性的名称与web客户端(或者手机软件)传来的参数的名称一致,做好get/set操作即可。
文件属性的类型是FormFile。
4、创建一个xml文件(这个xml文件,已经上述两个java文件,开发时在src目录下面,编译后放到classes下面)5、配置项目WEB-INF下面的web.xml文件。
将starts的配置文件修改为第4步的xml文件即可6、这里展示层用jsp,可以从request中取得action传来的数据。
success.jsp这个文件就放在项目根目录下面7、Ok了,部署后,在浏览器地址栏输入测试8、扩展struts-examples-1.3.10.war这个demo中,有一个文件上传的例子,看看他的代码,在你的项目中实现文件上传的功能9、简述struts1原理客户端发送请求(Http Request),被struts1的核心控件器ActionServlet接收,ActionServlet 根据请求的地址,和struts-config.xml里的映射关系,找到对应的Action,若找不到就返回找不到页面的错误。
若有通过request取得请求参数,设置到ActionForm中,接着执行Action 里的excute()方法,这时就进入到我们编写的逻辑操作代码了,我们在这里处理,包括对数据库的增删改操作,结果setAttitude到request里面,返回包含控制字符的ActionForward,然后Struts1根据ActionForward,以及struts-config.xml里的result配置,找到相应的输出页面(jsp/ftl等文件),创建输出,返回给客户端。
struts1源码解读

这些只是本人个人的理解,如有误解之处请多指点。
Struts的核心类就是org.apache.struts.action.ActionServlet,它继承于javax.servlet.http.HttpServlet,当我们配置Struts时就要在web.xml文件中配置这个Servlet类。
当ActionServlet初始化时,就调用init()方法。
1、initInternal():初始化Struts框架内在的消息资源,如与系统日志相关的日志、警告和错误消息。
通过调用MessageResources.getMessageResources(internalName)方法生成一个MessageResources类,getMessageResources()方法里先获得一个MessageResourcesFactory对象,然后通过调用MessageResourcesFactory对象的createResources(config)来实现的。
MessageResourcesFactory是一个abstract类,任何继承自它的类都要实现createResources()方法,生成MessageResources对象。
org.apache.struts.util.PropertyMessageResourcesFactory类就是继承了MessageResourcesFactory的一个类,在MessageResourcesFactory定义了一个factoryClass静态属性,protected static StringfactoryClass="org.apache.struts.util.PropertyMessageResourcesFactory" ;而在MessageResourcesFactory.createFactory()静态方法中,通过org.apache.struts.util.RequestUtils的静态方法applicationClass(factoryClass)返回了一个factoryClass变量值对象的class,从而通过此class初例化得到了一个MessageResourcesFactory对象。
struts1 详解

01struts基础J2EE1.4ServletJspJDBCJTA(Java Transaction API)JPA(Java persistence API)---EJBJavaMailJSTLEJBJNDIModel_1的执行流程Mode2_2的执行流程Struts框架的版本Struts充当表现层的作用。
Struts框架的核心组件ActionServlet总控制器。
核心组件,用于将具体的请求分配到各自处理的Action组件中。
Action具体的业务处理过程组件ActionFrom(FormBean)获取表单参数,并将参数封装到Bean中。
ActionForward用来Action的请求转发ActionMapping帮助控制器[ActionServlet]将请求映射到操作类[Action]Struts-config.xml用来配置Stuts组件的关联关系。
Struts框架的工作流程Struts-config.xml<form-bean name="loginForm" type="com.softfz.login.LoginForm" />name:用来表示actionform的名称type:用来表示actionform的类路径<actionattribute="loginForm" name="loginForm"path="/loginAction" scope="request"type="com.softfz.login.LoginActionAction" validate="true"input="/index.jsp" />attribute:表示ActionFrom的实例放到作用域中的名称.LoginForm aa = new LoginForm();aa.setUsername(request.getParameter("username"));aa.setPassword(request.getParameter("password"));request.setAttribute("attribute的值",aa);name:表示Action和ActionFrom关联的名称。
struts各种配置

5.分别使用struts1、struts2的xml方式和struts2的零配置方式(也就是注解方式)做一个登录功能,为了减少难度,数据不用从数据库获取,如下面做法:login方法内代码类似:if("luna".equals(request.getparameter("username"))&&"123456".equals(request.getparameter("us ername"))){request.setAttribute("message","login successfully");}else{request.setAttribute("message","login unsuccessfully");}其中,"luna".equals(request.getparameter("username")表示从页面传过来的参数username的值与luna比较是否相等。
luna并不是真实从数据库查询出来。
下次ssh集成后,这一数据就要真实从数据库查询出来。
struts1配置环境:(1)加入struts-1.3.10-all的lib目录的所有jar;(2)Web.xml配置:WEB-INF/目录下a.拦截所有用户请求b.加载struts的配置信息struts-config.xmlc.可以配置多个struts-config.xml<?xml version="1.0"encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-cl ass><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value> </init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>(3)在WebContent/WEB-INF目录下创建struts-config.xml文件<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC"-//Apache Software Foundation//DTDStruts Configuration1.3//EN""/dtds/struts-config_1_3.dtd"><struts-config><form-beans><form-bean name="loginForm"type="cn.shuiji.controller.LoginForm"/></form-beans><action-mappings><action path="/login"type="cn.shuiji.controller.LoginAction"name="loginForm"><forward name="success"path="/success.jsp"/><forward name="failure"path="/failure.jsp"/></action></action-mappings></struts-config>(4)ActionForm(extents ActionForm)Username;Password;Setter与getter略对应的struts-config.xml文件配置:<form-beans><form-bean name="loginForm"type="cn.shuiji.controller.LoginForm"/> </form-beans>(5)Action(extends Action)覆盖execute方法:public class LoginAction extends Action{@Overridepublic ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response)throws Exception{LoginForm lf=(LoginForm)form;if(lf.getUsername().equals("shuiji")){return mapping.findForward("success");}else{return mapping.findForward("failure");}}}对应的struts-config.xml文件配置:<action-mappings><action path="/login"type="cn.shuiji.controller.LoginAction"name="loginForm"><forward name="success"path="/success.jsp"/><forward name="failure"path="/failure.jsp"/></action></action-mappings>(5)登录页面login.jsp,登录成功页面success.jsp,登录失败页面:failure.jsp struts2的xml方式1,加入jar:struts2-core-2.x.x.jar:Struts2框架的核心类库xwork-core-2.x.x.jar:XWork类库,Struts2在其上构建ognl-2.6.x.jar:对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性freemarker-2.3.x.jar:Struts2的UI标签的模板使用FreeMarker编写commons-logging-1.x.x.jar:ASF出品的日志包,Struts2框架使用这个日志包来支持Log4J和JDK1.4+的日志记录。
配置文件struts-config详解.xml

struts-config.xml配置文件详解struts-config.xml是Struts的主要配置文件,在该文件中,可以配置数据源、form-bean、action 和plug-in(插件)和资源文件的信息。
其文件(Struts1.2版本)主要结构如下所示:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "bbb:///dtds/struts-config_1_2.dtd"></struts-config><data-sources><data-source></data-source></data-sources><form-beans></form-bean></form-beans><global-forwards><forward/></global-forwards><action-mappings><action /><controller /><message-resources /><plug-in /></struts-config>以上各元素必须是按照这个顺序的,若开发人员打乱顺序,很可能引起Struts容器启动时出错。
当然struts-config.xml还有<display-name />、<description />和<icon />子元素,因为它们用得很少,在此不再赘述。
Struts1

Struts学习笔记Struts现在有struts 1.X跟struts 2版本为什么使用struts?●建立在MVC这种公认的好的模式上的,Struts在M、V、C上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,有MVC的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;●开源项目,得到了包括它的发明者Craig R.McClanahan在内的一些程序大师和高手持续而细心的呵护并且经受了实战的检验,使其功能越来越强大,体系也日臻完善;●其他技术和框架具有很好的整合性。
如与Spring,Hibernate等框架的整合;●大大提高了开发速度。
框架概念(Framework)人们用于解决相同或者相似类型问题的方案。
特点:可重用性,可扩展性,可收缩性.基于请求响应模式的应用Framework的逻辑结构:控制器,业务逻辑层,数据逻辑层Struts的概念和体系结构Struts是Apache组织的一个开源项目。
主要是采用Servlet和JSP技术来实现的。
Struts是一个基于Sun Java EE平台的MVC框架,它采用MVC模式,将MVC模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致struts工作流程:1.当服务器启动web应用时,会读取web.xml文件,根据actionServlet的配置会启动这个servlet,创建这个实例时默认会读取web-inf下面的strus-config.xml文件,如果没有这个文件系统会报错启动失败,如果这个配置文件有语法错误,也会启动失败2.当客户端提交一个以.do为结尾的请求,应用会将这个请求交给actionServlet处理如果没有一个action元素的path属性与这个请求的路径相同,就会报No action config found for the specified url.3.如果找到了对应的action元素,那么如果请求带有表单,就会查找action的name属性如果name属性没有配置,会报错:Form bean not specified on mapping for action: "/loginAction"如果name属性有配置,根据这个属性值找form-bean元素,将创建这个bean,将请求的参数设置到这个bean中如果这个action配置了validate属性,那么就会对这个form-bean进行验证验证失败,直接返回input属性指定资源如果验证成功,就会根据type属性找到这个属性对应的类的实例(如果没找着,会创建),然后调用execute方法4.根据这个execute方法返回的forward的path属性打开对应的资源下载安装Struts文件,里面有JAR包(lib)、源码(src)、例子(apps)、文档(docs)等。
struts教程详解

struts教程详解Struts是一种基于Java的开源Web应用程序框架,它旨在简化Web应用程序的开发过程。
它遵循MVC(Model-View-Controller)设计模式,提供了一种结构化的方法来开发Web应用程序。
Struts的核心是一个前端控制器(Front Controller),它是整个框架的核心。
它接收来自用户的请求,并将其分派到相应的处理程序上。
在Struts中,这个前端控制器被称为ActionServlet。
在Struts中,应用程序被划分成一组逻辑部件,称为Action。
每个Action都相当于Web应用程序中的一个页面或操作。
当用户请求一些Action时,ActionServlet将负责查找并执行相应的处理程序。
在Struts中,业务逻辑被封装在一个中间部件中,称为ActionForm。
它是一个JavaBean,用于在视图和控制器之间传递数据。
ActionForm可以捕获用户输入的值,并将其传递给业务逻辑处理程序。
Struts还提供了一种验证框架,用于验证用户输入的数据。
通过使用这个验证框架,开发人员可以定义数据的验证规则,并在处理用户输入之前对其进行验证。
这可以有效地减少服务器端的数据校验工作。
在使用Struts开发Web应用程序时,需要按照以下步骤进行:1. 配置web.xml文件:在web.xml文件中配置Struts的前端控制器ActionServlet。
2. 创建Action:创建处理用户请求的Action类,并在struts-config.xml文件中进行相应的配置。
3. 创建ActionForm:创建用于封装用户输入数据的ActionForm类,并在struts-config.xml文件中与相应的Action进行关联。
5. 配置struts-config.xml文件:在struts-config.xml文件中配置Action、ActionForm和全局配置信息,如消息资源文件和异常处理器等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config.dtd"> type="org.apache.commons.dbcp.BasicDataSource"> value="com.mysql.jdbc.Driver"/> value="jdbc:mysql://localhost:3306/helloAdmin"/>
initial="18"/>
key=""hello.error path="/error.jsp" scope="session" type="hello.HandleError"/>