论坛首页 Java版 Struts

如何控制访问页面,filter可以吗?

浏览 6557 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-05-22
希望用户在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>
    </filter>
    <filter-mapping>
    	<filter-name>Login Filter</filter-name>
    	<url-pattern>/*</url-pattern>
    </filter-mapping>
    
  	<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
   
时间:2007-05-22
页面引用的css也被filter给过滤掉了.
   
0 请登录后投票
时间:2007-05-22
那如何做呢?一般是怎么做呢?
   
0 请登录后投票
时间:2007-05-22
我不知道别人是怎么做的,我就是用filter做的,不过要设置一些忽略资源,比如登录页面,错误页面,无碍的js,jpg,gif,css。
   
0 请登录后投票
时间:2007-05-22
if(isIgnore(path) || canAccess(path)){
   chain.doFilter(...);
}else{
   //redirect to error page;
}
   
0 请登录后投票
时间:2007-05-22
嗯。就是要在filter这个类里面修改咯?
能否在web.xml里面实现呢?
   
0 请登录后投票
时间:2007-05-22
我是struts2和spring整合的。不知道用aop的方法能不能做?
   
0 请登录后投票
时间:2007-05-25
struts2就是webwork2,定义一个拦截器就可以了
   
0 请登录后投票
时间:2007-05-25
直接对action进行拦截挺好的!
   
0 请登录后投票
时间:2007-05-25
我现在是用filter做的,如下:
    doFilter(ServletRequest request,ServletResponse response,FilterChain next) throws IOException,ServletException{
		
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse resp = (HttpServletResponse)response;
		HttpSession session = req.getSession();
		String requesturi = req.getRequestURI();
		if(requesturi.endsWith("css")
		   || requesturi.endsWith("js")
		   || requesturi.endsWith("login.jsp")
		   || requesturi.endsWith("login.action")
		   || requesturi.endsWith("Logout.action")
		   || session.getAttribute(Constants.USER_KEY) != null){
			
			next.doFilter(request, response);
			
		}else if(session.getAttribute(Constants.USER_KEY) == null 
			    ){
			
			resp.sendRedirect("/PowerGrid/login.jsp");
		}

拦截器的话应该怎么做呢?指导一下。
   
0 请登录后投票
论坛首页 Java版 Struts

跳转论坛:
JavaEye推荐