前面我们做了登录界面,并且也实现了登录功能。

但我们要是再访问一下页面的话,那么我们还是会被要求登录。

在实际的系统里是会想办法来记住你的登录状态的,其中一种就是 Session。

同时,我们今天要对前两天的代码做进一步的优化。

1.我们先来整理前几天的代码吧。

  • web  下的这三个文件移动到 WEB-INF/views/login,放到这里用户就不能直接访问了。
    • 修改 applicationContext.xml ,把资源的目录解析到我们的新目录里。

    •  
  • 把控制器包 Controller  的名字改成 Controllers,和其他包名字统一,同时记住修改下 dispatcher-serverlet.xml
  • 规整一下路由。
    • 修改 web.xml ,改 dispatcher 的 url-pattern 那,让 dispatcher 接管所有请求。

      •  
    • 修改 dispatcher-serverlet.xml 文件

      •  
    • 修改 LoginController,主要修改 RequestMapping  的访问路径和里面 return 的资源引用,同时添加了 一个 /login GET 方法,来显示

      •  
    • 再修改一下 views/login/index.jsp,将其中 form 的 action  修改一下,和上面修改过后的路由对应。

      •  
    • 然后就可以试试了。

2、然后就来写个 Interceptor 来拦截请求,主要是为了在 Controller  接到请求前进行判断处理。

创建一个包,叫 Interceptors,里面写一个类叫 LoginInterceptor

 

然后我们得改改 LoginController,让它在 Session  里记录用户信息。

 

然后就是把这个拦截器注册下,在 dispatcher-serverlet.xml 里。主要看 <mvc:interceptors> 那段就可以了。

 

然后我们还得来写个首页,这样登录以后就可以看到自己登录了,再顺带写个登出吧。

首先是 Controllers  里的 IndexController。

 

然后就是 WEB_INF/views/index 里的两个文件

index.jsp

 

logout.jsp

然后把之前的文件我们也顺带改改,这样操作也更顺畅些。

fail.jsp

 

success.jsp

 

3、然后来运行试试吧

访问 http://127.0.0.1:8078/ 就会自动跳转到 http://127.0.0.1:8078/login 了,因为没登录。