Struts2和Servlet实现共存详解编程语言
2023-06-13 09:20:42 时间
在一个项目中,如果我们既用到了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.blog.ytso.com.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都是没有后缀的.
解决方法:下面介绍三种方法
在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
在struts.xml中的的节点下面添加struts2处理的请求后缀 常量:
constant name="struts.action.extension" value="action" /
该属性指定需要Struts2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。
在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的请求路径不改变
作者:blog.ytso.com
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14369.html
cjavaxml相关文章
- jsp和servlet区别
- java lang illegalargument_servlet内置对象
- 【Servlet】浅谈 Servlet 之 保存作用域
- HTTP状态 500 - 内部服务器错误,Servlet[SpringMVC]的Servlet.init()引发异常
- 【愚公系列】2023年03月 Java教学课程 088-Servlet服务器的ServletContext详解
- 【愚公系列】2023年03月 Java教学课程 094-Servlet服务器的JSP
- jsp 生成网页验证码的Servlet详解编程语言
- Struts2自界说效果视图(servlet验证码)详解编程语言
- Servlet 中 forward 和 redirect 的区别详解编程语言
- [javaEE] Servlet的调用过程和生命周期详解编程语言
- servlet详解编程语言
- jsp和Servlet的比较详解编程语言
- Servlet单实例多线程模式详解编程语言
- 关于Servlet要知道的的几个关键知识点详解编程语言
- spring boot中servlet启动原理详解编程语言
- Servlet——ServletContext和ServletConfig详解编程语言
- Servlet——初识Servlet详解编程语言
- Servlet Session的使用
- Servlet请求转发
- Servlet的类和方法
- JSP application.getMinorVersion()方法:返回服务器支持的Servlet API最小版本号
- java中Servlet处理乱码的方法
- jsp引用servlet生成的验证码代码演示