如何用Struts2中用拦截器实现servlet中过滤器的功能? 可以使用servlet中的过滤器功能过滤非法用户,也就是非法用户在地址栏中直接输入某个页面的时候会直接跳到登录页,而在Struts2中的拦截器好像都是拦截一些Action请求,而这种直接在地址栏中输入的情况怎么拦截呢,请教? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你开发中,从所的请求都是以.action结尾的,有时候登陆界面不是,直接是个jsp其他你所使用的jsp页面都放在web-inf目录下,那么任何人就不能直接访问jsp页面了 你试了吗?拦截器是可以拦截的呀你在web.xml中配置的应该是这样的吧<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>应该是所有的请求全要经过struts2的,而如果你要是配置的拦截器,在请求执行前,如果你不在拦截器中指定排除,那么就一定会被拦截,此时,你就可以向在servlet中的过滤器校验那样,对用户的合法性进行校验了~~ 从写FilterDispatcher的doFilter方法你好像用的是AbstractInterceptor吧 获取action名字,有些除了登陆其它都拦截 写个类继承自AbstractIntercepter 并且实现里边的方法就可以了。 拦截器我都已经写好,如下public String intercept(ActionInvocation arg0) throws Exception { // TODO Auto-generated method stub ActionContext ctx=arg0.getInvocationContext(); Map session=ctx.getSession(); String user=(String)session.get("user"); if(user!=null&&user.equals("ydm")) { return arg0.invoke(); } else { return Action.LOGIN; } }我的意思,首先登陆的页面你不能拦截,只有没有经过登陆而直接在地址栏中输入的时候,该如何拦截,该如何配置假如现在有一个普通的show.jsp页面,如果没有登录而直接在地址栏中输入访问的,我应该不让他访问,应该怎样配置我自定义好的拦截器 没人告诉你用了struts2之后就不能用过滤器了而且拦截器是根据namespace来拦截的 没理由拦截不到请求 你的这个方法是AbstractInterceptor的。它只有你执行.action请求时才起作用。要对.jsp拦截,要不你就从写FilterDispatcher的doFilter方法 要不就实现javax.servlet.Filter,自己在web.xml中加上要过虑的jsp 奥,是这样的呀,也就是说Struts2中的拦截器不能向过滤器那样拦截jsp页面吗 谁告诉你用了struts2以后就不能用过滤器了??? 谁告诉你楼主是要拦截action请求来着??别人要的是拦截jsp页面~看清楚了 如何解决拥塞问题 求助javamail smtp邮件发送异常 java飞信的接口为什么不能用了啊。一直提示监听过期 jboss中的avax.naming.NameNotFoundException 请问大家现在什么Hibernate工具比较好用呢? 26了,还有希望么? java中的维度 在weblogic7.0中,JSP文档应该如何部署。 请问,刚开始学j2ee用什么书好? 紧急求助--关于jre文件。。。。 ibatis的問題 oracle+s2sh hibernate注解 id使用序列自增出现问题
其他你所使用的jsp页面都放在web-inf目录下,那么任何人就不能直接访问jsp页面了
拦截器是可以拦截的呀
你在web.xml中配置的应该是这样的吧<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
应该是所有的请求全要经过struts2的,而如果你要是配置的拦截器,在请求执行前,如果你不在拦截器中指定排除,那么就一定会被拦截,此时,你就可以向在servlet中的过滤器校验那样,对用户的合法性进行校验了~~
其它都拦截
public String intercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub
ActionContext ctx=arg0.getInvocationContext();
Map session=ctx.getSession();
String user=(String)session.get("user");
if(user!=null&&user.equals("ydm"))
{
return arg0.invoke();
}
else
{
return Action.LOGIN;
}
}
我的意思,首先登陆的页面你不能拦截,只有没有经过登陆而直接在地址栏中输入的时候,该如何拦截,该如何配置
假如现在有一个普通的show.jsp页面,如果没有登录而直接在地址栏中输入访问的,我应该不让他访问,应该怎样配置我自定义好的拦截器
谁告诉你用了struts2以后就不能用过滤器了???
谁告诉你楼主是要拦截action请求来着??别人要的是拦截jsp页面~看清楚了