登录页面展示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="loginOpt.action" method="post">
用户登录
名字<input name="uname"><br>
密码<input name="pwd"><br>
<input type="submit">
</form>
</body>
</html>
跳转登录页面
@RequestMapping("tologin")
public ModelAndView tologin(){
return new ModelAndView("user/login");
}
//点击登录按钮跳转访问方法
@RequestMapping("loginOpt")
public String loginOpt(HttpSession session,String uname,String pwd){
//用户密码正确进入列表页面 错误重新登录
if (uname!=null&&pwd!=null) {
User sUser=userService.getByName(uname,pwd);
if (sUser!=null) {
session.setAttribute("id", sUser.getId());
return "user/list";
}
}
return "user/login";
}
运用拦截器
//普通类继承HandlerInterceptorAdapter就可以
public class SystemInterceptor extends HandlerInterceptorAdapter {
/**
* 在业务处理器处理请求之前被调用 如果返回false 拦截 如果返回true 继续
*/
@Override
public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {
//对编码进行处理
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String path = request.getServletPath();//获取当前访问路径
String root = request.getContextPath();//获取项目的上下文
String noFilter = ".*/((tologin)|(register)|(loginOpt)|(getCode)|(common)|(file)|(portal)|(getAllList)|(getByPid)).*";//配置不需要session拦截的方法
if(path.matches(noFilter)){//正则匹配,不需要拦截的返回TRUE,放行
return true;
} else{
Object obj = request.getSession().getAttribute("id");//获取用户对象session
if (null == obj) {//如果session为null,表示没有登录
//如果没有登录,跳转到登录页面
PrintWriter out = response.getWriter();
StringBuilder builder = new StringBuilder();
builder.append("<script type=\"text/javascript\" charset=\"UTF-8\">");
builder.append("window.top.location.href=\"");
builder.append(root);
builder.append("/user/tologin.action\";</script>");
out.print(builder.toString());
out.close();
return false;
}
}
return true;
}
}
配置拦截
<!-- 拦截器-->
<mvc:interceptors>
<bean class="拦截器路径" />
</mvc:interceptors>