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

📄 sessionchecker.java

📁 JSP2_0技术手册(带示例源码)
💻 JAVA
字号:
package tw.com.javaworld.CH11;

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);
		
		if (session != null) {
			String passed = (String) session.getAttribute("passed");
			if (passed.equals("true")) {
				chain.doFilter(httpRequest, httpResponse);
				return;
			} else if (passed.equals("passing")) {
				if (new String(httpRequest.getRequestURI())
					.equals("/JSPBook/LoginChecker")) {
					chain.doFilter(httpRequest, httpResponse);
					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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -