struts2转发和重定向(struts2中使用重定向redirect报错404.转发没有问题,使用redirectAction重定向到action没有问题,求解 )

本文目录
- struts2中使用重定向redirect报错404.转发没有问题,使用redirectAction重定向到action没有问题,求解
- struts2的第一个action转发或重定向到第二个action
- struts2中result-type的chain和redirectAction的区别
- struts2中redirect和redirectAction chain的区别是什么
- struts2中怎么把action中的值传递到jsp页面
- struts2中
这句是什么意思 - 简述Struts2中Redirect和Dispatcher的区别
- Struts2 执行了action后,一般是转发到jsp,可以使重定向到jsp吗
- 请问怎么在jsp上实现页面跳转但是浏览器的url不变,或者怎么配置struts2
struts2中使用重定向redirect报错404.转发没有问题,使用redirectAction重定向到action没有问题,求解
哎呀,这是个经典的错误,问题来了,你们老师没告诉你,tomcat项目的结构?
是这样的,tomcat中,为了保证某些页面的安全性(不然用户直接输入路径就能访问)所以有安全目录WEB-INF,这个目录下的所有文件页面都不能输入地址直接访问,否则一律报错,但是可以通过服务器的action或者servlet ,jsp之类的服务端程序(因为服务端程序可以判断逻辑,比如用户是否用权限)读取这里面的页面再将页面写出去,转发就是这个原理,并非访问了那个页面,而是服务器读取了哪个页面然后使用输出流响应回去!
总之,WEB-INF只有服务器写程序才能访问,比如自带的转发,或者你写个文件流也行的,但是客户端(浏览器)是不能直接找到这个目录的(tomcat不会响应和查找这个目录下的文件)!
struts2的第一个action转发或重定向到第二个action
《result name="success" type="redirectAction"》--》
《param name="actionName"》findTeacherInfo《/param》 --》
《param name="id"》${id}《/param》
《/result》
像这个的跳转 ID 需要在action 中用于get set 方法,
id 不是由第一个action 发送参数的,只不过起到了传递参数的作用 通过 set get
struts2中result-type的chain和redirectAction的区别
chain,它是一个琏式的,是从一个Action转发另外一个Aciton,写action的名字即可,并把前一个Action的请求参数和值传给下一个Action,前提是设置了getting方法
《result name="delete_success" type="chain"》listByNoteAction《/result》
redirectAction,是从新请求一个Action,所以之前action里的参素和值并没有带到下一个Action
struts2中redirect和redirectAction chain的区别是什么
首先 redirect:标准的重定向,用于在某一个action处理结束后,重定向到新的 jsp(视图),重定向和转发的区别,这里一个明显的表象就是会丢失值栈范围内的所有携带参数,相当于浏览器重新请求了一个新的视图,URL也会显示请求的页面视图地址(Address);
redirectAction:顾名思义,redirect 用于普通的转向到某一视图,redirectAction 即用来重定向到新的 action ,当然具备了重定向的特征,所以不再详细介绍,但是给您一个例子,如果重定向到页面:type="redirect",location="/index.jsp" 重定向到 action(加入此处重定向到 query.action) type="redirectAction",location="query",如此即是两种重定向方式的写法;
chain:类似于dispatcher 一样,dispatcher是action默认的转向方式,即转发请求到一个新的视图,然而chain即将转发请求到一个新的action中,转发时同样保留转发形式的特征,保持请求参数,以及URL栏中的地址即是第一次请求的路径,写法和redirect 、redirectAction相似;
struts2中怎么把action中的值传递到jsp页面
1.用request.setAttribute()方法,不过只适用于请求转发,不可用于重定向
2.用session.setAttribute()方法
3.用struts2标签,在Java类中定义这个值对象,然后赋值,并且给出setter和getter方法,在jsp页面中,使用
《s:property value=""/》来获取
struts2中 这句是什么意思
返回后进入《result type="redirectAction"》 指定的Action《/result》“指定的Action”中。
简述Struts2中Redirect和Dispatcher的区别
二者都是实现页面的跳转,主要有几个比较大的区别:
先说Redirect,也就是“重定向”,
浏览器地址栏会发生变化,变为跳转到的url地址;
重定向可以跳转到任意url地址,不止局限于当前的Web应用;
在Web应用中,请求的内容在重定向前后不共享;
其过程是:
用户请求-----》服务器-------》组件------》服务器-------》用户-------》新的请求
(修改用户请求)
再说Struts2里的Dispatcher,作用是“转发”,
只是服务器端把请求和响应由当前服务器应用转给另外的服务器应用,浏览器地址栏不发生变化;
转发只能在当前Web应用之下进行,不能跳到别的Web应用去。
Web应用中,请求的内容在转发前后是共享的,也就是说其实请求还是原来那个。
其过程是:
用户请求-----》服务器-------》组件1-------》组件2-------》服务器-------》用户
(请求不变)
其他还有一些细微差别,不过原理大抵像上面两个图能看懂就彻底明白了。
”转发“和”重定向“其实不仅是Struts2能用,在Web中也是个基础概念,即Servlet/JSP也能用,php, python, ruby,asp.net等涉及Web开发也是一样的。
Struts2 执行了action后,一般是转发到jsp,可以使重定向到jsp吗
可以啊!!!!
另外多说一点,要是你要传递参数的话,会有两种方式,
例如:
第一方式:
参数之间必须使用&。&是&在xml中转义字符
《result name="error" type="redirect"》
/login.jsp?userId=${orgStrucUser.userId}&error=1
《/result》
第二方式:
《result name="error" type="redirect"》
《param name="location"》/login.jsp《/param》
《param name="userId"》${orgStrucUser.userId}《/param》
《param name="error"》1《/param》
《/result》
请问怎么在jsp上实现页面跳转但是浏览器的url不变,或者怎么配置struts2
你得了解“请求转发”和“重定向”的区别,这两者都能实现页面跳转:
“请求转发”时,变量至少在request范围共享,浏览器url不变,但只能在当前webapp下进行;
“重定向”时,变量不共享,浏览器url变为跳转到的页面,可以是任意(包括外网)的页面。
struts2里是通过设置struts.xml里面《result》标签的type属性设置的:
《result type="request" name="xxxx"》(默认)或《result name="xxxx"》就对应“请求转发”
《result type="redirect name="xxxxx"》就对应“重定向”。
综上,你说的“jsp上实现页面跳转但是浏览器的url不变”就得用“请求转发”,而你后面说的“怎么配置struts2才能让转到外网的页面”得用“重定向”,二者是冲突的,不可能实现。

更多文章:
avantage怎么设置为中文(Avantage安装丢失GIT)
2026年10月15日 03:00
activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)
2026年10月14日 20:30
excel连接sql数据库教程(excel怎么连接sql数据库)
2026年10月14日 19:40






