如何在Struts2中使用Servlet
如何将 servlet
与 Struts2
一起使用?
How to use servlets
together with Struts2
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何将 servlet
与 Struts2
一起使用?
How to use servlets
together with Struts2
?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
我假设您想知道当您将所有内容映射到 Struts2 过滤器后如何将 servlet 与 Struts2 结合使用。
您可以在
struts.xml
中使用以下内容:您可以通过用逗号分隔多个模式来排除它们,例如:
更多信息
I assume you want to know how to use a servlet in conjunction with Struts2 when you have mapped everything to the Struts2 filter.
You can use the following in your
struts.xml
:You can exclude multiple patterns by separating them with a comma, such as:
More Information
解决这个问题有以下三种方法:
在struts.xml中添加常量标签
在web.xml中的servlet配置中添加后缀
因为在struts 2中,它只会拦截所有以.action结尾的请求,如果这个请求没有任何后缀,它会自动添加它。当我们让servlet url-pattern有后缀时,struts 2将不再拦截它。
实现用户定义的过滤器
There are three ways to resolve this problem:
add constant tag in struts.xml
<constant name="struts.action.excludePattern" value="/YourServlet,/YourOtherServlet"/>
add suffix in servlet configuration in web.xml
<servlet-mapping>
<servlet-name>Authcode</servlet-name>
<url-pattern>/authcode.servlet</url-pattern>
</servlet-mapping>
Because in struts 2, it will only intercept all the request end with .action, if this request do not have any suffix, it will automatically add it. When we make our servlet url-pattern have a suffix, then struts 2 will not intercept it anymore.
implement a user-defined filter
Servlet 技术是比 Struts2 更低级别的架构层。更多 Struts2 作为过滤器嵌入到您的项目中(这是 servlet 技术的一部分)。
因此,要再添加一个 servlet,只需添加到 web.xml 注册中:
Servlets technology is more low level architectural layer than Struts2. Even more Struts2 is embedded to your project as a filter (that is part of servlet technology).
So to add one more servlet just add to web.xml registration:
如果你需要多映射servlet,你可以使用:
但在struts中,你不应该使用servlet url,因为它不统一。您可以使用ajax:
If you need multi mapping servlet you can using:
But in struts, you should not using servlet url because it not unity. You can use ajax: