- 浏览: 168383 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (90)
- [PDM系统] (1)
- java初学者应该懂的 (11)
- Java 中的finally你知多少? (1)
- JAVA中的引用到底是传值还是传址? (1)
- Tomcat 7启动异常 (1)
- JAVA IO总结 (1)
- Overriding 与 Overloading的区别 (1)
- Spring3.0新特性 (1)
- 【Struts2】 (11)
- 阐释Spirng (6)
- EJB与JAVA Bean的区别 (1)
- 异常备忘 (1)
- 邮件传输协议理解 (1)
- java与openssl以及private key文件生成密钥 (1)
- EL 隐式对象 (1)
- JSP (1)
- PHP (1)
- Python (1)
- Ruby (1)
- Perl概要及各自特点 (1)
- SQL Server小技巧 (6)
- 很好的博客 ,有很多好用的资料 (0)
- JAVA异常分类 (2)
- 面向对象的设计原则 (1)
- Java集合框架使用总结 (1)
- 如何理解面向对象思想 (0)
- Spring (1)
- 3DES加密 (1)
- Tomcat AJP Connector参数调整 (1)
- Linux下切分Tomcat的catalina.out日志文件 (1)
- mysql (1)
- Tomcat处理HTTP请求源码分析 (1)
- 6款常用的Java开源报表制作工具 (1)
- JavaScript中出现乱码的处理心得 (1)
- hibernate3.3.2与hibernate3.5.0 (1)
- hibernate心得 (4)
- 关于eclipse以及myeclipse (1)
- ubuntu (1)
- char、nvarchar和varchar区别 (1)
- javascript (1)
- Java语言学习六大要点 (1)
- Java之异常与错误的区别及java的异常体系 (1)
- JDBC 介绍 (1)
- JDBC组件 Druid (1)
- 10 个非常重要的 HotSpot JVM 参数 (1)
- Linux (1)
- Weblogic应用程序部署指南 (1)
- 书上没写的领导守则 (1)
- 产品经理-需求分析的六原则 (1)
- 客户与用户的区别 (1)
- 对MAXIMO的理解 (1)
- sql server 2005 (1)
- 通过pl/sql创建Oracle新用户 (1)
- Oracle笔记 (1)
- 配置管理的流程 (1)
- 人生经验九条与十淡 (1)
- 实施顾问 (2)
- 项目管理 (1)
- List----linq的集合运算 (1)
最新评论
-
Lightning_py:
不错,讲的挺好的。。。。。
实施顾问的八大建议!! -
nikalan:
总结很全面
abstract class 和interface 的区别
forward和redirect的区别
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的相应内容读取过来,然后把这些内容发给浏览器,浏览器根本不知道服务器发送的内容从哪儿来的,所以它的地址栏中还是原来的地址。
redirect 就是服务器端根据逻辑,发送一个状态码,告诉浏览器去重新去请求那个地址,所以它的地址栏中还是原来的地址
所以判断是转发还是重定向我们可以根据浏览器中的地址是否改变,若改变则为重定向,反之 为转发。
struts1配置:
<action
attribute="loginForm"
input="/index.jsp"
name="loginForm"
path="/login"
scope="request"
type="com.xinyang.action.LoginAction">
<set-property property="cancellable" value="true" />
<forward name="succ" path="/WEB-INF/page/admin.jsp" /><!-- 浏览器内部请求转发 -->
<forward name="error" redirect="true" path="/index.jsp" /><!-- 重定向 -->
</action>
struts2配置
<action name="login" class="com.xinyang.action.LoginAction">
<result name="success">/WEB-INF/welcome.jsp</result>
<result name="error">/WEB-INF/error.jsp</result>
</action>
result配置类似于struts1中的forward,但是struts2中提供了多种结果类型:dispatcher(默认值)、redirect、redirectAction、painText。
【dispatcher叙述】
dispatcher(默认值):它对应struts中的 <forward name="succ" path="/WEB-INF/page/admin.jsp" />【 浏览器内部请求转发定向至某一视图】,而上面的配置 <result name="success">/WEB-INF/welcome.jsp</result>就是采用此方式进行浏览器内部请求转发定向至某一视图
【redirect叙述】
如果要实现类似于Struts1中的重定向的方式定位到某一视图,在Struts中就应该使用redirect这种方式来实现,这种结果类型它对应Struts1中<forward name="error" redirect="true" path="/index.jsp" />配置 redirect属性设置为true这样浏览器进行重定向 定向至某一Jsp
注:根据上面Struts2中的Action配置,把视图jsp放到/WEB-INF/..目录中,因为当前的jsp仅供struts的Action使用,所以我们不希望用户通过浏览器直接访问 ,反之当用户在浏览器中直接访问是没有意义的!如果浏览器采用重定向方式进行定位到某一jsp,此时视图jsp就不能放到/WEB-INF/..目录下,所以所谓浏览器重定向就是应到用户浏览器访问某一路径说 白了就是用户直接访问的路径,而此时用户是不能访问/WEB-INF/..目录中的视图,而只有浏览器服务内部请求转发时才能访问/WEB-INF/..中的jsp视图。
在strutts配置文件
<action name="redirect">
<result type="redirect">/employee.jsp</result>
</action>
在配置视图result中 我们需要用到一个type指定接口类型是采用重定向的方式进行定位转发!
注:当浏览器进行重定向的方式 进行转定位到某一视图 ,若含有参数进行定位到某一视图
在struts1中配置如下:
<action path="/control/employee/manage" ...../>
<forward name="xxx" redirect="true">/xxx.jsp?xxx=xxx</forwad>
</action>
在struts2中
<action name="redirect">
<result type="redirect">/xxx.jsp?xxx${xxx}</result>
</action>
注:若传递为中文:我们需对中文进行编码
public String execute(){
try {
this.xxx=URLEncoder.encode("朱新阳","UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
当在页面中显示传递过来的值时发现在浏览器中url对中文参数已经进行了中文编码,但是在页面中显示传递的参数为乱码
处理方式:在tomcat服务器接收中文参数以ISO8859-1编码方式进行存放
所以在tomcat服务器中以get()方式继续中文参数传递时候,必须先得到ISO8859-1的二进制数字然后转换为字符
因为传递的参数经过URL编码 所以还需为其解码
若不解码 代码为:new String(xxx.getBytes("ISO8859-1"),"UTF-8");
转换并解码 代码为:java.net.URLDecoder.URLDecoder.decode(new String(xxx.getBytes("ISO8859-1"),"UTF-8"),"UTF-8");
注:若不解码 好像也不错
【redirectAction叙述】
redirectAction :重定向至某一action
若重定向的action在同一包下:
<result type="redirectAction">某一action名称</result>
若:重定向的action在别的匿名空间
<result type="redirectAction">
<param name="actionName"></param>
<param name="namespace"></param>
</result>
【painText叙述】
作用:原样输出视图代码 适合应用于:技术网站浏览java或jsp源码
代码为:
<result name="xxx" type="plainText">
<param name="location">/xxx.jsp</param><!-- 指定请求文件路径-->
<param name="charSet">xxx</param><!-- 指定读取文件的编码-->
</result>
注:对struts而言
若:出现乱码,则我们需要确定文件以什么编码存储,其次对struts而言,我们要确定系统以什么编码读取它,我们必须指定它以什么编码进行存储并以什么编码进行读取
视图文件 -》右键properties--Text file encoding来确定文件是以什么编码进行存放
【全视图】
某一视图,它可以供多个action所公用 这种视图我们叫做全视图;
配置如下:
<package name="xinyang" namespace="/xinyang/employee" extends="struts-default">
<!-- 全视图配置 -->
<global-results>
<result name="quanju">xxx.jsp</result>
</global-results>
<action name="qj" class="com.xinyang.action.LoginAction" method="add">
</action>
</package>
这样我们在action中 我们定义一个add方法 返回一个qj字符串就可以了
访问:http://localhost:8080/Web工程名称/xinyang/employee/qj.action 这样我们就可以访问到xxx.jsp
注:这个全视图目前是在<package name="xinyang" namespace="/xinyang/employee" extends="struts-default">这个包中定义的 所以仅能供此包下的action中所使用,若在struts使用范围内或在别的包下的anction也可以使用这个全局视图,可以通过包的继承方式来设置
<package name="base" extends="struts-default">
<global-results>
<result name="xxx">xxx.jsp</result>
</global-results>
</package>
<package name="xxx" extends="base">
<action name="xxx" class="com.xinyang.action.LoginAction" method="add">
</action>
</package>
<package name="xxx1" extends="base">
<action name="xxx" class="com.xinyang.action.LoginAction" method="add">
</action>
</package>
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的相应内容读取过来,然后把这些内容发给浏览器,浏览器根本不知道服务器发送的内容从哪儿来的,所以它的地址栏中还是原来的地址。
redirect 就是服务器端根据逻辑,发送一个状态码,告诉浏览器去重新去请求那个地址,所以它的地址栏中还是原来的地址
所以判断是转发还是重定向我们可以根据浏览器中的地址是否改变,若改变则为重定向,反之 为转发。
struts1配置:
<action
attribute="loginForm"
input="/index.jsp"
name="loginForm"
path="/login"
scope="request"
type="com.xinyang.action.LoginAction">
<set-property property="cancellable" value="true" />
<forward name="succ" path="/WEB-INF/page/admin.jsp" /><!-- 浏览器内部请求转发 -->
<forward name="error" redirect="true" path="/index.jsp" /><!-- 重定向 -->
</action>
struts2配置
<action name="login" class="com.xinyang.action.LoginAction">
<result name="success">/WEB-INF/welcome.jsp</result>
<result name="error">/WEB-INF/error.jsp</result>
</action>
result配置类似于struts1中的forward,但是struts2中提供了多种结果类型:dispatcher(默认值)、redirect、redirectAction、painText。
【dispatcher叙述】
dispatcher(默认值):它对应struts中的 <forward name="succ" path="/WEB-INF/page/admin.jsp" />【 浏览器内部请求转发定向至某一视图】,而上面的配置 <result name="success">/WEB-INF/welcome.jsp</result>就是采用此方式进行浏览器内部请求转发定向至某一视图
【redirect叙述】
如果要实现类似于Struts1中的重定向的方式定位到某一视图,在Struts中就应该使用redirect这种方式来实现,这种结果类型它对应Struts1中<forward name="error" redirect="true" path="/index.jsp" />配置 redirect属性设置为true这样浏览器进行重定向 定向至某一Jsp
注:根据上面Struts2中的Action配置,把视图jsp放到/WEB-INF/..目录中,因为当前的jsp仅供struts的Action使用,所以我们不希望用户通过浏览器直接访问 ,反之当用户在浏览器中直接访问是没有意义的!如果浏览器采用重定向方式进行定位到某一jsp,此时视图jsp就不能放到/WEB-INF/..目录下,所以所谓浏览器重定向就是应到用户浏览器访问某一路径说 白了就是用户直接访问的路径,而此时用户是不能访问/WEB-INF/..目录中的视图,而只有浏览器服务内部请求转发时才能访问/WEB-INF/..中的jsp视图。
在strutts配置文件
<action name="redirect">
<result type="redirect">/employee.jsp</result>
</action>
在配置视图result中 我们需要用到一个type指定接口类型是采用重定向的方式进行定位转发!
注:当浏览器进行重定向的方式 进行转定位到某一视图 ,若含有参数进行定位到某一视图
在struts1中配置如下:
<action path="/control/employee/manage" ...../>
<forward name="xxx" redirect="true">/xxx.jsp?xxx=xxx</forwad>
</action>
在struts2中
<action name="redirect">
<result type="redirect">/xxx.jsp?xxx${xxx}</result>
</action>
注:若传递为中文:我们需对中文进行编码
public String execute(){
try {
this.xxx=URLEncoder.encode("朱新阳","UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
当在页面中显示传递过来的值时发现在浏览器中url对中文参数已经进行了中文编码,但是在页面中显示传递的参数为乱码
处理方式:在tomcat服务器接收中文参数以ISO8859-1编码方式进行存放
所以在tomcat服务器中以get()方式继续中文参数传递时候,必须先得到ISO8859-1的二进制数字然后转换为字符
因为传递的参数经过URL编码 所以还需为其解码
若不解码 代码为:new String(xxx.getBytes("ISO8859-1"),"UTF-8");
转换并解码 代码为:java.net.URLDecoder.URLDecoder.decode(new String(xxx.getBytes("ISO8859-1"),"UTF-8"),"UTF-8");
注:若不解码 好像也不错
【redirectAction叙述】
redirectAction :重定向至某一action
若重定向的action在同一包下:
<result type="redirectAction">某一action名称</result>
若:重定向的action在别的匿名空间
<result type="redirectAction">
<param name="actionName"></param>
<param name="namespace"></param>
</result>
【painText叙述】
作用:原样输出视图代码 适合应用于:技术网站浏览java或jsp源码
代码为:
<result name="xxx" type="plainText">
<param name="location">/xxx.jsp</param><!-- 指定请求文件路径-->
<param name="charSet">xxx</param><!-- 指定读取文件的编码-->
</result>
注:对struts而言
若:出现乱码,则我们需要确定文件以什么编码存储,其次对struts而言,我们要确定系统以什么编码读取它,我们必须指定它以什么编码进行存储并以什么编码进行读取
视图文件 -》右键properties--Text file encoding来确定文件是以什么编码进行存放
【全视图】
某一视图,它可以供多个action所公用 这种视图我们叫做全视图;
配置如下:
<package name="xinyang" namespace="/xinyang/employee" extends="struts-default">
<!-- 全视图配置 -->
<global-results>
<result name="quanju">xxx.jsp</result>
</global-results>
<action name="qj" class="com.xinyang.action.LoginAction" method="add">
</action>
</package>
这样我们在action中 我们定义一个add方法 返回一个qj字符串就可以了
访问:http://localhost:8080/Web工程名称/xinyang/employee/qj.action 这样我们就可以访问到xxx.jsp
注:这个全视图目前是在<package name="xinyang" namespace="/xinyang/employee" extends="struts-default">这个包中定义的 所以仅能供此包下的action中所使用,若在struts使用范围内或在别的包下的anction也可以使用这个全局视图,可以通过包的继承方式来设置
<package name="base" extends="struts-default">
<global-results>
<result name="xxx">xxx.jsp</result>
</global-results>
</package>
<package name="xxx" extends="base">
<action name="xxx" class="com.xinyang.action.LoginAction" method="add">
</action>
</package>
<package name="xxx1" extends="base">
<action name="xxx" class="com.xinyang.action.LoginAction" method="add">
</action>
</package>
发表评论
-
Java EE 5 技术简介
2011-11-25 18:03 775Java EE 5 技术简介 http://netbeans. ... -
关于struts2自定义拦截器
2011-11-25 18:02 954[size=xx-large] 在struts2中自定义拦 ... -
stryts2中的文件上传
2011-11-24 17:28 1025package cn.itcast.action; impo ... -
struts2中的if/else,iterator标签以及ognl简单使用
2011-11-24 17:27 1136现在在页面上判断 显示两张图片 数据库中有图片就显示指定路径下 ... -
Struts2中实现文件上传
2011-11-23 17:01 1070一、上传单个文件 1、首先我们写一个Java类 impor ... -
Struts2 访问或添加request/session/application属性
2011-11-22 14:50 965[size=xx-small]action代码 public ... -
Struts2
2011-11-22 14:17 626一,Struts2做什么的? ... -
Struts2中UrlRewriterFilter(url重写)的初步使用
2011-11-22 11:34 998之前做的网站基本成型,不过,听说要对搜索引擎友好点,还得要将网 ... -
在使用Struts的过程中也遇到了一些问题
2011-11-22 11:25 934在使用Struts的过程中也遇到了一些问题,现在总结一下。 ... -
【Struts2】为Action的属性注入值
2011-11-17 15:41 1655在Struts2中提供了依赖注入的功能 在ridirectAc ...
相关推荐
这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本概念。在Struts2的配置文件(如struts.xml)中,每个Action可以有多个结果,每个结果对应一个特定的视图。Result配置...
esult配置的各种视图转发类型esult配置的各种视图转发类型esult配置的各种视图转发类型
本教程主要围绕"传智播客_result的各种视图转发类型及全局"展开,这涉及到Struts2框架中的Action结果处理方式以及全局配置。 首先,Struts2中的Action结果类型是连接Action和视图的桥梁。当一个Action执行完毕后,...
Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...
Struts2内置了一些基本的Result类型,如“dispatcher”(默认),它会将结果视图作为JSP、FreeMarker或其他模板引擎文件来渲染。还有“redirect”和“redirectAction”,前者用于HTTP层面的重定向,后者用于在内部...
### Struts 各种配置详解 #### 一、概述 Struts 是一款开源的MVC框架,用于构建可扩展的企业级Java Web应用。它通过提供一套标准的开发模式和组件来简化开发流程,并且能够很好地与其他Java技术进行整合。本文将...
- **struts.xml**:这是Struts2框架的核心配置文件,定义了应用程序中的Action映射、结果类型以及拦截器等关键配置信息。它主要包含以下几个元素: - `package`:表示一个包,其中可以包含多个Action。 - `action`...
在Struts2中,Result Type是控制流程的重要部分,用于定义动作执行后如何转发或重定向到特定的视图。这篇博客文章将深入探讨Struts2的Result Type,以及它在实际应用中的工作原理。 首先,我们需要了解Struts2的...
在实际应用中,开发者可以根据需求选择合适的Result类型,通过在`struts.xml`配置文件中定义result元素,指定name(通常为Action的返回码)和type(对应Result类型),以及对应的资源路径,来实现Action执行后的页面...
在Struts2中,配置文件主要分为两个部分:`struts-default.xml`和用户自定义的配置文件,如`struts.xml`或`struts-config.xml`。这些XML文件定义了Action、结果类型、拦截器和包等元素,从而控制应用程序的行为。 *...
### Struts 2.0 详细配置解析 #### 一、Struts 2.0 简介 Struts 2.0 是一个基于 Java 的开源框架,用于开发 Web 应用程序。它继承了 Struts 1.x 的优点,并在架构上进行了改进,更加灵活且易于扩展。Struts 2.0 ...
本文将深入探讨Struts2.0的各种配置,帮助开发者更好地理解和使用这个强大的框架。 首先,让我们关注Action配置中的返回值。在Struts2中,一个Action类通常包含多个方法,每个方法代表一个业务逻辑,返回值定义了...
总之,配置Struts框架涉及多个方面,包括导入必要的库、编写Action、配置struts.xml、处理视图以及理解拦截器机制。理解并掌握这些知识点,将有助于你构建高效、稳定且易于维护的Java Web应用。
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建Java Web应用程序。在Struts2中,配置文件起着至关重要的作用,它们定义了应用的行为、请求的映射、数据验证规则以及与数据库的交互。下面将详细讨论...
这个文件包含了所有动作映射、数据源、form bean、结果类型、全局转发和异常处理等配置。例如,定义一个Action Mapping如下: ```xml ``` 上述配置表示当请求以"/example"开头时,将调用`...
总的来说,Struts2的配置与自定义类型转换是一个关键的环节,它确保了数据从视图到模型的正确映射,提高了应用程序的灵活性和可维护性。通过理解并熟练运用这些配置和自定义机制,开发者能够更好地控制数据处理流程...
此配置文件主要负责定义应用的行为、组件以及各种处理流程。下面通过一个示例来展示Struts2配置文件的基本结构: ```xml <struts> <bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class=...
在Struts2中,配置文件起着至关重要的作用,它们定义了应用的行为、控制器映射、拦截器链以及结果类型等。 1. **Struts2配置文件概述** Struts2的配置主要分为两种:XML配置和注解配置。XML配置通常在`struts.xml`...
在注解驱动的配置中,我们可以使用`@Result`注解来指定Action执行后应跳转的视图。 接下来,我们将深入探讨Struts2的零配置实现方式: **1. 使用注解配置Action** 在Action类中,我们可以使用`@Action`注解来指定...