📄 bbsloginfilter.java
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的,如有技术问题请与本人联系! * * 检验用户是否已经登录BBS系统,如果已经登录则不作任何处理,否则设置: * BBSSession.isLogin = true, 并更新用户的BBS系统的userinfo表的信息,如: * 最后登录BBS的时间,IP。登录次数等 */package biz.tbuy.bbs;import biz.tbuy.common.Visitor;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.HttpServletRequest;import javax.servlet.http.HttpSession;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b> * <a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b> * <a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> */public class BBSLoginFilter implements Filter{ private FilterConfig filterConfig = null; public BBSLoginFilter() { } public void init(FilterConfig filterConfig) { this.filterConfig = filterConfig; } /** * @param filterConfig The filter configuration object */ public void setFilterConfig(FilterConfig filterConfig) { this.filterConfig = filterConfig; } /** * Return the filter configuration object for this filter. * @return fileterConfig */ public FilterConfig getFilterConfig() { return this.filterConfig; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest requestHttp = (HttpServletRequest) request; String requestURI = requestHttp.getRequestURI(); if (requestURI.indexOf("/bbs/") != -1) { // 判断用户是否已经登录BBS系统,如果是刚登录,则需要更新用户的BBS信息 Visitor visitor = getVisitor(requestHttp); if (visitor != null && visitor.isLogin()) { BBSSession bbs = (BBSSession)visitor.getSessionOper().get("BBSSession"); if (bbs == null) { // 更新用户的BBS信息,时间、IP BBSSession bbsNew = new BBSSession(); bbsNew.init(visitor.getUser().getId()); bbsNew.setLogin(true); visitor.getSessionOper().put("BBSSession", bbsNew); } else if (!bbs.isLogin()){ // 如果用户已经登录主站,但未登录BBS系统,则更新用户的BBS信息 // 并设置为已经登录BBS bbs.init(visitor.getUser().getId()); bbs.setLogin(true); } } } // 进行下一个过滤 try { chain.doFilter(request, response); } catch(Throwable t) { System.out.println("BBSLoginFilter:Trowable:" + t.getMessage()); } } // 获取sessionScope.Visitor private Visitor getVisitor(HttpServletRequest request) { Visitor visitor = null; HttpSession session = request.getSession(false); try { visitor = (Visitor)session.getAttribute("visitor"); } catch (Exception e) { //System.out.println("visitor is null"); } return visitor; } public void destroy() {}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -