我的權限控制(JBX + struts + hibernate + ORACLE)
2024-08-29 13:35:36
供稿:網友
 
             通過過濾器判定用戶權限.
第一步:建立UserPermissionFilter類.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;                                                                                            import test.system.SysUserApi;
import test.vo.SysUserVO;
import test.system.dao.SysUserDao;
import test.Const;public class UserPermissionFilter extends HttpServlet implements Filter {  PRotected FilterConfig filterConfig = null;  public void destroy() {
    this.filterConfig = null;
  }
  public void doFilter(
      ServletRequest request,
      ServletResponse response,
      FilterChain filterChain) throws IOException, ServletException {
    try {
      HttpServletRequest req = (HttpServletRequest) request;
      SysUserVO usersession = new SysUserVO();
      userSession = (SysUserVO)req.getSession().getAttribute(Const.SESSION_USER);
      if (userSession == null) {
        HttpServletResponse rep = (HttpServletResponse) response;        rep.sendRedirect("/admin/login.jsp");
             }else{
        filterChain.doFilter(request, response);
      }
    }
    catch (Exception e) {}
  }
  public void init(FilterConfig filterConfig) throws ServletException {
    this.filterConfig = filterConfig;
  }
  public FilterConfig getFilterConfig() {
    return filterConfig;
  }  public void setFilterConfig(FilterConfig filterConfig) {
    this.filterConfig = filterConfig;
  }}
第二步:配置WEB.xml文件
設置過濾器:
  <filter>
    <filter-name>userpermission</filter-name>
    <filter-class>sports.tools.UserPermissionFilter</filter-class>
  </filter>
設置過濾器映射,因為過濾器不能過濾全部的程序,所以可以用列表的形式來增加需要過濾的文件.如下.一個過濾器可以過濾多個映射文件.
  <filter-mapping>
    <filter-name>userpermission</filter-name>
    <url-pattern>/admin/index.jsp</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>userpermission</filter-name>
    <url-pattern>/admin/edit/*</url-pattern>
                             </filter-mapping>