拦截器不拦截重定向

拦截器不拦截重定向

相关代码:

@Controller
@RequestMapping("/login")
@SessionAttributes(value = {"success"})
public class LoginController {
@PostMapping("/check")
public String check(User user, ModelMap modelMap) {
System.out.println("///////sdasadss");
String url = "redirect:/success.jsp";
if (user.getUsername().equals("admin") && user.getPassword().equals("123456")) {
modelMap.addAttribute("success", user);
}
return url;

// return "redirect:/index.html";
}

老师你好,我是设置了不拦截/login/check这个url,但是我重定向去的success为什么也不拦截

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕阿园 2021-05-21 15:03:18

同学你好,同学的登录成功的jsp页面是否不在WEB-INF下,这里同学可以将jsp页面放在WEB-INF目录下;这样重定向的时候就不会直接访问到jsp 页面,需要重定向到控制器controller的方法来跳转到jsp页面,这样就实现了登陆的拦截

另外spring是鼓励把jsp放到WEB-INF文件夹中,然后通过控制器进行访问,jsp如果不放在WEB-INF文件下,spring mvc是无法拦截的

祝学习愉快~


  • 提问者 qq_精慕门6417434 #1

    如果这样的话那就只能通过请求转发的方式来访问了,重定向外界无法访问WEB-INF

    2021-05-21 15:15:53
  • 提问者 qq_精慕门6417434 #2

    那就无法用重定向来访问了,因为外界无法访问到web-inf


    2021-05-21 15:16:27
  • 提问者 qq_精慕门6417434 #3

    不对,老师,我认为那个用Model的视图跳转的url是不会被拦截的,即使你放在了WEB-INF下面,

    2021-05-21 15:35:54
qq_精慕门6417434 提问者 2021-05-21 11:39:29

我并没有排除jsp的拦截,但是她就是没拦截

好帮手慕阿园 2021-05-21 11:30:36

同学你好,根据同学的代码,始终会重定向到success页面的;而这里重定向的是jsp页面,同学可以检查下在配置文件中是否对jsp页面做了拦截的配置;但是根据作业要求,如果用户名和密码正确,是需要重定向到主页面的

祝学习愉快~

  • 提问者 qq_精慕门6417434 #1

    @Controller
    @RequestMapping("/login")
    @SessionAttributes(value = {"success"})
    public class LoginController {
    @PostMapping("/check")
    public String check(User user, ModelMap modelMap) {
    System.out.println("哈哈哈哈");
           String url = "redirect:/success.jsp";
           if (user.getUsername().equals("admin") && user.getPassword().equals("123456")) {
    modelMap.addAttribute("success", user);
           }
    return url;

           // return "redirect:/index.html";
       }
    @RequestMapping("/logout")
    public ModelAndView logout() {
    ModelAndView modelAndView = new ModelAndView("redirect:/index.html");

           return modelAndView;
       }



    }
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
          xmlns:mvc="http://www.springframework.org/schema/mvc"
          xmlns:context="http://www.springframework.org/schema/context"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:mv="http://www.springframework.org/schema/mvc"
          xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context.xsd
               http://www.springframework.org/schema/mvc
               http://www.springframework.org/schema/mvc/spring-mvc.xsd">

       <context:component-scan base-package="com.imooc"></context:component-scan>
       <!--启用Spring MVC的注解开发模式-->
       <mvc:annotation-driven >
           <mvc:message-converters>
               <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                   <property name="supportedMediaTypes">
                       <list>
                           <!-- 响应体中文乱码-->
                           <!-- response.setContentType("text/html;charset=utf-8") -->
                           <value>text/plain;charset=utf-8</value>
                           <value>text/html;charset=utf-8</value>
                       </list>
                   </property>
               </bean>
           </mvc:message-converters>
       </mvc:annotation-driven>
       <!-- 将图片/JS/CSS等静态资源排除在外,可提高执行效率 -->
       <mvc:default-servlet-handler/>

       <mvc:interceptors>
           <mvc:interceptor>
               <mvc:mapping path="/**"/>
               <mvc:exclude-mapping path="/index.html"/>
               <mvc:exclude-mapping path="/login/check"/>
               <bean class="com.imooc.interceptor.LoginInterceptor"/>
           </mvc:interceptor>
       </mvc:interceptors>
    </beans>

    我通过拦截器查看的url中没有success.jsp的,就是拦截不了

    2021-05-21 12:58:26
  • 提问者 qq_精慕门6417434 #2

    在我整个登录退出的过程中它只拦截到了login/logout的url

    2021-05-21 13:04:42
  • 提问者 qq_精慕门6417434 #3

    好像对于这种,他只会拦截比如像login/check,但是这个url的执行方法里面如果是要跳转到别的页面他是不会进行拦截的

    2021-05-21 13:19:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师