⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filterofcheck.java

📁 一个OA系统
💻 JAVA
字号:
package com.zhou.struts.action;

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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.zhou.services.HibernateSessionFactory;
import com.zhou.util.IsUserRole;

public class FilterOfCheck extends HttpServlet implements Filter {
	private FilterConfig filterConfig;

	// Handle the passed-in FilterConfig
	public void init(FilterConfig filterConfig) throws ServletException {
		this.filterConfig = filterConfig;
	}

	// Process the request/response pair
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain filterChain) {
		try {
			HttpSession objSession = ((HttpServletRequest) request)
					.getSession();
			HttpServletRequest r = (HttpServletRequest) request;

			try {
				HttpServletResponse res = (HttpServletResponse) response;
				r.setCharacterEncoding("gb2312");
				res.setCharacterEncoding("gb2312");
			} finally {
				try {
					
					HibernateSessionFactory.getSession().beginTransaction().commit();
					HibernateSessionFactory.getSession().clear();
					//filterChain.doFilter(request, response);
				}
		 
				catch (Exception ex) {
					ex.printStackTrace();
					HibernateSessionFactory.getSession().beginTransaction().rollback();
					
						
				} finally {
					//HibernateSessionFactory.closeSession();
				}
			}
			
			String url = r.getRequestURI();
			String m = request.getParameter("method");

			if (m != null) {
				url = url + "_" + m;
			}
//				// 截取路径字符串
			String userUrl = url.substring((url.indexOf("/", 2) + 1));
			System.out.println(userUrl);
			
			
			if (objSession.getAttribute("userid") == null) {
				// 通过准备登录用户的请求
				if (url.equals("/yczhou/")
						|| url.equals("/yczhou/userinfo.do_login")
						|| url.equals("/yczhou/adminlogin.jsp")
						|| url.equals("/yczhou/sorry.jsp")
						) {
					filterChain.doFilter(request, response);
				} else {
					((HttpServletResponse) response)
							.sendRedirect("/yczhou/adminlogin.jsp");
				}
			} else {

				if (!userUrl.contains("/")) {
					IsUserRole isRole = new IsUserRole();
					if(isRole.test(objSession.getAttribute("userid"), userUrl)){
						filterChain.doFilter(request, response);
					 }
					else{
						
						if (userUrl.equals("userinfo.do_out")||url.equals("/yczhou/userinfo.do_login")) {
							filterChain.doFilter(request, response);
						}
						else{
					((HttpServletResponse) response).sendRedirect("/yczhou/sorry.jsp");	
						}
 					}
				}
				else{
					filterChain.doFilter(request, response);
				
				}
			}


		} catch (Exception sx) {
			filterConfig.getServletContext().log(sx.getMessage());
		}  
	}

	// Clean up resources
	public void destroy() {
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -