文档详情

配置Struts2后如何使用servlet.docx

发布:2017-06-03约3.56千字共3页下载文档
文本预览下载声明
配置Struts2后如何使用servlet问题的提出???如果web.xml中struts2和servlet的配置如下:????!-- struts2拦截页面请求的配置?--???filter????????filter-namestruts2/filter-name????????filter-classorg.apache.struts2.dispatcher.FilterDispatcher/filter-class????/filter????filter-mapping????????filter-namestruts2/filter-name????????url-pattern/*/url-pattern????/filter-mapping?????!-- servlet的配置?--????servlet????????servlet-nameImageServlet/servlet-name????????servlet-classcom.servlets.ImageServlet????????/servlet-class????/servlet????servlet-mapping????????servlet-nameImageServlet/servlet-name????????url-pattern/myImageServlet/*/url-pattern????/servlet-mapping当我们在页面在请求应用时,struts2将会截获所有请求,对于servlet请求将不能够正常响应的(报错信息为:HTTP Status 404 - There is no Action mapped for namespace / and action name myImageServlet.),这是因为struts2把servlet当成action了,因为servlet和action都是没有后缀的。解决方案在servlet名称后面加上“.servlet”统一在servlet后面加上.servlet结尾(包括web.xml配置文件中和页面上使用servlet的地方),比如web.xml中配置如下:servlet-mappingservlet-nameLoginServlet/servlet-nameurl-pattern/logIn.servlet/url-pattern/servlet-mapping给action添加后缀(比较通用):在struts.xml中的struts的节点下面添加struts2处理的请求后缀常量:!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -- constant name=struts.action.extension value=action /使用action来转发例如:package?com.xxx.actions;?public?class?Test?implements?Action?{???public?String?execute(){???return?SUCCESS;???}???}??然后在struts.xml中配置该Action????package?name=common?namespace=/?extends=struts-default???....??action?name=test?class=com.xxx.actions.Test????result/yourServlet/result???/action???....???/package?这样,再访问/yourServlet就可以访问到了。使用Filter过来servlet1、新建一个filter,用于过滤servletimportjava.io.IOException; importjava.util.ArrayList; importjava.util.Arrays; importjavax.servlet.Filter; importjavax.servlet.FilterChain; importjavax.servlet.FilterConfig; importjavax.servlet.RequestDispatcher; importjavax.servlet.ServletException; importjavax.servlet.ServletRequest; importjavax.servlet.ServletResponse; importjavax.servlet.http.Ht
显示全部
相似文档