Struts2小知识点

合集下载

struts2自学完全文档

struts2自学完全文档

一.Struts2基础知识1. struts2的特点及配置1.1struts2与struts1的比较1)在软件设计上struts2没有struts1那样跟ServletApi和StrutsApi有着紧密的耦合,Struts2的应用可以不因爱ServletApi和StrutsApi.struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计public class OrderListAction ectends Action//struts依赖于java2)Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能3)Struts2提供了类型转换器,我们可以把特殊的请求参数转换成我们需要的类型,在struts1中,如果我们实现同样的功能,就必须向struts1的底层实现BeanUtil注册类型转换器4)Struts2提供了支持多种表现层技术,如JSp,freeMarker等5)Struts2的输入校验可以对指定方法进行校验,解决了Struts的长久之疼6)提供了全局范围,包范围和Action范围的国际化资源文件管理实现1.2搭建struts2的开发环境1)新建web项目2)导入必要的包3)写配置文件Struts2默认的配置文件为Struts.xml,该文件需要存放在WEB-INF/classes下,该文件的配置模板如下(在m yeclipse中放在src目录下就可以了)模板在D:\Program Files\struts-2.3.4.1-all\struts-2.3.4.1\apps 解压struts2-blank.var再打开web-info/classes中的struts.x m l文件即可<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration2.3//EN""/dtds/struts-2.3.dtd"><struts></struts>4)在web.xm l中加入Struts2MVC框架启动配置在struts1.x中struts框架是通过Servlet启动的,在struts2中,struts框架式通过Filter 启动的,他在web.xm l中的配置如下:(D:\Program Files\struts-2.3.4.1-all\struts-2.3.4.1\apps 解压struts2-blank.var再打开Web-Info\web.xm l即可)<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.Str utsPrepareAndExecuteFilter</filter-class><!—自从struts2.1.3以后,下面的FilterDispatcher已经标注为过时<filter-class>org.apache.struts2.dispatcher.ng.filter.FilterDispather</filter-class> --></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>在StrutsPrepareAndEXecuteFilter()方法中将会读取类路径下的默认文件struts.xml完成初始化操作。

strusts2课堂总结

strusts2课堂总结

一、1、struts2struts2是mvc设计思想的一个实现,可以将项目低耦合,提高扩展性2、struts2和struts1的区别struts2不是struts1的升级,而是继承的下xwork的血统,它吸收了struts1和webwork 的优势。

struts2的action是原型,安全的,struts2的action是单例,非安全3、步骤:1、导入包2、在web.xml文件中,加入struts2的核心拦截器3、在src下放入struts2的xml struts.xml4、urlhttp://localhost:8080/Struts2_01_HelloWorld/demo/hello.action二、1、默认值2、转发和重定向的区别转发:url显示的依然是上一个的url,共享上一次的请求重定向:url显示的是下一个的url,不共享3、urlhttp://localhost:8080/Struts2_02_Default/demo/hello.action4、路径http://localhost:8080/Struts2_02_Default/demo/a/b/c/hello.action1、原路径找不到,http://localhost:8080/Struts2_02_Default/demo/a/b/hello.action2、如果1找不到,http://localhost:8080/Struts2_02_Default/demo/a/hello.action3、如果2找不到,http://localhost:8080/Struts2_02_Default/demo/hello.action3、如果3找不到,http://localhost:8080/Struts2_02_Default/hello.action三、11、自定义action继承ActionSupport2、功能方法必须满足格式public String 名字()throws Exception{....};3、urlhttp://localhost:8080/Struts2_03_Action/demo/a.action四、1、如何给action传入参数注意:赋值的必须有封装的set方法,通过el表达式获取的时候,必须有封装的get 方法1、直接给单个参数赋值,在action里建立一个变量,名字与参数的名字一样2、为对象的某个属性赋值,在action里建立一个对象,将参数改为对象名.属性的格式五、1、转发和重定向的区别转发到下一次的时候,url依然是上一次的url,共享上一次的request重定向到下一次的时候,url是下一次的url,不共享上一次的request2、struts2的result的type转发:共享上一次action重定向:不共享上一次action1、转发到下一个jsp,html:dispatcher2、重定向到下一个jsp,html:redirect3、转发到下一个action:chain转到同一个包下的action转发到不同包下的action4、重定向到下一个action:redirectAction转到同一个包下的action转发到不同包下的action六、1、为了分模块开发,可以设置多个xmL文件。

struts2学习笔记

struts2学习笔记

1.包头的设置name是struts的包,与Java的包名效果类似,但不是按项目中SRC中包名设置的。

namescape是该包的命名空间。

将作为访问该报Action的路径的一部分。

默认命名空间为namescape=””;假设form 表单提交给helloworld的action ,其action=”/test/helloworld”exctends是表示该包继承的其他包struts_default是任何包都必须继承的包。

否则无法使用struts的核心功能,比如参数上传到action,文件上传,数据校验等。

abstract=”true”定义为抽象包,不得包含Action。

2.action的查找顺序(1)寻找namespace为path1/path2/path3/的包,有这个包:寻找test的Action有这个action:执行没有这个action:寻找namespace为””的命名空间(默认命名空间)是否有这action,没有的话提示找不到action没有这个包:寻找namespace为path1/path2/的包重复(1)步骤。

3.action的默认属性4.Action中各种result的转发类型dispatcher(默认类型)redirect(重定向)redirectAction (重定向到新的Action)plainText (显示原始文件内容)result转发还可包含参数,该参数取自Action中的属性。

例:<action name=”login” class=”xxxx.xxx.xxx.sdsds”><result name=”sucess”> /aaa.jsp?username=${ssss}</result></action>其中ssss是login这个Action中所必须具有的属性redirect书写格式1.<result name=”sucess” type=”redirectAction”>login</result>该写法只能访问位于同一包中的Action;2. <result name=”sucess” type=”redirectAction”><parma name=”actionname”>login</parama><parma name=”namespace”>/xxxxx</parama></result>该写法可访问位于其他包的ActionplainText书写格式1.<result type=”plainText”>/login.jsp</result>2. <result type=” plainText”><parma name=”location”>/login.jsp</parama><parma name=”charSet”>UTF-8</parama></result>全局转发只能在包内定义全局转发。

Struts2知识点整理

Struts2知识点整理


Struts2配置
struts.properties Struts2.x另一个核心配置文件,它所配置的有效属性有 struts.configuration
• 指定加载Struts2的配置文件的配置管理器,默认是: 指定web应用的默认Locale 指定web应用的默认编码集 指定strus2所需的国际化资源文件,多份时用","分隔。

验证程序配置
根元素<validators> 根元素下可以有任意多个filed和validator 每个filed可以使用多个验证程序 嵌入多个field-validator元素 field-validator元素 必须有一个type属性,指定一个验证程序 可以有一个short-circuit属性

通配符
例子1 <action name="UserAction_*" method="{1}">
• 例如:UserAction_add
例子2 <action name="*_*" class="{1}" method="{2}">
• <result>{1}_{2}_success.jsp</resutl>
• 字段级别
– fieldName=converterClass
xwork-conversion.properties
• 类级别
– 例如:app17.Color=ColorConverter

扩展StrutsTypeConverter类
绝大多数类都需要从String -->非String类型 ,以及从非String-->String

Struts2知识点总结

Struts2知识点总结

1.简介Struts 2是Struts 的下一代产品,是在 struts 1和WebWork 的技术基础上进行了合并的全新的Struts 2框架。

其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

Struts 2以WebWork 为核心,采用拦截器的机制来处理用户的请求,2.Struts2处理流程3.Struts2基础<include >可以把struts 配置分为相应的struts.xml 文件<package >中的属性namespace 可以把action 分包,用来解决不同项目的同名action <action>中的method 属性决定action 调用action 业务类的那个方法,根据方法的返回值跳到名字队对应的result 结果集中除了Metnod 调用指定的方法为还有一种动态调用1.在请求的页面就指定调用的action 名称及方法,语法:actionName!methodName.action,action 可以省略,2.在<action>使用通配符, <action name=”house_*”>....<result >其名字可以自行定义,根据业务类返回的值,对应相应的result 官方定义的有success,login,error,input 等其中的type 属性可以决定转向类型,默认的是dispatcher(转发)其他前端控制器 StrutsPreparedAndExec uteFilter 拦截用户请求 用户请求 Action 业务处理,处理请求,返回处理结果 根据请求的url 找到action 返回处理结果 Jsp 页面 渲染结果结果数据传递给jsp 处理后的html 响应用户的是redirect,请求重定向的指定的URL,redirectAction重定向到指定的Action,chain:将请求转发到指定的Action,json返回JSON对象如果result的内容不是一个具体的jsp页面而是${}形式的这就是动态结果的配置,就是结果页面在配置是不能确定,需要在运行时才能确定,比如管理员和普通用户登录,详细的动态结果配置详见资料Action类实现的方法有三种1.继承ActionSupport (常用)2.实现Action接口3.自己编写方法Action接收参数1属性方式接收参数,2Javabean方式接收参数(常用)3.moderlDriven方式接收参数Struts2访问servletAPI的方法在jsp课程中,服务器保存数据的作用域通常有request,session,application,他们对应的servletAPI 分别是HttpServletRequest,HttpSession,servletContext,同样在struts2控制器(action)中也需要访问这些作用域,有三种方法1.使用ActionContext类提供的方法2.以依然注入(IoC)方式访问,实现响应的接口即可3.使用以耦合方式使用ServletActionContext类访问OGNL与struts标签引入的标签指令<%@taglib uri="/struts-tags" prefix="s"%>理解值栈(存储action属性的地方)和stackcontext(存储request,session的地方)概念,并且使用<s:debug>查看值栈访问的值OGNL访问集合知识点,不常用字符串转换OGNL表达式用户%{}相反的加’’单引号Struts2标签可分为通用标签,控制标签,Ajax标签通用标签又分为数据标签和控制标签数据标签:<s:property><s:debug><s:date><s:set><s:url>和<s:a><s:param><s:include>控制标签<s:if>,<s:elseif><s:else><s:iterator>UI标签理解模板与主题,模板用于生成HTML代码,共同风格和观感的模板组织到一起就成了一个主题,内建的主题有simple,xhtml,css_xhtml(默认),css_xhtml,ajax主题的更改用标签属性theme=”simple”标签:<s:form><s:textfield><s:textarea><s:submit><s:select><s:doubleselect>下拉列框和联动列框属性及实现参观相关代码Ajax标签Datetimepicker是一个日历控件导入相应的包引入<%@taglib uri="/struts-dojo-tags" prefix="sx"%>指令在<head>中添加<sx:head parseContent="true"/>添加标签<sx:datetimepicker name="timer" label="发布时间"/>4.数据校验数据校验分为客户端验证和服务器端验证,sruts2对服务器端的验证有两种,1.使用actionsupport编码实现验证2.使用验证框架实现验证,使用actionsupport编码进行验证的方法有三种,1.直接在action类业务方法中验证,2.重写validate()方法实现验证,3.使用validateXXX()方法实现验证验证的关键点在于当用户名或密码没填写时添加addFieldError()方法,此方法处理与字段相关的错误,比如输入的年龄不合理,响应的jsp输出错误的标签是<s:fielderror fieldname=”/>, addActionError()方法是用来添加与action所处理的业务相关的错误信息,在JSP输出错误的标签是<s:actionerror>如果两种情况有任何一种错误(hasErrors())就return到INPUT结果集中(事先已经配置好) 使用验证框架使用特定的配置框架即可,命名的前半部分是action 的名字,可对全局和局部进行验证!具体查看相关资料5.拦截器拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。

struts2课程知识点总结

struts2课程知识点总结

<s:param
<s:property <s:include <s:push <s:set
<s:debug></s:debug>
<s:action
6、Struts2 类型转换
1、自动类型转换 2、list 列表自动类型转换 3、类型转换错误提示 定义 AddMaterialAction.properties 文件
5、tags(标签库)
引入:<%@ taglib uri="/struts-tags" prefix="s"%> 1、 <form> 标签
<s:form> <s:textfield <s:password <s:textarea <s:select <s:checkboxlist
2、控制标签
………………………
validate="true">
8、Struts2 国际化支持
步骤: 1、JSP 中配置
<s:textfield name="username" key="username"/>
2、struts.properties 中配置
struts.custom.i18n.resources=messageResource
f) session 等 jsp 内置对象的应用
两种方法 1、普通 2 、map
g) action 通配符的配置
* 与 {} 或 *_*
<action name="Student*" class="example.StudentAction"method="{1}">

Struts2知识点总结

Struts2知识点总结

Struts2基础知识Struts2概述1.Struts2框架应用javaee三层结构中的web层框架。

2.Struts2框架在struts1和webwork基础之上发展的全新框架。

3.Struts2所解决的问题:在以往实现一个功能时,都需要写很多的servlet,从而造成后期维护上的不方便。

图解:4.现在比较稳定的Struts2版本struts-2.3.24-all.zip5.web层常见框架1.struts2.springMVCStruts2框架入门1.导入jar包1.在lib里面有jar包,但不能全部导入,因为里面含有一些spring包,是不能使用的,导入会导致程序不能运行。

2.到app目录里面复制案例的jar包是最好的方法。

2.创建action3.配置action类的访问路径1.创建struts2核心配置文件,该核心配置文件位置和名称是固定的,位置必须在src下面,名称为struts.xml 。

2.引入dtd约束,可以在案例文件中找到,复制在struts.xml文件中即可。

3.action的配置*注意访问路径:http://域名/端口号/项目名/action名.action注意:.action可以省略,但建议不要省略,为了兼容一些老版本的浏览器。

4.配置Struts2的过滤器,可以在案例中的web.xml文件中找到,复制粘贴即可。

Struts2执行过程图解:Struts2配置1.是一种常量标签2.修改Struts2的默认常量值1.常用方式在struts.xml中进行配置。

2.其它两种方式1.在src下面创建struts.properties文件并修改。

2.在web.xml文件中进行修改。

3.Struts2最常用的常量struts.il8n.encoding=UTF-8,解决表单在通过post方式提交中文时,中文乱码的问题。

Struts2笔记(一)可使用全局页面。

1、配置方法:在package标签下配置2、注意:该标签只能在一个package标签中使用,如果有多个标签,需要重新定义。

Struts2学习笔记

Struts2学习笔记
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>
要访问other()方法,可以通过这样的URL访问:/test/helloworld_other.action
9.OGNL
Struts2将应用范围里的数据以及Action处理的数据都存储在一个区域里。在Struts2中叫做值栈,valueStack。
OGNL就是从值栈中取出自己数据,并在某些条件下进行数据过滤和计算的表达式语言。先入后出。
OGNL中如果搜索的数据不是值栈里存储的数据,而是其他对象,特别是Struts2的ActionContext中的对象,则在访问
这些对象的时候,前面要加上“#”。
价格小于50元的建材
<s:iterator value="materials.{?#this.mainbid<50}">
<s:property value="materialName" />建材的价格是<s:property value="materialValue" />元!
</result>
当多个action中都使用到了相同视图,这时我们应该把result定义为全局视图。struts1中提供了全局forward,struts2中也提供了相似功能:
<package ....>
<global-results>
<result name="message">/message.jsp</result>

Struts2学习笔记

Struts2学习笔记

struts2学习笔记Struts2 框架第一天今天重点内容: 1、什么是Struts2框架?框架特性分析 2、 struts2 快速入门(分析struts2 运行原理) 3、 struts2 常用配置 4、如何访问Struts2 Action (Servlet) 5、 Struts2 结果集使用(响应跳转/ajax) 1. Struts2 框架概述1.1. 什么是struts2Struts2 框架问题:什么是框架?为什么要学习框架?框架是一些已经写好代码,通常和具体业务无关(可以看成:软件的半成品)学习框架,提高开发效率,简化开发(应用框架,实现代码代码开发实现开发标准化) javaEE三层结构在web阶段 DAO模式符合JAVAEE三层结构的三层结构出自 JavaEE规范(体系结构图)? 表现层? 业务层? 持久层/集成层Struts2 是一个表现层框架(简化表现层代码开发)分层开发:代码结构更加清晰,为了更好维护和扩展1.2. struts2 由来由两个框架优点合并后发展而来(struts1 + webwork)历史由来: Java兴起 98年(最早进行java开发分方向 j2se 、j2ee、 j2me ) J2EE 企业级应用软件开发2000 年左右出现struts1 (几乎所有开发人员都在用)随着互联网的发展struts1设计慢慢开始存有缺陷和不足 Webwork框架的出现该框架的设计思想比struts1 先进的多,例如:引入拦截器机制、 ognl 表达式语言 Apache 推出struts2 框架,特点: 开发流程类似struts1 ,内部结构类似webwork (struts2 和 webwork 源自xwork 命令模式框架)1.3. struts2 开发包结构使用框架,导入jar包课程使用 struts-2.3.15.3-all.zip 版本学习apps 使用demo (方便后期快速导入jar包和配置文件)开发中war重命名成zip包解压找到里面的13个核心jar包 doc 文档(学习struts2的官方官方规范文档) lib 开发struts2 需要的所有jar包 src 源代码开发struts2 没必要导入 lib下 128个jar包(去struts2_blank.war下方找struts2 最基本jar)将war包改为zip 扩展名,解压缩回顾jar记忆: 核心struts2-core-3.15.3.jar+ xwork-core+ognl (3) 上传(2jar) 日志: 2 jar 字符串 lang 1asm.* 3 jar 处理字节码信息 javassist.jar 1 代理相关 freemarker 1 jar 图形模板引擎开发strutrs2 基包导入web 工程!感谢您的阅读,祝您生活愉快。

struts2总结

struts2总结

Struts2总结1.struts2工作原理:1.服务器端提交请求,容器初始化HttpServletRequest对象2.请求的对象被FilterDispatcher过滤器过滤,FilterDispatcher调用ActionMapper,决定请求是否需要调用某个Action3.如果需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy(Action代理)ActionProxy通过Configuration Manager解析框架的配置文件,找到需要调用的Action 4.Action调用业务逻辑类完成业务逻辑。

在调用Action前后,将调用该Action涉及到的相关拦截器(Interceptor)5.Action执行完毕,ActionInvocation根据struts.xml中的配置找到对应的返回结果(被称为Result)。

返回结果通常是Jsp2.过滤器的配置:<filter><filter-name>FilterDispatcher</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>FilterDispatcher</filter-name><url-pattern>/*</url-pattern></filter-mapping>3.action的写法:1.Action类不需要继承或实现任何父类或接口,2.如果该Action类是通过表单提交调用,且Action类中需要使用表单提交的请求参数,则必须在Action类中声明与表单域的名字对应的变量,并提供getters/setters方法例如:private String name;private int age;public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}3.Action类中必须有一个public String execute(){}方法,该方法将被自动调用,实现控制逻辑,但是可以通过配置修改方法名3.Action的配置:<struts><package name="primer"namespace="/primer"extends="struts-default"><action name="helloWorldAction"class="cn.itcast.primer.HelloWorldAction"><result name="success">/primer/success.jsp</result> </action></package></struts>各个位置的内容解释:<struts><!-- /primer/helloWorldAction.actionpackage:包* name:包名,唯一的,必选项* namespace:命名空间,唯一的,相当于房间号。

Struts2知识点详解

Struts2知识点详解

Struts 2的基本流程Struts 2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。

在这3个部分里,Struts 2框架提供了核心控制器FilterDispatcher,而用户需要实现业务控制器和业务逻辑组件。

2.核心控制器:FilterDispatcherFilterDispatcher是Struts 2框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。

如果用户请求以action结尾,该请求将被转入Struts 2框架处理。

Struts 2框架获得了*.action请求后,将根据*.action请求的前面部分决定调用哪个业务逻辑组件,例如,对于login.action请求,Struts 2调用名为login的Action来处理该请求。

Struts 2应用中的Action都被定义在struts.xml文件中,在该文件中定义Action时,定义了该Action的name属性和class属性,其中name属性决定了该Action处理哪个用户请求,而class属性决定了该Action的实现类。

Struts 2用于处理用户请求的Action实例,并不是用户实现的业务控制器,而是Action代理——因为用户实现的业务控制器并没有与Servlet API耦合,显然无法处理用户请求。

而Struts 2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到Action中,并回调Action 的execute方法来处理用户请求。

显然,上面的处理过程是典型的AOP(面向切面编程)处理方式。

图3.19显示了这种处理模型。

图3.19 Struts 2的拦截器和Action从图3.19中可以看出,用户实现的Action类仅仅是Struts 2的Action代理的代理目标。

Struts2笔记

Struts2笔记

STRUTS(5天)一、MVC介绍:M:model---实现系统的业务逻辑,用javabean等来实现V:view---用于与用户的交互,通过用jsp或html展示C:controller--是M与V的桥梁,并且用于页面的跳转二、Struts2概述Struts1主要采用了servlet和jsp技术来实现,把servlet、jsp、标签库等技术整合到整个框架中;struts2是以webwork为核心开发的,更加类似于webwork框架,跟struts1相差甚远;2.1、struts2的核心包及目录介绍目录介绍:Lib:struts2的jar包;Docs:struts2的使用说明以及APISrc:源代码Apps:官方例子核心包:1、struts-core:核心包2、Xwork-core:XWork类库,Struts 2在其上构建3、commons-fileupload-....jar 文件上传组件4、commons-io-....jar,上传文件依赖的jar包5、ognl-2.7.3.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性6、reemarker-....jar :Struts 2的UI标签的模板使用FreeMarker编写7、Javassist:三、struts的配置3.1、wex.xml过滤器:StrutsPrepareAndExecuteFilter如果url-pattern是/*时候,所有的请求都可以通过;如果*.xxx的时候,所有扩展名为.xxx的请求可以通过;3.2、struts.xml在src下面创建struts.xml(必须)。

-----在核心包struts-core.jar下的struts-default.xml文件作用:当请求是login的时候,调用class对应类中的login方法;并返回结果<result>,通过返回的参数与result中的name属性相匹配;注意:1、在result中,name可以省略(name=”success”)2、action中class也可以省略,默认执行ActionSupport类3、package中extends必去直接或间接继承“struts-default”--struts-default.xml文件4、在struts2中默认执行execute方法;参数无,public,返回String 3.3、jsp代码3.4、action代码四、struts的详解4.1、<package name="" extends="" namespace=””></package> Name:包名,可以通过包名来直接或间接的继承Extends:直接或间接的继承struts-defaultNamespace:包的命名空间abstract:定义包为抽象的4.2、<action name="" class="" method=””></action>Name:请求参数Class:对应请求类,如果无此参数,默任调用ActionSupport Method:制定的执行方法,如果无此参数,这默认执行action中的excute方法4.3、<result name="">url</result>Type:4.4、全局result作用:1、把共同部分,放到global-results,减少代码的重写次数4.5、默认的Action配置默认的Action,当请求的Action不存在时,那么执行默认的Action在default-action-ref中的name与action的name是一直的。

Struts2知识点总结

Struts2知识点总结

1.struts2 步骤1.创建web项目2.添加struts2的必须jar包3.添加支持(配置web.xml文件)4.创建界面和相应的action5.配置struts.xml文件6.部署运行项目2.struts2的工作流程1. 浏览器发送一个请求。

2. 核心控制器FilterDispatcher根据请求决定调用合适的Action。

3. 拦截器(Intercepter)自动对请求应用通用功能,如验证等。

4. 回调Action的execute方法,该execute方法根据请求的参数来执行一定的操作。

5. Action的execute方法处理结果信息将被输出到浏览器中,支持多种形式的视图。

3.struts2的配置文件1.web.xml2.struts.xml(核心管理Action映射) 自己配置的3.struts-default.xml是struts2框架默认加载的配置文件。

它定义struts2一些核心的bean和拦截器。

这些拦截器是以key-value对的形式配置在struts-default.xml中,其中name是拦截器名字,就是后面使用该拦截器的引用点,value则指定拦截器的实现类。

4.struts.properties(核心管理属性) 自己配置的5.default.properties(核心管理属性)4.<struts>标签下的子标签配置1.<bean type="com.opensymphony.xwork2.ObjectFactory" name="struts"class="org.apache.struts2.impl.StrutsObjectFactory" />2.<include file="struts1.xml"></include>3.<constant name=“key” value=“value” />4.<package></package>5.package标签下的配置1.<action name="loginAction" class="com.action.loginAction"><result name="success">/welcome.jsp</result><result name="error">/index.jsp</result></action>2.<global-results><result></result></global-results>3.<global-exception-mappings><exception-mapping result="error"exception="java.long.Exception"></exception-mapping></global-exception-mappings>……………………………………6.action类实现Action接口和继承ActionSupport7.通过ActionContext类获得context(request),再通过context获得session和application context.put("key","value");session.put("key","value");session.put("key","value");public class ServletActionContext (org.apache.struts2)public static PageContext getPageContext()public static HttpServletRequest getRequest()public static HttpServletResponse getResponse()public static ServletContext getServletContext()8.在action中直接使用一个对象,两种方式:1.在提交表单时name属性为:对象.xxxx2.实现ModelDriven<类类型>接口和其方法。

Struts2基础知识大全

Struts2基础知识大全
</interceptor-stack>
</interceptors>
十一、Struts2响应JSON数据
1、导包:json-lib、struts2-json-plugin(可以把有get方法的属性自动转换成JSON格式)
十二、FreeMarker(模板引擎)
1、web.xml配置filter
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
资源文件中放信息:名字=值(#表示注释)
切换语言环境:给它发一个请求参数
JSP使用资源:<s:text name="资源文件中的名字"/>(主要用来取资源文件)
<s:textFiled key="资源文件中名字"/>
Ognl中使用资源:继承ActionSupport类,在Ognl中调getText("资源文件中的名字")方法
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>(允许静态方法访问)
三、Struts2请求过程
1、根据请求url到struts.xml找到action
2、确定action类实例化
3、把请求参数赋给action属性
2、判断方法是否需要校验,若不需要校验,则进入action的处理方法。若需要,则判断有没有校验文件,若有校验文件则进行校验,若没有则判 断有没有validate处理方法名,若有则进行校验,若没有则判断有没有validate方法,有则进行校验。判断校验是否成功,若判断成功则进入 action的处理方法,若不成功则进入对应action的input的result

struts2知识点摘要1

struts2知识点摘要1
1、StrutsPrepareAndExecuteFilter称为核心控制器,XxxAction称为业务控制器
2、Struts2的默认配置文件名为struts.xml,该文件放在Web应用的类加载路径下,通常放在WEB-INF/classes路径下;
3、struts2.properties文件是一个标准的Properties文件,管理常量,只要将struts2.properties文件放在类加载路径下,Struts2框架就可以加载该文件。
Map para=ctx.getParameteequest对象的getParameterMap()方法。
在jsp页面中使用它们
${applicationScope.counter}
${er}
${requestScope.tip}
ctx.getSession().put("user",user);
//通过ActionContext访问request范围的属性值
ctx.get("tip");类似于HttpServletRequest的getAttribute(String name)方法。
ctx.put("tip","welcome to my home!");
ctx.getApplication().put("counter",counter);
//通过ActionContext访问session范围的属性值
Map session=ctx.getSession();
void setSession(Map session);直接传入一个Map实例,将该Map实例里的key-value对转化成session的属性名、属性值。

Struts2知识点总结报告

Struts2知识点总结报告

1.简介Struts 2是Struts 的下一代产品,是在 struts 1和WebWork 的技术基础上进行了合并的全新的Struts 2框架。

其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

Struts 2以WebWork 为核心,采用拦截器的机制来处理用户的请求,2.Struts2处理流程3.Struts2基础<include >可以把struts 配置分为相应的struts.xml 文件<package >中的属性namespace 可以把action 分包,用来解决不同项目的同名action <action>中的method 属性决定action 调用action 业务类的那个方法,根据方法的返回值跳到名字队对应的result 结果集中除了Metnod 调用指定的方法为还有一种动态调用1.在请求的页面就指定调用的action 名称及方法,语法:actionName!methodName.action,action 可以省略,2.在<action>使用通配符, <action name=”house_*”>....<result >其名字可以自行定义,根据业务类返回的值,对应相应的result 官方定义的有success,login,error,input 等其中的type 属性可以决定转向类型,默认的是dispatcher(转发)其他前端控制器 StrutsPreparedAndExec uteFilter 拦截用户请求 用户请求 Action 业务处理,处理请求,返回处理结果 根据请求的url 找到action 返回处理结果 Jsp 页面 渲染结果结果数据传递给jsp 处理后的html 响应用户的是redirect,请求重定向的指定的URL,redirectAction重定向到指定的Action,chain:将请求转发到指定的Action,json返回JSON对象如果result的内容不是一个具体的jsp页面而是${}形式的这就是动态结果的配置,就是结果页面在配置是不能确定,需要在运行时才能确定,比如管理员和普通用户登录,详细的动态结果配置详见资料Action类实现的方法有三种1.继承ActionSupport (常用)2.实现Action接口3.自己编写方法Action接收参数1属性方式接收参数,2Javabean方式接收参数(常用)3.moderlDriven方式接收参数Struts2访问servletAPI的方法在jsp课程中,服务器保存数据的作用域通常有request,session,application,他们对应的servletAPI 分别是HttpServletRequest,HttpSession,servletContext,同样在struts2控制器(action)中也需要访问这些作用域,有三种方法1.使用ActionContext类提供的方法2.以依然注入(IoC)方式访问,实现响应的接口即可3.使用以耦合方式使用ServletActionContext类访问OGNL与struts标签引入的标签指令<%@taglib uri="/struts-tags" prefix="s"%>理解值栈(存储action属性的地方)和stackcontext(存储request,session的地方)概念,并且使用<s:debug>查看值栈访问的值OGNL访问集合知识点,不常用字符串转换OGNL表达式用户%{}相反的加’’单引号Struts2标签可分为通用标签,控制标签,Ajax标签通用标签又分为数据标签和控制标签数据标签:<s:property><s:debug><s:date><s:set><s:url>和<s:a><s:param><s:include>控制标签<s:if>,<s:elseif><s:else><s:iterator>UI标签理解模板与主题,模板用于生成HTML代码,共同风格和观感的模板组织到一起就成了一个主题,内建的主题有simple,xhtml,css_xhtml(默认),css_xhtml,ajax主题的更改用标签属性theme=”simple”标签:<s:form><s:textfield><s:textarea><s:submit><s:select><s:doubleselect>下拉列框和联动列框属性及实现参观相关代码Ajax标签Datetimepicker是一个日历控件导入相应的包引入<%@taglib uri="/struts-dojo-tags" prefix="sx"%>指令在<head>中添加<sx:head parseContent="true"/>添加标签<sx:datetimepicker name="timer" label="发布时间"/>4.数据校验数据校验分为客户端验证和服务器端验证,sruts2对服务器端的验证有两种,1.使用actionsupport编码实现验证2.使用验证框架实现验证,使用actionsupport编码进行验证的方法有三种,1.直接在action类业务方法中验证,2.重写validate()方法实现验证,3.使用validateXXX()方法实现验证验证的关键点在于当用户名或密码没填写时添加addFieldError()方法,此方法处理与字段相关的错误,比如输入的年龄不合理,响应的jsp输出错误的标签是<s:fielderror fieldname=”/>, addActionError()方法是用来添加与action所处理的业务相关的错误信息,在JSP输出错误的标签是<s:actionerror>如果两种情况有任何一种错误(hasErrors())就return到INPUT结果集中(事先已经配置好) 使用验证框架使用特定的配置框架即可,命名的前半部分是action 的名字,可对全局和局部进行验证!具体查看相关资料5.拦截器拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。

struts2知识点汪

struts2知识点汪

一、Framework框架概念
二、Struts2的概念
三、Webwork
四、Struts2的工作原理
五、如何搭建struts2框架
六、什么是Action
七、编写action的三种方式
八、Action的5个常量
九、Action的一个执行方法
十、属性驱动
十一、模型驱动之OGNL
十二、模型驱动之ModelDriven
十三、输入校验
十四、Xml配置方式校验
十五、valuestack
十六、Ognl
十七、Action 中的动态方法使用及调用十八、通配符的使用
十九、Struts2的作用域
二十、Result字符串常量
二十一、ResultType常量
二十二、数据标签
二十三、控制标签
二十四、UI标签
二十五、国际化
二十六、Struts2回显
二十七、Struts2上传
二十八、Struts2下载
二十九、enctype用法
三十、UUID
三十一、拦截器
三十二、自定义拦截器
三十三、Token拦截器
三十四、Token拦截器的工作原理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts2简要总结
1、S truts2框架简介
Struts2是Struts1的下一代产品,是建立在Struts1和WebWork技术基础上的合并的全新框架;在体系结构方面,Struts1和Struts2差别巨大,Struts2以WebWork 为核心,采用拦截器机制处理用户请求,使业务逻辑控制器能够与Servlet API脱离开,所以Struts2可以理解为WebWork的更新产品,也就是说Webwork和Struts2只有很小的变化,而Struts2和Struts1的变化很大。

2、M VC简介
MVC是模型(Model)-视图(View)-控制器(Controller)三层架构的简称,
3、S truts2流程
1)Struts2框架的大致处理流程:
①浏览器发出请求,例如请求/login.action等。

②核心控制器FilterDispatcher根据请求决定调用合适的Action。

③ Struts2的拦截器链自动对请求应用通用功能,例如workflow、validation或
文件上传等功能。

④回调Action的execute方法,该execute方法先获取用户请求参数,然后执行
某种数据库操作,既可以将数据保存到数据库,也可以数据库中检索信息。

实际上,因为Action只是一个控制器,它会调用业务逻辑组件来处理用户请求。

⑤ Action的execute方法处理结果信息将被输出到浏览器中,可以是HTML页面,
图像,也可以是PDF文档或者其它文档。

此时支持的视图技术非常多,既支持JSP,也支持Velocity,FreeMarker等模板技术。

2)流程简介:
橘黄色的部分,如:ActionContextCleanUp和Other Filters(SiteMesh,etc)和FilterDispatcher,属于过滤器层,由这三个过滤器组成过滤器链;
蓝色的部分是Struts2框架的核心部分,比如Action代理,相应的配置和ActionMapper等等;
绿色的是相应的拦截器,在Action执行前和执行后都要调用;
浅黄色的部分是开发人员或者用户在使用框架的时候需要实现的部分,比如配置文件,Action,还有页面等
当一个初始的请求到达Servlet容器,这个请求要先经过相应的一系列的标准的过滤器链的处理,最重要的是Filter Dispatcher过滤器,前面的两个过滤器在集成相应的插件的时候会用到(对页面的布局、描述进行统一的控制的时候会用到这些插件),如果请求并不使用相应的插件,那么请求会经过Filter Dispatcher过滤器,Filter Dispatcher作为核心过滤器会接受请求,然后询问ActionMapper来确定请求的Action是否应该被调用,如果请求的Action需要被调用的话,Filter Dispatche核心过滤器就会把核心控制权委派给相应的Action代理(ActionProxy),ActionProxy会询问Action框架的配置管理器(Configuration Manager,由Struts2框架提供的),而Configuration Manager的工作是由Struts.xml这样的一个配置文件来管理的(由开发人员提供,即请求该由那些资源来处理,处理后的结果是怎样的都是由开发人员在Struts.xml配置文件中配置的),那么通过配置文件和配置管理器后,Action代理(ActionProxy)会创建一个实现了命令模式的Action Invocation,实现了Action Invocation后,Action Invocation会在调用真正的业务控制器Action之前一次调用相应的Interceptor拦截器,然后执行Action,把结果会生成一个相应的响应页面(可以是JSP、FreeMarker等等),在执行完响应以后还会一次经过相应的拦截器,执行顺序跟执行Action前正好是相反的,然后响应会通过相应的过滤器链回到客户端,用户接收到响应呈现出最终的结果,也就是说通过过滤器链进来然后生成响应后又通过过滤器链返回到客户端,这就是Struts2框架的处理流程。

4、S truts.xml
5、S truts2
6、S truts2
7、。

相关文档
最新文档