开发中登陆验证是必不可少的,这里介绍过滤器实现的登陆验证。
第一步:创建一个过滤器
package com.test.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginFilter implements Filter{
private String dispatchUrl = "";
private String excludeUrl = "";
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response =(HttpServletResponse)arg1;
String servletPath = request.getServletPath();
HttpSession session = request.getSession();
Object userObj = session.getAttribute("loginUser");
/*登陆界面和登陆方法不进行过滤*/
if(servletPath.equals(dispatchUrl) || servletPath.equals(excludeUrl)){
arg2.doFilter(arg0, arg1);
}else{
if (userObj != null) {
arg2.doFilter(arg0, arg1);
}else{
response.sendRedirect(request.getContextPath()+dispatchUrl);
}
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
dispatchUrl = arg0.getInitParameter("dispatchUrl");
excludeUrl = arg0.getInitParameter("excludeUrl");
}
}
第二步:配置web.xml文件(),在springmvc启动配置后加入以下代码
loginFilter
com.test.filter.LoginFilter
excludeUrl
/login
dispatchUrl
/login.jsp
loginFilter
*.jsp
第三步:创建登陆页面login.jsp,路径在WebContent目录下
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
用户名:
密 码: