Spring-MVC拦截器

    拦截器     

  1   HandlerInterceptor实现拦截器

  2、HandlerInterceptorAdpater继承该类实现拦截器

    

一 具体操作:

    1  spring-mvc配置文件:

        <mvc:interceptors>
    
     <bean class="com.zhidisort.interceper.SimpleInterceper"/>
  </mvc:interceptors>

  2  实现HandlerInterceptor接口:

    public class SimpleInterceper implements HandlerInterceptor {

@Override
public void afterCompletion(HttpServletRequest req, HttpServletResponse resp, Object handler, Exception ex)
throws Exception {
System.out.println("--------拦截器afterCompletion请求方法执行视图渲染后执行----------");

}

@Override
public void postHandle(HttpServletRequest req, HttpServletResponse resp, Object handler, ModelAndView  modelAndView)
throws Exception {
System.out.println("--------拦截器在perhandle请求方法执行之后执行----------");

}
@Override
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {
     
System.out.println("--------拦截器在perhandle请求方法执行之前执行----------");
return true;
}
}

  3 控制器contorller:

    

@Controller
@RequestMapping("/ex")
public class StudentException {
   
@RequestMapping("/simple")
public String addStudent(String name){
if(name==null){
throw new NullPointerException("用户名不能为空");
}
System.out.println(name);
return "success";

}

实例操作登录拦截器·

  1    Spring配置文件:

    

  <mvc:interceptors>
    
  <bean class="com.zhidisort.interceper.SimpleInterceper"/>
    
    <mvc:interceptor>
    
        <mvc:mapping path="/**"/>
        
        <mvc:exclude-mapping path="/system/login"/>
        
         <bean class="com.zhidisort.interceper.UserInterceper"/>
    </mvc:interceptor>
  </mvc:interceptors>
  

2  继承HandlerInterceptorAdpate类


  public class UserInterceper extends HandlerInterceptorAdapter{


@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {

HttpSession session =request.getSession();

String  username=(String) session.getAttribute("user");
    if(username!=null && !username.isEmpty()){
     
    return true;
    }
    response.sendRedirect(request.getContextPath()+"/login.jsp");
    return false;
}


3 控制器controller;
   

@Controller
@RequestMapping("/system")
public class UserContorller {


@RequestMapping("/login")
public  String userLogin(String username, String password, HttpSession session){

if(username!=null && password!=null){

session.setAttribute("user",username);
 
return "success";
}


return "redirect:../login.jsp";

}


}

   4 jsp登录页面


    <%@ page language="java" pageEncoding="UTF-8"%>
<%
String basePath = request.getContextPath();
String path = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+basePath+"/";
%>
<!DOCTYPE html>
<html>
    <head>
        <base href="<%=path%>">
        <meta charset="UTF-8">
        <title>restful风格的api访问</title>
        <script type="text/javascript" src="static/jquery/jquery.min.js"></script>
    </head>
    <body>
    <button id="post" type="button">添加</button>
    <button id="put" type="button">修改</button>
    <button id="delete" type="button">删除</button>
    <script type="text/javascript">
$("#post").on("click",function(){
$.ajax({
url : "api/student",
type : "POST",
data : {"name":"张三","sex":"男"},
success : function(data){
if(data.success){
alert(data.success);
}
},
dataType : "json"
});
});

$("#put").on("click",function(){
$.ajax({
url : "api/student/10",
type : "PUT",
data : {"name":"张三","sex":"男",},
success : function(data){
if(data.success){
alert(data.success);
}
},
dataType : "json"
});
});

$("#delete").on("click",function(){
$.ajax({
url : "api/student/10",
type : "DELETE",
success : function(data){
if(data.success){
alert(data.success);
}
},
dataType : "json"
});
});
    </script>
    </body>
</html>
































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值