struts2 转向出错,请帮帮忙!

时间:2023-02-10 19:54:51
配置文件 
    <filter> 
  <filter-name>struts2 </filter-name> 
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher </filter-class> 
    </filter> 
    
<filter-mapping> 
  <filter-name>struts2 </filter-name> 
  <url-pattern>/* </url-pattern> 
</filter-mapping> 

<package name="loginmanage"  extends="struts-default"> 
      <action name="login" class="mah.blog.core.action.UserAction"> 
        <result name="success">WEB-INF/jsp/admin/main.jsp </result> 
      </action> 
    </package> 

我进入login.jsp 页面   
在login.jsp 页面中 提交 login.action 
为什么转向的不是WEB-INF/jsp/admin/main.jsp 这个文件。。而是目录下的login.jsp文件

16 个解决方案

#1


<result name="success"> WEB-INF/jsp/admin/main.jsp </result> 
应该是
<result name="success">/WEB-INF/jsp/admin/main.jsp</result>
少了个“/”

#2


直接写/jsp/admin/main.jsp 

#3


顶二楼!!!

#4


顶2楼

#5


二楼是对的。

#6


再插一句

快结帖吧

人家二楼是高手,是正确的

#7


二楼正解

#8


楼上的所有人,你们做web开发的时候,都把jsp页面放在WebRoot目录及子目录下(除WEB-INF)吗,你们不觉得这样做很不安全吗,客户端如果直接输入url地址就能定位的任何一个jsp页面中
正确安全的写法是把所有的页面都放到WEB-INF目录及子目录下,这样做的目的是因为WEB-INF目录及子目录下的任何文件通过url是访问不了的!

#9


/login

#10


不需要WEB-INF直接写后面的就行了

#11


/WEB-INF/jsp/admin/main.jsp 

#12


引用 8 楼 woming66 的回复:
楼上的所有人,你们做web开发的时候,都把jsp页面放在WebRoot目录及子目录下(除WEB-INF)吗,你们不觉得这样做很不安全吗,客户端如果直接输入url地址就能定位的任何一个jsp页面中
正确安全的写法是把所有的页面都放到WEB-INF目录及子目录下,这样做的目的是因为WEB-INF目录及子目录下的任何文件通过url是访问不了的!

放在WEB-INF下就安全了么?记住path不一样么?而且,只需要将所有的超链接都改为*.do不就好了么。。。不一样可以掩饰么。

永远记住一点,只需要对class文件加密,对于什么jsp页面,放在拿都一样。除非你还在jsp页面中写logic,那我没话说,因为我不喜欢耦合的东西。

#13


引用 12 楼 downice 的回复:
引用 8 楼 woming66 的回复:
楼上的所有人,你们做web开发的时候,都把jsp页面放在WebRoot目录及子目录下(除WEB-INF)吗,你们不觉得这样做很不安全吗,客户端如果直接输入url地址就能定位的任何一个jsp页面中
正确安全的写法是把所有的页面都放到WEB-INF目录及子目录下,这样做的目的是因为WEB-INF目录及子目录下的任何文件通过url是访问不了的!

放在WEB-INF下就安全了么?记住path不一样么?而且,只需要将所有的超链接都改为*.do不就好了么。。。不一样可以掩饰么。

永远记住一点,只需要对class文件加密,对于什么jsp页面,放在拿都一样。除非你还在jsp页面中写logic,那我没话说,因为我不喜欢耦合的东西。


呵呵 呈现层页面不放在WEB-INF目录下 我即可以通知.action或.do(struts1)来访问呈现层(不一定是jsp,这里假设就是JSP),也可以通过浏览器去直接方面呈现层页面
正常的请求模式都是通过Action进行控制分发到各个呈现层页面,但是如果直接通过url访问页面,会破坏这个流程,那么你的后台会报一大堆Exception,恐怕最多的就是NullPointerException

也可能是个人习惯问题,但是我还是喜欢把页面放在WEB-INF目录或子目录下!

#14


顶8楼

#15


顶..1.2......14楼......uP

#16


顶八楼的

#1


<result name="success"> WEB-INF/jsp/admin/main.jsp </result> 
应该是
<result name="success">/WEB-INF/jsp/admin/main.jsp</result>
少了个“/”

#2


直接写/jsp/admin/main.jsp 

#3


顶二楼!!!

#4


顶2楼

#5


二楼是对的。

#6


再插一句

快结帖吧

人家二楼是高手,是正确的

#7


二楼正解

#8


楼上的所有人,你们做web开发的时候,都把jsp页面放在WebRoot目录及子目录下(除WEB-INF)吗,你们不觉得这样做很不安全吗,客户端如果直接输入url地址就能定位的任何一个jsp页面中
正确安全的写法是把所有的页面都放到WEB-INF目录及子目录下,这样做的目的是因为WEB-INF目录及子目录下的任何文件通过url是访问不了的!

#9


/login

#10


不需要WEB-INF直接写后面的就行了

#11


/WEB-INF/jsp/admin/main.jsp 

#12


引用 8 楼 woming66 的回复:
楼上的所有人,你们做web开发的时候,都把jsp页面放在WebRoot目录及子目录下(除WEB-INF)吗,你们不觉得这样做很不安全吗,客户端如果直接输入url地址就能定位的任何一个jsp页面中
正确安全的写法是把所有的页面都放到WEB-INF目录及子目录下,这样做的目的是因为WEB-INF目录及子目录下的任何文件通过url是访问不了的!

放在WEB-INF下就安全了么?记住path不一样么?而且,只需要将所有的超链接都改为*.do不就好了么。。。不一样可以掩饰么。

永远记住一点,只需要对class文件加密,对于什么jsp页面,放在拿都一样。除非你还在jsp页面中写logic,那我没话说,因为我不喜欢耦合的东西。

#13


引用 12 楼 downice 的回复:
引用 8 楼 woming66 的回复:
楼上的所有人,你们做web开发的时候,都把jsp页面放在WebRoot目录及子目录下(除WEB-INF)吗,你们不觉得这样做很不安全吗,客户端如果直接输入url地址就能定位的任何一个jsp页面中
正确安全的写法是把所有的页面都放到WEB-INF目录及子目录下,这样做的目的是因为WEB-INF目录及子目录下的任何文件通过url是访问不了的!

放在WEB-INF下就安全了么?记住path不一样么?而且,只需要将所有的超链接都改为*.do不就好了么。。。不一样可以掩饰么。

永远记住一点,只需要对class文件加密,对于什么jsp页面,放在拿都一样。除非你还在jsp页面中写logic,那我没话说,因为我不喜欢耦合的东西。


呵呵 呈现层页面不放在WEB-INF目录下 我即可以通知.action或.do(struts1)来访问呈现层(不一定是jsp,这里假设就是JSP),也可以通过浏览器去直接方面呈现层页面
正常的请求模式都是通过Action进行控制分发到各个呈现层页面,但是如果直接通过url访问页面,会破坏这个流程,那么你的后台会报一大堆Exception,恐怕最多的就是NullPointerException

也可能是个人习惯问题,但是我还是喜欢把页面放在WEB-INF目录或子目录下!

#14


顶8楼

#15


顶..1.2......14楼......uP

#16


顶八楼的