全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Struts和servlet不能共存问题解决方法

在一个项目中,如果我们既用到了Struts2又用到了Servlet,项目运行时有可能无法正常访问Servlet,原因是在配置Struts的过滤器的时候,拦截了所有请求。

<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

下面是servlet的配置

<servlet>
   <servlet-name>MyServlet</servlet-name>
   <servlet-class>com.itmyhome.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>MyServlet</servlet-name>
   <url-pattern>/MyServlet</url-pattern>
</servlet-mapping>

当我们在页面发出请求时,struts2将会拦截所有请求,对于servlet请求将不能够正常响应

报错信息为:HTTP Status 404 - There is no Action mapped for namespace / and action name MyServlet.

这是因为struts2把servlet当成action了,因为servlet和action都是没有后缀的.

解决方法:

下面介绍三种方法

方法1:

在servlet后面加上.servlet结尾,包括web.xml配置文件中和页面上使用servlet的地方(当然是什么都可以,比如hello)

<servlet-mapping>
   <servlet-name>MyServlet</servlet-name>
   <url-pattern>/MyServlet.servlet</url-pattern> <!-- MyServlet.hello 也是可以的 -->
</servlet-mapping>

页面访问 http://localhost:8080/project/MyServlet.servlet

方法2:

在struts.xml中的的节点下面添加struts2处理的请求后缀 常量:

<constant name="struts.action.extension" value="action" />

该属性指定需要Struts2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。

方法3:

在web.xml中修改struts2拦截页面请求的配置:

原来的

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

改为

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/admin/*</url-pattern>
</filter-mapping>

servlet的请求路径不改变

总结

以上就是本文关于Struts和servlet不能共存问题解决方法的全部内容,希望对大家有所帮助。欢迎大家参阅:Struts2修改上传文件大小限制方法解析 、 struts2开发流程及详细配置等。有问题可以随时留言,小编会及时回复大家的。


# struts  # servlet  # 共存  # struts2  # JavaWeb Servlet中Filter过滤器的详解  # servlet监听器的学习使用(三)  # servlet上传文件实现代码详解(四)  # servlet Cookie使用方法详解(六)  # servlet转发、包含详解(七)  # servlet重定向详解(八)  # servlet过滤器(Filter)详解(九)  # JavaWeb Servlet中url-pattern的使用  # 多个  # 解决方法  # 都是  # 是在  # 将会  # 英文  # 三种  # 欢迎大家  # 当我们  # 报错  # 将不  # 这是因为  # 可以随时  # 小编  # 都由  # 无法正常  # 配置文件  # 又用  # 默认值  # 不改变 


相关文章: 如何选择高效便捷的WAP商城建站系统?  如何在搬瓦工VPS快速搭建网站?  jQuery 常见小例汇总  建站之星微信建站一键生成小程序+多端营销系统  如何在景安云服务器上绑定域名并配置虚拟主机?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  建站之星各版本价格是多少?  制作公司内部网站有哪些,内网如何建网站?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  如何通过虚拟机搭建网站?详细步骤解析  打鱼网站制作软件,波克捕鱼官方号怎么注册?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  高防服务器租用指南:配置选择与快速部署攻略  建站主机选虚拟主机还是云服务器更好?  ppt制作免费网站有哪些,ppt模板免费下载网站?  内部网站制作流程,如何建立公司内部网站?  如何选择域名并搭建高效网站?  如何用IIS7快速搭建并优化网站站点?  如何用wdcp快速搭建高效网站?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  linux top下的 minerd 木马清除方法  如何在IIS管理器中快速创建并配置网站?  重庆市网站制作公司,重庆招聘网站哪个好?  网站制作网站,深圳做网站哪家比较好?  如何选择最佳自助建站系统?快速指南解析优劣  建站之星安装失败:服务器环境不兼容?  如何高效利用200m空间完成建站?  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  建站之星安装后界面空白如何解决?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  Python如何创建带属性的XML节点  如何在云服务器上快速搭建个人网站?  如何在建站主机中优化服务器配置?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  javascript基本数据类型及类型检测常用方法小结  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  css网站制作参考文献有哪些,易聊怎么注册?  如何获取PHP WAP自助建站系统源码?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  如何正确下载安装西数主机建站助手?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  如何在IIS服务器上快速部署高效网站?  如何选择靠谱的建站公司加盟品牌?  PHP正则匹配日期和时间(时间戳转换)的实例代码  建站之星2.7模板:企业网站建设与h5定制设计专题  建站之星后台管理:高效配置与模板优化提升用户体验  香港服务器如何优化才能显著提升网站加载速度?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。