struts2中使用servlet

众所周知,有了struts2我们没有必要再去写servlet了,但是不排除有些项目中还是需要用到servlet,下面就如何在struts2中使用servlet做一总结。

        假设web.xml中servlet的<url-pattern>为/servlet/test

1. 第一种方式:

        我们一般在配置struts2的时候,web.xml文件中对struts2的<url-pattern>都会设置为/*,也就是说所有的请求都会经过struts2,那么只要经过struts2就必须得有action与之对应,否则就会报错。所以在前台jsp页面如果直接访问/xxx/servlet/test就会报错找不到action。

对于这种情况,我们只需要写一个action并在struts.xml文件中进行配置即可:

        action为:

  1. public class TestAction implements ActionSupport {    
  2.     public String execute(){    
  3.         return SUCCESS;    
  4.     }    
  5. }    
        struts.xml中对该action进行配置即可:
  1. <package name="test" namespace="/" extends="struts-default">    
  2.   ....    
  3.   <action name="test" class="com.xxx.action.TestAction">    
  4.       <result>/servlet/test</result><!--result配成servlet的url-pattern即可-->    
  5.   </action>    
  6.   ....    
  7. </package>    
         然后前台jsp页面中访问方式改成/test.action即可(.action可以省略)

    ​    总结下:如果在web.xml使用 “/*” 处理请求,则servlet需要用一个action来转发该servlet自己的路径。

2. 第二种方式:

    ​    假设前台jsp页面的访问地址不想改变,也可以改变web.xml中的配置,原先struts2的<url-pattern>设置为/*会拦截所有的请求,包括访问servlet,现在可以将struts2的<url-pattern>改成 *.action,那么struts2会拦截所有后缀是 .action的请求,其他的就不会拦截了。所以这样的话,前台就可以直接访问/servlet/test了。不过访问struts2的url中必须都以 .action结尾,这样才能被struts2拦截到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值