struts2中如何使用servlet的总结

来源:互联网 发布:共产主义社会 知乎 编辑:程序博客网 时间:2024/05/19 17:04
 ​       众所周知,有了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为:

    public class TestAction implements ActionSupport {          public String execute(){              return SUCCESS;          }      }  
        struts.xml中对该action进行配置即可:
    <package name="test" namespace="/" extends="struts-default">        ....        <action name="test" class="com.xxx.action.TestAction">            <result>/servlet/test</result><!--result配成servlet的url-pattern即可-->        </action>        ....      </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拦截到。

_____________________________________________________________________________________________________________________________________________________

-----乐于分享,共同进步!

-----更多文章请看:http://blog.csdn.net/eson_15
5 1
原创粉丝点击