在java中,注册功能的实现首先需要判断用户名,密码是否合法,用户名不能重复,包含敏感词等。同时不要将明文的密码直接保存到数据库,我们可以先用md5算法对用户密码和用户的salt整体进行加密,然后返回相应注册的信息。当注册成功时则服务器端则向客户端发送一个token。
客户端已经被下发了一个token,当客户端发送带token的http请求时,首先根据token获取用户的id,再根据用户id查询用户的具体信息,接着利用用户和页面访问权限进行管理,返回对应的渲染页面。
后端主要是通过拦截器来实现如上的功能
- public abstract class HandlerInterceptorAdapter implements HandlerInterceptor{
- // 在业务处理器处理请求之前被调用
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
- Object handler) throws Exception{
- return true;
- }
- // 在业务处理器处理请求完成之后,生成视图之前执行
- public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
- ModelAndView modelAndView)
- throws Exception{
- }
- // 在DispatcherServlet完全处理完请求之后被调用,可用于清理资源
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
- Object handler, Exception ex)
- throws Exception{
- }
- }
preHandler : 是controller的前置方法,当方法返回false整个请求就结束了。多个Interceptor,然后SpringMVC会根据声明的前后顺序一个接一个的执行,而且所有的Interceptor中的preHandle方法都会在。
WebRequestInterceptor和HandlerInterceptor的preHandler的方法的区别就在与webRepuestInterceptor的preHandler的方法是没有拦截的功能,是没有返回值的。
postHandle : 就是在当前请求进行处理之后,也就是Controller方法调用之后执行,但是它会在DispatcherServlet进行视图返回渲染之前被调用。
afterHandler:该方法将在整个请求结束之后,也就是在DispatcherServlet 渲染了对应的视图之后执行,可用于清理资源。
1. springmvc拦截器 http://www.sohu.com/a/128772280_523754
2. Java三大器之拦截器(Interceptor)的实现原理及代码示例 http://blog.csdn.net/reggergdsg/article/details/52962774