求详解
解决方案 »
- commons fileupload 上传文件问题(急!!!!)
- 请问大哥们,通过图片,如何获取图片拍摄的经纬度.
- 中文乱码
- org.springframework.beans.NotWritablePropertyException:是怎么回事?
- servlet调用不到 提示是http 404 没有任何错误提示
- [求助]哪里有微软project2003下载,100分相送!
- 表单提交后插入数据库出现中文乱码,怎么解决?
- CSDN强人又要出动了!关于一个应用问题:定时请求一个页面!
- 在web.xml里配置自定义错误页不能显示问题,,各位朋友帮忙啊!!
- Applet与Servlet通讯问题
- 解析XML文件时,中文没办法解析出来,怎么办?
- 请高手帮忙看下
String username = (String)session.getAttribute("username");
if(username != null){
//登陆过
}
else{
//没登录过
}
ServletActionContext.getRequest().getSession().setAttribute("state", true);
增加一个延迟登陆的filter作用范围是你所有需要登陆才能操作的页面 public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException { HttpServletRequest req=(HttpServletRequest) request;
HttpServletResponse res=(HttpServletResponse) response; Boolean state = (Boolean) req.getSession().getAttribute("state");
if(state){
chain.doFilter(request, response);
}else{
res.sendRedirect(url);
}
}
ServletActionContext.getRequest().getSession().setAttribute("state", false);
用拦截器,<interceptors>自己配置拦截器栈,用户登录的信息保存在session里面
重写拦截方法的时候用ActionInvocation的对象得到session,检验即可
我没意见,算我废话
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext context = invocation.getInvocationContext();
Action action = (Action) invocation.getAction();
Map<String, Object> session = context.getSession();
if (session.get(SESSION_ADMIN_KEY) != null) {
return invocation.invoke();
}
return Action.LOGIN;
}
以上是我在项目里用到的拦截器,如果session里的指定值不为空,继续调用下一个拦截器,否则返回登录页
三种办法经常用的。。要是省事一些直接用过滤器
-.-其实是哪天我正好在写filter,直接复制过来稍微修改了下
import cn.itcast.surveypark.web.struts.actions.RegAction;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;public class LoginInterceptor implements Interceptor{ private static final long serialVersionUID = -8045011928759321245L;
public void destroy() {
} public void init() {
}
public String intercept(ActionInvocation invocation) throws Exception {
Object obj = ActionContext.getContext().getSession().get("user");
if(obj != null) {
return invocation.invoke();
} else {
Object action = invocation.getAction();
if(action instanceof LoginAction || action instanceof RegAction) {
return invocation.invoke();
}
}
return "login";
}}
import cn.itcast.surveypark.web.struts.actions.RegAction;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;public class LoginInterceptor implements Interceptor{ private static final long serialVersionUID = -8045011928759321245L;
public void destroy() {
} public void init() {
}
public String intercept(ActionInvocation invocation) throws Exception {
Object obj = ActionContext.getContext().getSession().get("user");
if(obj != null) {
return invocation.invoke();
} else {
Object action = invocation.getAction();
if(action instanceof LoginAction || action instanceof RegAction) {
return invocation.invoke();
}
}
return "login";
}}
三种办法经常用的。。要是省事一些直接用过滤器
三种办法经常用的。。要是省事一些直接用过滤器
用拦截器,<interceptors>自己配置拦截器栈,用户登录的信息保存在session里面
重写拦截方法的时候用ActionInvocation的对象得到session,检验即可
package com.jinmy.action;import java.util.Map;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;public class SecurityInterceptor extends AbstractInterceptor{ @Override
public String intercept(ActionInvocation arg0) throws Exception {
ActionContext ac = arg0.getInvocationContext();
Map<String, Object> session = ac.getSession();
if(session.get("loginEmp") != null){
arg0.invoke();
}
return "login";
}}