struts2.1.*中再实现了一个servlet的方法
学习Struts2也有一段时间了,今天用Servlet写了一个验证码,然后搬到Struts2中,惊奇地发现Servlet无法访问,出现404错误!后来折腾了半天,终于找出原因了。这也算我学习中的一个重大发现吧。写下来给大家分享一下:
在李刚编写的《Struts2权威指南》一书中,他用的是Struts2.0*版本。而我在开发中用的是Struts2.1*版本的构包。其中有很大不同就是,新版本对servlet实现了过滤,而旧版本并未对其进行过滤!
原来我的web.xml定义了一个struts的Filter过滤所有用户请求,如下:
|
<!-- 定义Struts2的FilterDispathcer的Filter --> <!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请求。 --> |
再实现了一个servlet。这样是不能访问到这个Servlet的,因为struts将其拦截了。
为了能够实现servlet,我们可以如下的方式定义struts的Filter:
|
<!-- 定义Struts2的FilterDispathcer的Filter --> <!-- FilterDispatcher用来初始化struts2并且处理.action和.jsp的WEB请求。 --> <filter-mapping> |
只需对过滤规则改一改,我们就能够解决在Strut2中出现的Servlet的404错误.
这让我思索了一个问题:我们的java的包,不断地在更新中,每一次更新也许都会做出很大的改动,我们作为一个程序爱好者,不断地跟上最前沿的技术是必不可少的,但是我们在追赶潮流的时候,不要迷失了方向。要主意每一个细节,追赶潮流是要付出代价的。我就是其中的一个。
所以我们要时刻保持冷静的头脑,当用新的技术的时候,我们不能够死死地陷入旧的编程习惯的死胡同中,寻求更本就不可能出现的错误!而应该去发布新技术的网站去看看他们的最新文档,看看他们的原则,看看他们对哪些地方做出了改动。这样我们才能一路顺风地解决问题。
我今天钻进了两个大的死胡同,一个是Servlet不能方位,另外一个就是Ajax的Json插件两个版本中的很大程度上的不同。实际上对于Struts2.1*版本的Json插件已经与Struts的ActionSupport相兼容了,而低版本的Json插件只是实现了Struts的Action接口。
生活也是这样,我们要活到老,学到老!只有掌握最佳的方法,我们才能更有城府。
struts2.1.*中再实现了一个servlet的方法的更多相关文章
- html中引入调用另一个html的方法
html中引入调用另一个html的方法,尝试了好几种,都列出来: 其中第一种是最好的,其他的方法,可以尝试看看,是不是适合你当前项目 一.div+$("#page1").load( ...
- Markdown 代码块中再内嵌一个行内代码
在 jQuery 1.9 之前(不含1.9):如果传入一个空字符串. null 或 jQuery.parseJSON( jsonString ) ,该函数将返回,而不是抛出一个错误,即使它不是有效的 ...
- Sublime3 中在行尾增加一个分号的方法
1,自己录制一个宏,名称为add comma to end.sublime-macro,宏内容如下: [ { "args": { "extend": false ...
- js判断一个dom中是否包含另一个dom的方法
首先,比较原始(蠢)的方法 function isChildOf(child, parent) { if(child && parent) { let parentNode = chi ...
- Winform中只运行运行一个实例的方法
在Program类的main方法按如下代码编写即可 1 static void Main() 2 { 3 if (Process.GetProcessesByName(Process.GetCurre ...
- 如何开发一个Servlet
1 如何开发一个Servlet 1.1 步骤: 1)编写java类,继承HttpServlet类 2)重新doGet和doPost方法 3)Servlet程序交给tomcat服务器运行!! 3.1 s ...
- Struts2框架中使用Servlet的API示例
1. 在Action类中也可以获取到Servlet一些常用的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显示到JSP的 ...
- 在Struts2框架中使用Servlet的API
1. 在Action类中也可以获取到Servlet一些常用的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显示到JSP的 ...
- Eclipse创建第一个Servlet(Dynamic Web Project方式)、第一个Web Fragment Project(web容器向jar中寻找class文件)
创建第一个Servlet(Dynamic Web Project方式) 注意:无论是以注解的方式还是xml的方式配置一个servlet,servlet的url-pattern一定要以一个"/ ...
随机推荐
- 布局动画 LayoutAnimation
简介 http://blog.csdn.net/pipisky2006/article/details/8317091 补间动画只能对一个控件使用,如果要对某一组控件播放一样的动画的话,可以考虑lay ...
- hdu 1870
水题.... AC代码: #include <iostream> #include <queue> using namespace std; int main() { char ...
- jquery插件--多行文本缩略
1.webkit内核多行缩略样式 text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orie ...
- .NET中删除空白字符串的10大方法
介绍 我们有无数方法可用于删除字符串中的所有空白.大部分都能够在绝大多数的用例中很好工作,但在某些对时间敏感的应用程序中,是否采用最快的方法可能就会造成天壤之别. 如果你问空白是什么,那说起来还真是有 ...
- asp.net微信开发第六篇----高级群发(文本)
说到高级群发,微信的参考资料http://mp.weixin.qq.com/wiki/14/0c53fac3bdec3906aaa36987b91d64ea.html 首先我们先来讲解一下群发文本信息 ...
- DWZ简介及其使用
来源:http://blog.csdn.net/t123012009065/article/details/8286826 DWZ简介: DWZ富客户端框架(jQuery RIA framewor ...
- 软件测试 homework1
申明数组变量后,在使用的时候,出现了向上溢出的情况(程序运行过程中出现的),导致最后答案不正确,经过输出数组数据发现错误, 现在在申明数组的时候都会大致估算一下,确认申明什么样的数组不会导致溢出. 在 ...
- oracle单行函数之日期函数
在日期上加上或减去一个数字结果仍为日期. 两个日期相减返回日期之间相差的天数. 可以用数字除24来向日期中加上或减去小时. SQL from dual; SYSDATE SYSDATE ------- ...
- mysql命中索引规律
就算where条件里写了and两个条件,然后建了2个独立索引,1个组合索引,他具体命中哪个是不确定的,他会根据数据分布情况选择. 比如 possible_keys :f1,f2,f1f2,有三种 ...
- Oracle数据库之PL/SQL程序设计基础
PL/SQL程序设计基础 一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ ...