我写了一个Servlet过滤器类 NoteFilter.java 和一个 Servlet类 NoteServlet.java
分放在项目下的/classes 和/classes/sers下,并且都已经编译成功.
下面是在WEB-INF/web.xml下的配置
<?xml version= "1.0 " encoding= "GBK "?>
<web-app>
<filter>
<filter-name> NoteFilter </filter-name>
<filter-class> NoteFilter </filter-class>
<init-param>
<param-name> blackList </param-name>
<param-value> Yang Qing </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name> NoteFilter </filter-name>
<url-pattern> /note </url-pattern>
</filter-mapping>
<!-- 过滤器的配置-->
<servlet>
<servlet-name> NoteServlet </servlet-name>
<servlet-class> sers.NoteServlet </servlet-class>
</servelt>
<servlet-mapping>
<servlet-name> NoteServlet </servlet-name>
<url-pattern> /note </url-pattern>
</servlet-mapping>
</web-app>
然后我启动tomcat
为什么我在浏览器中输入 http://127.0.0.1/test/note 始终找不到文件!404错误!
------解决方案--------------------
直接输入http://127.0.0.1/test/note是不能执行的
一般servlet 是在网页中提交请求,action= "note "
然后转到 note 映射的类,通常在 映射类执行完相关操作,再将响应返回到jsp页面,
直接输入去访问类是不可能的。
------解决方案--------------------
好象是和过滤器没啥关系,
但我从来没直接输网址方式访问,
<filter-mapping>
<filter-name> NoteFilter </filter-name>
<url-pattern> /note </url-pattern>
</filter-mapping>
这里的note 换成* 试试,不知道你写一样的映射名有关没?
------解决方案--------------------
mark
------解决方案--------------------
我想你写的过滤器会不会有问题,你先把过滤器不用,看下单独这个servlet能运行吗?一个一个试下,我看了你的web.xml没有错.而且servlet是可以这样运行的.
------解决方案--------------------
应该是过滤器的问题!
servlet是可以访问的,和JSP是一样的!
------解决方案--------------------
我建议您用eclipse软件,就不用改写web.xml了
------解决方案--------------------
你说下这个过滤器想表达什么意思?大概是在这个黑名单里的username不能访问留言板是吗?这个username靠这样是很难取到值的.你应该把username保存到request.getSession().setAttribute(),再从request.getSession().getAttribute()取得.总觉得这个过滤器不对.
------解决方案--------------------
呵呵,你看一下你的servlet配置的目录对了没有,我一般这样访问都没有问题啊。
还有就是URL中的路径。
------解决方案--------------------
mark
------解决方案--------------------
过滤器的问题,过滤器的url-pa和servlet的url是一样的哦。建议改掉过滤器的url试试
------解决方案--------------------
filter-name> NoteFilter </filter-name>
<url-pattern> /note </url-pattern>
把
<url-pattern> /note </url-pattern> 中的/note改为/*试试看
应该是这的问题
------解决方案--------------------
filter 中要调用
chain.doFilter(request, response);
------解决方案--------------------
http://127.0.0.1:8080/test/note这才是有效地址呀
------解决方案--------------------