filter中出现的小问题.请帮帮忙.不欢迎灌水!
我在一个小型项目中写了一个安全验证的filter.但是却出现以下问题.就是当安全验证不成功的时候,filter没做重定向页面的工作.在地址栏显示的是要非法访问的地址.但并不显示这个页面.页面空白.请各位高手帮忙看一上,程序是不是那里有问题.代码如下:
package CompanyManager.util;
import javax.servlet.FilterConfig;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import CompanyManager.bean.User; //项目中写的用户类javabean.
/**
*<p>登陆验证过虑 </p>
*<p>copyright:Lee Copyright (c) 2005</p>
*@by:LEE
*@version:1.0
*/
public class AuthFilter implements Filter
{
private final String LOGIN_PAGE = "default.jsp";//要重定向的页面.
protected FilterConfig filterConfig;
public void doFilter( ServletRequest req, ServletResponse res,
FilterChain chain)throws IOException, ServletException
{
HttpServletRequest hreq = (HttpServletRequest)req;
HttpServletResponse hres = (HttpServletResponse)res;
HttpSession session = hreq.getSession();
//当登陆成功时.我把用户类的实例,保存在了session中.
User user = (User)session.getAttribute("user");
try
{
if(!user.isLogin())
{
//获得用户实例.是否登陆的属性.如果没有.重定向页面.问题好像 就出在就里.好像并没有做重定向..而且请求好像也让中断了.
hres.sendRedirect(LOGIN_PAGE);
}
else
{
chain.doFilter(req, res);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void destroy()
{
this.filterConfig = null;
}
public void init(FilterConfig config)throws ServletException
{
this.filterConfig = config;
}
}
下面是我在web.xml中配置的filter.
=========================================================================================
<filter>
<filter-name>auth</filter-name>
<filter-class>CompanyManager.util.AuthFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>auth</filter-name>
<url-pattern>/employeeManager/*</url-pattern>
</filter-mapping>
请大家帮我看一下,问题出在哪里了~~郁闷中.........
问题点数:100、回复次数:2Top
1 楼YuLimin(阿敏总司令:简单就是美—钻石闪闪您快结贴!)回复于 2005-06-02 08:20:07 得分 100
if(!user.isLogin())
{
//获得用户实例.是否登陆的属性.如果没有.重定向页面.问题好像 就出在就里.好像并没有做重定向..而且请求好像也让中断了.
hres.sendRedirect(LOGIN_PAGE);
//这里要加上判断user是不是为null
if(user == null || !user.isLogin())Top
2 楼CrazySmall(我没醉)回复于 2005-06-02 10:53:27 得分 0
呵呵.犯了一个初学都犯的毛病....看来是昨天写通宵..写的头晕了....唉....以后小心.谢谢 YuLimin..谢谢..Top




