struts2框架下,在web.xml中添加过滤器后404

来源:互联网 发布:logo软件 编辑:程序博客网 时间:2024/04/30 13:12

本来像写一点关于lab1的东西。但是用struts2写个HelloWorld用了两天时间,一直在404,在网上找了很多解决方法,但是根本就没有解决问题!!!而且完全不知道自己那里错了,eclipse和tomcat都重新安装了一遍,依然没有解决问题,心态崩了……

之后从去图书馆借了两本书,又找了一些视频教程,我终于知道错哪了……

首先给出我参照的一个教程http://wiki.jikexueyuan.com/project/struts-2/examples.html

按照这个教程配置之后404,但是把struts解压目录下的appa文件夹中的实例copy到tomcatx.y/webapps下是可以正常运行的,所以我开始比较我写的东西和实例文件究竟差在那里。

最后我发现我的web.xml文件中的dtd约束是这个样子的

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   "http://struts.apache.org/dtds/struts-2.0.dtd">
而实例文件中的web.xml文件的dtd约束是这个样子的

<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd">
有没有看出什么区别?

没错一个是struts-2.0 一个是struts-2.3……

是版本的问题,版本的问题,版本的问题!!!

我根本就没有在网上的教程中看到有人提到版本这个问题……

知道了错在那,接下来就简单了。

为了防止出现其他版本问题我选择从实例文件中copy

只说几点需要注意的地方

1、导入jar包的时候不要将struts/lib中的包全部导入,选择一个实例文件并解压,找到它的lib文件夹,把里面的东西全部copy到工程的lib中

2、web.xml中的拦截器也就是filter也从实例文件中的web.xml copy,因为filter-class可能不同。

3、struts.xml中的dtd约束也从实例文件中copy,而且即使你的jsp页面中没有使用struts的东西,也要在后面加上<struts></struts>,否则可能会报错。