在struts2中如何实现转发和重定向?

Struts 2作为基于MVC设计模式的J2EE Web应用框架,已经有近10年的历史了,它的交互行为与servlet有些像是, Struts
2是在 struts 1和WebWork的技术基础上进行了合并后生成的新的Struts框架。Struts
2的结构体系与Struts 1的结构体系差别巨大。其转发和重定向也有很大的区别,下面小编为大家介绍下如何使用Stuts2实现转发和重定向。

Struts 2中转发和重定向的区别

  • 01

    请求转发:Struts 2, 默认<result-type/>缺省为dispatcher 请求转发,请求转发到一个页面 (默认),不可以用这种方式转发到一个action

  • 02

    重定向:不共享request的东西,重定向后的页面中无法接收request里的东西,响应重定向到一个页面或另个一action。 也就是说只要是重定向,那么之前凡是保存在request里面的东西就全都消失了,因为重定向实际是发送第二个请求,故请求中的东西也就不会出现在第二个请求里面了,也就是说重定向是不共享request的东西,重定向后的页面中无法接收request里的东西。那么我们怎样传递参数那? 可以参考下面代码:

Struts2 转发和重定向的3种方法

  • 01

    dispatcher:请求转发 这种方式是struts2中默认的转发类型,即内部请求转发,类似于forward的方式,请求转发到一个页面 (默认),不可以用这种方式转发到一个action 使用方式: 在Struts配置文件.xml中定义result节点,并将其type属性设置为dispatcher, 也可不设置,因为默认即是dispatcher 代码示例: 如下图所示

  • 02

    redirect: 重定向到某个路径、视图。 在一个Action执行完毕后,希望执行另一个Action,有2种方式可供选择。一种是使用forward,另外一种是使用redirect。 redirect:action处理完后重定向到一个视图资源(如:jsp页面),请求参数全部丢失,action处理结果也全部丢失。 代码示例如下图:

  • 03

    redirectAction: 重定向到某个Action redirect-action:action处理完后重定向到一个action,请求参数全部丢失,action处理结果也全部丢失。 代码示例如下图:

Struts 2 相关的2个高危安全漏洞及解决措施

  • 01

    在2013年6月底发布的Struts 2.3.15版本被曝出2个高危安全漏洞: - 使用缩写的导航参数前缀时的远程代码执行漏洞, 用户可以构造http://host/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}链接,command goes here可以换成是破坏脚本的路径和参数,比如fdisk -f等,造成破环系统无法运行的目的。 - 使用缩写的重定向参数前缀时的开放式重定向漏洞, 用户可以构造如知名网站X宝的重定向连接,形如<a href="http://www.X宝.com/item00001.html?redirect:http://黑客/getyourPassword">打折新款</a>,引导用户点击后进入钓鱼网站,在界面上让其进行登陆用以获取用户的密码。 这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。

  • 02

    带来影响 据乌云平台漏洞报告,淘宝、京东、腾讯等大型互联网厂商均受此影响,而且漏洞利用代码已经被强化,可直接通过浏览器的提交对服务器进行任意操作并获取敏感内容。Struts漏洞影响巨大,受影响站点以电商、银行、门户、政府居多,而且一些自动化、傻瓜化的利用工具开始出现,填入地址可直接执行服务器命令,读取数据甚至直接关机等操作。 可以通过如下图所示工具进行自检。

  • 03

    安全漏洞相关解决措施: Apache Struts团队已发布了最新的Struts 2.3.15.1,修复了上述漏洞,建议采用Struts 2.0至Struts 2.3的网站开发者尽快升级至最新版。

  • 04

    下图是 Struts 框架漏洞的年鉴表

(0)

相关推荐

  • “请求转发”和“重定向”之间的区别

    "请求转发"和"重定向"之间的区别 操作方法 01 让浏览器获得另外一个URL所指向的资源可以使用请求转发(RequestDispatcher.forward) ...

  • java_Servlet请求转发和重定向

    java_Servlet请求转发和重定向的问题. 操作方法 01 请求转发 请求转发是指将请求再转发到另一资源(一般为JSP或Servlet).此过程依然在同一个请求范围内,转发后浏览器地址栏内容不变 ...

  • 转发与重定向的区别

    页面的转发与重定向有什么区别呢?在这采用前辈写的文档进行分享 操作方法 01 1.重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求, ...

  • 远程桌面中的RemoteFX USB设备重定向功能支持的设备类型有哪些?

    故障现象: 远程桌面中的RemoteFX USB设备重定向功能支持的设备类型有哪些? 解决方案: 远程桌面中的RemoteFX USB设备重定向功能支持的设备类型包括: 1. 复合打印机(All-in ...

  • 如何禁止陌陌中他人能够转发我

    手机版陌陌软件被很多人使用,用来社交等, 有的用户在使用该软件时,为了保护自己的隐私安全,因此想要禁止他人能够转发我,但是却不知道如何设置,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,点击并 ...

  • 如何将QQ中的聊天记录转发给别人

    今天给大家介绍一下如何将QQ中的聊天记录转发给别人的具体操作步骤.1. 解锁手机后,找到桌面上的"qq"APP,打开2. 进入主页面后,选择想要转发的聊天记录的好友,点击,选择想要 ...

  • 怎么在路由器中添加端口转发

    今天给大家介绍一下怎么在路由器中添加端口转发的具体操作步骤.1.打开电脑,找到桌面上的QQ浏览器图标,双击打开.2. 在打开的浏览器上方,地址栏中,输入路由器的管理ip地址.3. 进入登录页面,输入我 ...

  • 怎么将钉钉中的文件转发到微信

    我们在使用钉钉进行办公的时候,想要将钉钉中的文件转发到微信中,该怎么操作呢?今天就跟大家介绍一下怎么将钉钉中的文件转发到微信的具体操作步骤.下载钉钉文件1. 首先打开手机上的钉钉APP,进入主页面后, ...

  • 如何将微信视频号中的视频转发给好友

    随着短视频的快速发展,微信最近推出了视频号功能,有些用户想知道如何将视频号中的视频转发给好友,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步打开手机中的[微信]App,进入软件后 ...