如何控制访问页面,filter可以吗?
希望用户在url中不能随便敲入jsp页面就可以进去。而只允许登录用户这么做。我试着用filter这么做,然后在web.xml加入它。但是发现这样子jsp的css效果都没有了,是什么原因。
我jsp页面的css是这样引进来的:
<%@ taglib prefix="s" uri="/struts-tags"%>
<link rel="stylesheet" type="text/css" href="<s:url value="/css/login.css"/>" media="screen" />
还有就是web.xml中filter的顺序是不是决定了他们载入的顺序,也就是说先进入第一个filter,然后第二个。
我的是这样子的:
<filter> <filter-name>Login Filter</filter-name> <filter-class>test.AuthenticationFilter</filter-class> <init-param> <param-name>exceptResource</param-name> <param-value>css,js,...</param-value> </init-param> </filter> <filter-mapping> <filter-name>Login Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>18 楼 ahuaxuan 2007-05-29 引用希望用户在url中不能随便敲入jsp页面就可以进去。而只允许登录用户这么做。比较好的做法是不管什么人都不能直接访问jsp页面,要访问就通过action,这样就变成了一个实实在在的权限控制了。
那么就有3种方法可以解决楼主的问题
1,直接使用filter
2,直接使用webwork的interceptor,
3,将action交给spring管理,使用spring的Aop机制
让用户可以直接访问jsp本来就违反了mvc的本意了 19 楼 wisdom3099 2007-05-29 楼主的这个filter基本上也可以了。还有web.xml里filter确实是按照顺序的,比如你用filter指定了webwork,那么再定义filter就最好写在webwork这个filter的前面。 20 楼 ivanisme 2007-05-30 试试Acegi 21 楼 kofren 2008-05-21 在Filter过滤器的实现类中,只要判断用户是否登陆如果他登陆了,你肯定是用Session来保存登陆后的对象或ID,在过滤器实现方法中判断下,对象为空就跳到首页,不为空才可以随意浏览.