如何在Struts2中使用Servlet

发布于 2024-10-21 22:50:37 字数 60 浏览 2 评论 0原文

如何将 servletStruts2 一起使用?

How to use servlets together with Struts2?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

只有影子陪我不离不弃 2024-10-28 22:50:37

我假设您想知道当您将所有内容映射到 Struts2 过滤器后如何将 servlet 与 Struts2 结合使用。

您可以在 struts.xml 中使用以下内容:

<constant name="struts.action.excludePattern" value="/YourServlet"/>

您可以通过用逗号分隔多个模式来排除它们,例如:

<constant name="struts.action.excludePattern" value="/YourServlet,/YourOtherServlet"/>

更多信息

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:

<constant name="struts.action.excludePattern" value="/YourServlet"/>

You can exclude multiple patterns by separating them with a comma, such as:

<constant name="struts.action.excludePattern" value="/YourServlet,/YourOtherServlet"/>

More Information

浮生未歇 2024-10-28 22:50:37

解决这个问题有以下三种方法:

  1. 在struts.xml中添加常量标签

  2. 在web.xml中的servlet配置中添加后缀

    验证码

    /authcode.servlet

    因为在struts 2中,它只会拦截所有以.action结尾的请求,如果这个请求没有任何后缀,它会自动添加它。当我们让servlet url-pattern有后缀时,struts 2将不再拦截它。

  3. 实现用户定义的过滤器

There are three ways to resolve this problem:

  1. add constant tag in struts.xml

    <constant name="struts.action.excludePattern" value="/YourServlet,/YourOtherServlet"/>

  2. 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.

  3. implement a user-defined filter

墨离汐 2024-10-28 22:50:37

Servlet 技术是比 Struts2 更低级别的架构层。更多 Struts2 作为过滤器嵌入到您的项目中(这是 servlet 技术的一部分)。

因此,要再添加一个 servlet,只需添加到 web.xml 注册中:

<servlet>

    <servlet-name>MyServlet</servlet-name>
    <servlet-class>class.MyServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

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>

    <servlet-name>MyServlet</servlet-name>
    <servlet-class>class.MyServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
一紙繁鸢 2024-10-28 22:50:37

如果你需要多映射servlet,你可以使用:

<constant name="struts.action.excludePattern" value="/Servletname1, /Servletname2" />

但在struts中,你不应该使用servlet url,因为它不统一。您可以使用ajax:

 $.ajax({
            url : "nameAction.action?param="+id,
                   type : "post",
            data : {
                'id' : id

            },
            success : function(data) {
    //          $('#result').html(data);
            },
            error : function(jqXHR, textStatus, errorThrown) {
                $('#result').html("Error");
            }
        });

If you need multi mapping servlet you can using:

<constant name="struts.action.excludePattern" value="/Servletname1, /Servletname2" />

But in struts, you should not using servlet url because it not unity. You can use ajax:

 $.ajax({
            url : "nameAction.action?param="+id,
                   type : "post",
            data : {
                'id' : id

            },
            success : function(data) {
    //          $('#result').html(data);
            },
            error : function(jqXHR, textStatus, errorThrown) {
                $('#result').html("Error");
            }
        });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文