先对文章问题进行说明:我从网上弄了一个web项目,但是登录页面没有注册的功能!索性自己编写注册的功能!

  代码并没有错误,但是点击的时候并没有跳到注册页面,而是一直在登录界面上跳转。郁闷了很久才发现是被拦截器拦截住了!(还是对别人的项目不了解所至)  


  下面来对问题做深入的讲解!

  一开始我的登陆了页面只有登录的按钮,并没有注册按钮

web项目为什么点击注册按钮跳转不到注册页面?-冯金伟博客园

于是我在登录页面上填写了注册的按钮(注册按钮不是链接!)

Login.jsp

 1 <center>
 2     <h1>用户登录</h1>
 3         <form action="${pageContext.request.contextPath }/login.action">
 4             <table>
 5                 <tr><td>用户账号:<input type="text" name="usercode" /></td></tr>
 6                 <tr><td>用户密码 :<input type="password" name="password" /></td></tr>
 7                 <tr>
 8                     <td><input type="submit" value="登陆"/>
 9                     <a href="${pageContext.request.contextPath%20}/registerUser.action">注册</a></td>
10                 </tr>
11             </table>
12         </form>
13     </center>

 通过点击注册按钮,触发controller的接口,来完成跳转!

Controller类的接口

1     
2     @RequestMapping("/registerUser")
3     public String register(){
4         return "register";
5     }
6     

 然后通过该方法去访问register.jsp页面来完成页面的跳转。jsp页面也是存在的

web项目为什么点击注册按钮跳转不到注册页面?-冯金伟博客园

流程就是上面的流程!可是不知道为什么我的注册按钮就是不能用!代码也不报错!找了好久也没找到问题所在。无意中想到了拦截器!

对!肯定是拦截器把所有的页面都拦截了,只要是没有登录,所有的页面都给你拦截掉!所以导致我连注册页面都点不开!

拦截器的代码如下:

1     <!--拦截器 -->
2     <mvc:interceptors>
3          <mvc:interceptor>
4              <mvc:mapping path="/**" />
6             <bean class="cn.itcast.ssm.controller.interceptor.LoginInterceptor"></bean>
7         </mvc:interceptor>
8     </mvc:interceptors> 

从代码中可以看出拦截器确实把所有的页面都拦截了!

问题找到了就方便多了!

下面来解决这个问题!

去网上百度了如何让拦截器不拦截特定的URL,网上给出了一种办法:

1 <!--拦截器 -->
2     <mvc:interceptors>
3          <mvc:interceptor>
4             <mvc:mapping path="/" />
5             <mvc:mapping path="/login/**" />
6             <bean class="cn.itcast.ssm.controller.interceptor.LoginInterceptor"></bean>
7         </mvc:interceptor>
8     </mvc:interceptors> 

 这样的话,拦截器就只会拦截登录相关的页面,注册的页面就可以正常访问了!