过滤器的问题(filter)

kueixing 2004-09-01 05:56:46
我使用一个filter对所有页面进行用户登陆进行验证,如果还没有登陆的用户就会被指向登陆页面让他们进行登陆。之前试验过是没问题的,但后来我将那个登陆页面改漂亮一点,用表格加了些图片什么的,结果那些图片全部显示不了。如果去掉过滤功能又显示得了,请问这是个什么问题呢?应该怎么解决呢?
...全文
164 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的路径有问题所以造成了显示的问题.
贴出你的代码来.

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧