有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Servlet URL映射

我在理解servlet的url映射工作原理时遇到了一些问题

我在网上看了很多教程和帖子,但运气不好

所以,假设我有一个servlet(WelcomeServlet.java)、一个索引页(index.html)和我的web。xml文件

欢迎光临。java文件位于src目录中,而索引位于src目录中。html在WebContent中

我的索引页将被web调用。xml并将显示一个按钮,一旦按下该按钮,将向servlet发送get请求

问题是,一旦我按下按钮,页面上除了url以外的任何内容都不会改变,这是从

http://localhost:8080/WelcomeServlet

http://localhost:8080/WelcomeServlet/

这是索引页的正文:

<body>
    <form action = "/WelcomeServlet" method = "get">
    <p><label>Click the button to invoke the servlet
            <input type = "submit" value = "Get HTML Document"/>
    </label></p>
    </form>
</body>

这就是网络。xml servlet映射:

<servlet>
        <servlet-name>welse</servlet-name>
        <servlet-class>WelcomeServlet</servlet-class>
</servlet>

<servlet-mapping>
        <servlet-name>welse</servlet-name>
        <url-pattern>/WelcomeServlet</url-pattern>
</servlet-mapping>

<welcome-file-list>
        <welcome-file>Index.html</welcome-file>
</welcome-file-list>

我很有信心问题在于索引表单操作中的寻址,但我真的不知道应该在那里放置什么。我试了好几条路,但没有成功


共 (2) 个答案

  1. # 1 楼答案

    假设IDE中设置的默认源目录是/src,默认web内容目录是/web,那么在servlet上下文中只需编写servlet名称,而不使用“/”。确保默认的web内容目录是WebContent。然后从表单的action属性中删除“/”

  2. # 2 楼答案

    你快到了。只需添加../在你的行动中,让它可以倒退一步。目前,它指向与html文件相同的位置

    <body>
        <form action = "../WelcomeServlet" method = "get">
        <p><label>Click the button to invoke the servlet
                <input type = "submit" value = "Get HTML Document"/>
        </label></p>
        </form>
    </body>