过滤器的问题(filter)

kueixing 2004-09-01 05:56:46
我使用一个filter对所有页面进行用户登陆进行验证,如果还没有登陆的用户就会被指向登陆页面让他们进行登陆。之前试验过是没问题的,但后来我将那个登陆页面改漂亮一点,用表格加了些图片什么的,结果那些图片全部显示不了。如果去掉过滤功能又显示得了,请问这是个什么问题呢?应该怎么解决呢?
...全文
133 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sagittarius1979 2004-09-02
一般图片,css等不能正常显示的都是由于url所造成的.
回复
sagittarius1979 2004-09-02
targetURI=config.getInitParameter("targetURI");
这个值是/login.jsp.从xml中取得的.

而httpRequest.getRequestURI()).equals("/hp/LoginChecker");
又有/hp/LoginChecker .

这里就是问题所在.
你自己看看servletContext.
回复
wubai250 2004-09-02

在IE中你可以图片的路径对不对啊?
回复
kueixing 2004-09-02
您指的URI是指哪个呢?
回复
kueixing 2004-09-01
public class SessionChecker implements Filter {

private ServletContext context;
private String targetURI;
public void init(FilterConfig config) throws ServletException {
context=config.getServletContext();
targetURI=config.getInitParameter("targetURI");
//System.out.println("The targetURI is:"+targetURI);
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest httpRequest=(HttpServletRequest) request;
HttpServletResponse httpResponse=(HttpServletResponse) response;
HttpSession session=httpRequest.getSession(false);

if(session!=null)
{
//System.out.println("the session is not null");
String passed =(String) session.getAttribute("passed");

//System.out.println("the passed state is:"+passed);

if(passed.equals("true")){
chain.doFilter(httpRequest,httpResponse);
return;
}
else if (passed.equals("passing")){
if (new String(httpRequest.getRequestURI()).equals("/hp/LoginChecker")){
chain.doFilter(httpRequest,httpResponse);
return;
}
}
else {}
session.removeAttribute("passed");

}
//System.out.println("the session is null");
StringBuffer requestURL=httpRequest.getRequestURL();
String query=httpRequest.getQueryString();

if(query!=null)
requestURL.append(query);

String str=new String(requestURL);
httpRequest.setAttribute("originalURI",str);
httpRequest.getRequestDispatcher(targetURI).forward(httpRequest,httpResponse);
return;
}

<filter>
<filter-name>SessionChecker</filter-name>
<display-name>SessionChecker</display-name>
<description>check the session </description>
<filter-class>com.heatpixel.filter.SessionChecker</filter-class>
<init-param>
<param-name>targetURI</param-name>
<param-value>/login.jsp</param-value>
</init-param>
</filter>


<filter-mapping>
<filter-name>SessionChecker</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
回复
sagittarius1979 2004-09-01
可能你的url的路径有问题所以造成了显示的问题.
贴出你的代码来.
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-01 05:56
社区公告
暂无公告