一、action中的关键代码
HttpSession session=request.getSession();
String sqlPerm="select * from user_perm where user_id ='"+nuser.get("login_name")+"'";
Map perm=DbMaster.getDataRow("YKT", sqlPerm);
if(perm!=null){
session.setAttribute("perm_id", perm.get("perm_id"));
session.setAttribute("login_name", nuser.get("login_name"));
}
二、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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet Filter implementation class UserFilter
*/
@WebFilter("/UserFilter")
public class UserFilter implements Filter {
private FilterConfig config;
public UserFilter() {
}
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession();
String noPaths = config.getInitParameter("userLogin");//取到web.xml里面的初始参数,表示不需要过滤的请求
if (noPaths != null) {
String[] strArray = noPaths.split(";");
for (int i = 0; i < strArray.length; i++) {
if (strArray[i] == null || "".equals(strArray[i]))
continue;
if (req.getRequestURI().indexOf(strArray[i]) != -1) {
chain.doFilter(request, response);
return;
}
}
}
// 从session里取的用户名信息
String login_name = (String) session.getAttribute("login_name");
// 判断如果没有取到用户信息,就跳转到登陆页面
if (login_name == null || "".equals(login_name)) {
res.sendRedirect("http://" + req.getHeader("Host")
+ "/ykt/ykt/card:index.hdz");
} else {
// 已经登陆,继续此次请求
chain.doFilter(request, response);
}
}
public void init(FilterConfig fConfig) throws ServletException {
this.config = fConfig;
}
}
三、WEB.XML:
right
XXX.UserFilter
userLogin
login.jsp;index.jsp;index.action;userLogin.action;
right
*.hdz
hight_development_zipper_filter
*.action