判断是否登录的java类
package com.koal.fmsl.util;
import java.util.List;import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.koal.j2ee.compenents.privilege.hibernate.pojo.PriUser;
import com.koal.j2ee.util.webwork.ValidateUserInterceptor;
import com.opensymphony.webwork.ServletActionContext;
import com.opensymphony.xwork.ActionInvocation;
import com.opensymphony.xwork.interceptor.AroundInterceptor;
import com.opensymphony.xwork.interceptor.Interceptor;public class SessionFilter implements Interceptor{
private final static Log log = LogFactory.getLog(ValidateUserInterceptor.class);
public void destroy() {
// TODO Auto-generated method stub
}
public void init() {
// TODO Auto-generated method stub
}
public String intercept(ActionInvocation arg0) throws Exception {
log.info("我进来了!!!!!!!!!!!!");
System.out.println("我进来了!!!!!!!!!!!!");
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
response.setCharacterEncoding("GBK");
ServletContext application = session.getServletContext();
PriUser loginuser =(PriUser)session.getAttribute("UserToken");
if(loginuser == null) {
response.getWriter().print("<script language='javascript'>window.location='/logoffServlet';</script>");//返回登陆
log.info("转向重新登录页面.....................");
}else{//判断sessionID是不存在LIST,不存在执行session.invalidate();
System.out.println("我进来了!!!!!!!!!!!!");
List list2 =(List)application.getAttribute(loginuser.getAccount());
for(int i=0;i<list2.size();i++) {
String sessionId=(String)list2.get(i);
if(!session.getId().equals(sessionId)) {
session.invalidate();
response.getWriter().print("<script>alert('此用户在另一地点登录');window.location='/logoffServlet';</script>");//返回登陆
log.info("转向重新登录页面.....................");
}
}
}
return invocation.invoke();
}
}
web.xml文件代码
<filter>
<filter-name>webwork</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
xwork.xml文件一段代码
<package name="drug" extends="webwork-default">
<interceptors>
<interceptor name="actionHandle" class="com.koal.j2ee.util.webwork.ProcessActionHandle" />
<interceptor name="session" class="com.koal.fmsl.util.SessionFilter"></interceptor>
<interceptor-stack name="myinterceptors">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="session"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myinterceptors"/>谁能帮我看一下为什么没有被拦截。或者谁能给我发一个xwork实例,谢谢了!
package com.koal.fmsl.util;
import java.util.List;import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.koal.j2ee.compenents.privilege.hibernate.pojo.PriUser;
import com.koal.j2ee.util.webwork.ValidateUserInterceptor;
import com.opensymphony.webwork.ServletActionContext;
import com.opensymphony.xwork.ActionInvocation;
import com.opensymphony.xwork.interceptor.AroundInterceptor;
import com.opensymphony.xwork.interceptor.Interceptor;public class SessionFilter implements Interceptor{
private final static Log log = LogFactory.getLog(ValidateUserInterceptor.class);
public void destroy() {
// TODO Auto-generated method stub
}
public void init() {
// TODO Auto-generated method stub
}
public String intercept(ActionInvocation arg0) throws Exception {
log.info("我进来了!!!!!!!!!!!!");
System.out.println("我进来了!!!!!!!!!!!!");
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
response.setCharacterEncoding("GBK");
ServletContext application = session.getServletContext();
PriUser loginuser =(PriUser)session.getAttribute("UserToken");
if(loginuser == null) {
response.getWriter().print("<script language='javascript'>window.location='/logoffServlet';</script>");//返回登陆
log.info("转向重新登录页面.....................");
}else{//判断sessionID是不存在LIST,不存在执行session.invalidate();
System.out.println("我进来了!!!!!!!!!!!!");
List list2 =(List)application.getAttribute(loginuser.getAccount());
for(int i=0;i<list2.size();i++) {
String sessionId=(String)list2.get(i);
if(!session.getId().equals(sessionId)) {
session.invalidate();
response.getWriter().print("<script>alert('此用户在另一地点登录');window.location='/logoffServlet';</script>");//返回登陆
log.info("转向重新登录页面.....................");
}
}
}
return invocation.invoke();
}
}
web.xml文件代码
<filter>
<filter-name>webwork</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
xwork.xml文件一段代码
<package name="drug" extends="webwork-default">
<interceptors>
<interceptor name="actionHandle" class="com.koal.j2ee.util.webwork.ProcessActionHandle" />
<interceptor name="session" class="com.koal.fmsl.util.SessionFilter"></interceptor>
<interceptor-stack name="myinterceptors">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="session"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myinterceptors"/>谁能帮我看一下为什么没有被拦截。或者谁能给我发一个xwork实例,谢谢了!
解决方案 »
- ssh三大框架集成错误(myEclipse8.0, mysql tomcat),启动就报错,求助?
- 新手 菜鸟求教
- java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
- java j2ee 线程 servlet
- JAVA TOMCAT 连MYSQL 出现了问题(急)
- 刚开始写EJB 出现这个错误 大家帮个忙!!!
- 面试题:数据库关系查询(大家帮帮忙)
- 关于ireport的连续套打小票,客户现场发帖!!!!!!!!
- log4j每次运行main方法根据日期生成一个日志文件?
- 关于提交的url中包含中文的问题,浏览器无法解析
- 请问怎么在eclipse添加参数agentlib呢?
- 框架代码该怎么写,注意什么,大神来讨论,大家来围观
改为/*试试