servlet与struts同时使用时出现的问题

本文探讨了解决Struts框架拦截所有请求导致Servlet及JSP页面无法正常访问的问题。通过调整web.xml中的配置,区分Struts处理的.action请求与Servlet处理的.html请求,实现了两者的和谐共存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:一开始单纯的试用struts来开发一个项目,后来又在原来的基础上使用servlet技术。做了一个简单的servlet事例。在网址中输入.jsp页面时,无法找到;具体报错信息为struts找不到页面中form的action。

原因是:struts拦截了所有类型的访问,当然也包括所有的jsp访问,即servlet的页面的action被struts拦截了,如果struts中没有配置相同的action名称的话,就会报找不到action的错误信息。

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


解决办法:把web.xml中struts拦截的内容改成具体的,同时把servlet的action命名成与struts拦截的完全不同的后缀内容。这样就不会相互影响。web.xml中配置的struts拦截的内容:

  <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> 
web.xml中servlet的配置内容:
<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/hello.html</url-pattern>
  </servlet-mapping>
  
  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/servlet/loginservlet.html</url-pattern>
  </servlet-mapping>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值