<!-- The Welcome File List --> <welcome-file-list> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>2、过滤器如下: package com.ncucec.filter;import java.io.*; import javax.servlet.*;public class LoginFilter { public void init(FilterConfig filterConfig) throws ServletException { } public final void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, response); }// end doFilter}
我晕倒,楼主犯的错误也太严重了点吧??public class LoginFilter { 你这个类是干什么的啊,implements Filter哪里去了,没有这个,能算是过滤器嘛。我运行了一下才发现,本来还以为是你web.xml配置不对导致的呢。public class LoginFilter implements Filter就对了,搞定。
<filter/>
<filter/>
<filter-mapping/>
<filter-mapping/>
这个顺序看看是否就ok了
我WEB.xml只配置一个也不行.
<web-app>
<!--是否已经登录-->
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.ncucec.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>而servlet-api.jar在tomcat5/lib和我的应用web-inf/lib下各有一份
怎么还要这个包呢?web容器不是自带servlet包了吗?你的tomat版本是哪个,把servlet-api.jar删除试试。另外,也是主要原因,你把第二个filter和第一个filter都放在web.xml的最上面,然后才是filter-mapping,也就是 crazycy(代言人)说的那样就可以了。
>>D:\ncucec\bigstore\application\WEB-INF\lib\servlet-api.jar
我是为了项目编译才放在这,删除也是一样的.tomcat5.028>>你把第二个filter和第一个filter都放在web.xml的最上面,然后才是filter-mapping,也就是 crazycy(代言人)说的那样就可以了。
改了.无效.
<?xml version="1.0" encoding="GBK"?><!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!--是否已经登录-->
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.ncucec.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
<!-- 在线人数统计 -->
<listener>
<listener-class>com.ncucec.SessionCount</listener-class>
<listener-class>com.ncucec.OnlineList</listener-class>
</listener>
<taglib>
<taglib-uri>oscache</taglib-uri>
<taglib-location>/WEB-INF/oscache.tld</taglib-location>
</taglib>
<!-- The Welcome File List -->
<welcome-file-list>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list></web-app>2、过滤器如下:
package com.ncucec.filter;import java.io.*;
import javax.servlet.*;public class LoginFilter {
public void init(FilterConfig filterConfig)
throws ServletException {
} public final void destroy()
{
} public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
chain.doFilter(request, response); }// end doFilter}
你这个类是干什么的啊,implements Filter哪里去了,没有这个,能算是过滤器嘛。我运行了一下才发现,本来还以为是你web.xml配置不对导致的呢。public class LoginFilter implements Filter就对了,搞定。
真是不应该,这么低级的错误。那我再借题问另一个问题:如何在过滤器中,修改request的参数值??
HttpServletRequest httprequest=(HttpServletRequest)request;
你可以String str=request.getParameter("param");
将str处理后用request.setAttribute("ss",str);然后在程序中用request.getAttribute("ss"),应该可以取到。
好象看过一篇文章通过装饰servlet什么的可以实现,当时没有仔细看,不记得了。
一个url=aaa.do和一个operation=create,两个结合起来就可以进行授权了。
再细分一点可以把它做成四维的,就可以达到记录级的控制了。