function validateLogin(){
var sUserName = $("#username").val();
var sPassword = $("#password").val();
if (sUserName =="" ){
alert("请输入用户名!");
return false ;
}
if (sPassword ==""){
alert("请输入密码!");
return false ;
}
$.ajax({
type: "post",
url: "http://localhost:8080/prac/user/validate.do",
data: {
username: sUserName,
password: sPassword
},
dataType: 'json',
success: function (data) {
//成功的处理
},
error: function (data) {
if(data.responseText == 'sessionTimeout'){
//session失效处理。。。
}
}
})
}
ajax代码在上面。。。
下面是拦截器的配置。
path="/**" 表示拦截所有
<!--拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<!--拦截的url-->
<mvc:mapping path="/user/*.do"/>
<!--不拦截的url-->
<mvc:exclude-mapping path="/user/login.do"></mvc:exclude-mapping>
<bean class="com.prac.interceptor.LoginUserInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
@Override
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object obj){
//如果是ajax请求响应头会有x-requested-with
if (req.getHeader("x-requested-with") != null && req.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){
PrintWriter out = resp.getWriter();
out.print("sessionTimeout");//session失效
out.flush();
return false;
}else{
//非ajax请求时,session失效的处理
}
return true;
}
最后是java代码