sessionchecker.java

来自「毕业论文选题系统 学生可以通过次系统在网上进行选题 老师可以布置任务 我写」· Java 代码 · 共 58 行

JAVA
58
字号
package org.aaron.subject;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class SessionChecker implements Filter {
	private ServletContext context;
	private String targetURI;

	public void init(FilterConfig config) throws ServletException {
		context = config.getServletContext();
		targetURI = config.getInitParameter("targetURI");
	}

	public void doFilter(
		ServletRequest request,
		ServletResponse response,
		FilterChain chain)throws IOException, ServletException {
		
		HttpServletRequest httpRequest = (HttpServletRequest) request;
		HttpServletResponse httpResponse = (HttpServletResponse) response;
		HttpSession session = httpRequest.getSession(false);
		System.out.println("runing sessionchecker ");

		if (session != null) {
			 String	passed = (String) session.getAttribute("passed");
			if ("true".equals(passed)) {
				if (targetURI=="/subject/manage/index.jsp"){
					if ("admin".equals((String)(session.getAttribute("userName")))){
						return;
					}
					httpRequest.getRequestDispatcher("/subject").forward(httpRequest, httpResponse);
				}
				chain.doFilter(httpRequest, httpResponse);
				System.out.println("runing sessionchecker passed");
				return;
			} else if ("passing".equals(passed)) {
				if (new String(httpRequest.getRequestURI())
					.equals("/subject/LoginChecker")) {
					chain.doFilter(httpRequest, httpResponse);
					System.out.println("runing sessionchecker passing");
					return;
				}
			} else { }
			session.removeAttribute("passed");
		}
		
		StringBuffer requestURL = httpRequest.getRequestURL();
		String query = httpRequest.getQueryString();
		if (query != null)
			requestURL.append(query);
		httpRequest.setAttribute("originalURI", new String(requestURL));
		httpRequest.getRequestDispatcher(targetURI).forward(httpRequest, httpResponse);
	}
	public void destroy() {
	}
}

⌨️ 快捷键说明

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