java吧 关注:1,235,446贴子:12,705,303
  • 17回复贴,共1

【哑炮】问:springmvc redirect访问web inf下的jsp文件

只看楼主收藏回复

目录结构如下图

问题:
我现在做一个登陆功能,场景是这样的:
login.jsp界面,表单action="login.htmls",跳转到index.jsp。然后controller中跳转到index.jsp出了点问题
1.在controller中return "redirect:/WEB-INF/views/index.jsp",浏览器路径是对了(xxxx/WEB-INF/views/index.jsp)但是报404,无法直接访问web inf下的jsp文件
2.试了return "forward:/index" 的确是访问到了,但是浏览器URL还是停留在表单提交时的URL:xxxx/login.htmls。如果在这时候刷新一下页面又会进行一次登陆操作,这TM就很尴尬了。
所以想请问一下有什么好办法吗?


IP属地:上海1楼2016-05-15 13:35回复
    忘说了 配置文件里面配好前后缀了


    IP属地:上海2楼2016-05-15 13:39
    回复
      你要redirect到哪里就写那个地址


      来自iPhone客户端3楼2016-05-15 13:41
      收起回复
        基础不牢
        首先,web-inf下jsp是无法直接访问到的,只能forward
        redrect你要知道转发(forward)和重定向(redirect)的是真正的差别在哪?
        forward的实现方式你可以理解为服务端调用了该jsp生成的servlet的方法,然后给客户端响应了生成的html内容,其实不存在跳转,都是服务端自己在处理罢了
        但重定向看起来效果差不多,但实际上差别很大,重定向是服务端先给客户端相应了一个状态码(301,302,一般是302,区别自行百度)和一个地址,然后浏览器重新请求这个地址,所以重定向一次其实浏览器做了两次请求,大部分浏览器的F12开发者工具都能看到这个过程的
        所以说重定向是新的请求,就无法访问到web-info下的jsp
        另外再谈谈你这个功能的实现方式
        一,jsp挪到web-inf目录外
        二,重定向到一个springmvc的controller,而不是jsp


        IP属地:湖南5楼2016-05-15 14:05
        收起回复