当前位置: 首页 > 知识库问答 >
问题:

如何同时支持index.html和“/”Servlet映射

林劲
2023-03-14

在Java web应用程序的根目录中有以下两个servlet和一个index.html页面。html页面收集一些数据,使用Insert servlet插入数据,然后向用户提供一个URL来检索数据(即http://localhost:8080/12345)。我希望用户能够将http://localhost:8080/12345放在浏览器中,并调用Retrieve servlet。

现在发生的事情是,当我输入http://localhost:8080或http://localhost:8080/Retrieve servlet就会被调用(它在web.xml中映射到“/”)。我只想在请求http://localhost:8080/some_data_here时调用Retrieve servlet。你知道如何修改servlet映射来支持这些需求吗?

index.html

<html>
   <body>
      <form action = "insert" method = "POST">
         Enter Data: <input type = "text" name = "data">
         <br />
         <input type = "submit" value = "Submit" />
      </form>
   </body>
</html>

web.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
    <servlet>
        <servlet-name>Insert</servlet-name>
        <servlet-class>com.servlets.Insert</servlet-class>
        <load-on-startup>-1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Insert</servlet-name>
        <url-pattern>/insert</url-pattern>
    </servlet-mapping>
     <servlet>
        <servlet-name>Retrieve</servlet-name>
        <servlet-class>com.servlets.Retrieve</servlet-class>
        <load-on-startup>-1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Retrieve</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
         <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app> 

共有1个答案

阎扬
2023-03-14

不像您所说的那样将Retrieveservlet映射到/,而是映射到/12345,然后将Insertservlet之后的请求重定向到/12345

 类似资料:
  • 问题内容: 我们的Java程序之一在启动时仅监听IPv6(8080) 例如 问题是无法从外部访问(本地主机除外),要解决此问题,我需要手动添加 但这使得该程序仅适用于IPv4网络。 是否可以执行上述类似 sshd的 操作,并且都支持IPv4和IPv6? 问题答案: 我怀疑这不是Java编程问题,而是OS网络堆栈/ OS网络配置问题: http://coding.derkeiler.com/Arch

  • 我们的一个Java程序启动时,它只监听IPv6(8080) 例如。 问题是它不能从外部访问(除了localhost之外),为了解决这个问题,我手动添加了这个 是否可以像上面的sshd一样,同时支持IPv4和IPv6?

  • 当前正在读取Head First Servlet JSP。我目前陷入了映射servlet。这可能是一个愚蠢的问题,但如何才能正确地映射servlet url模式呢?我正在使用eclipse mars,这是我第一次使用JSP/servlet。在创建动态web项目时,我总是检查generate web xml 这是默认web.xml中的内容 它使用这个来运行 但当我将其添加到显示名称下方时 它给我一个

  • 我在多台PC上有多个版本的,其中一些具有最新版本,即,有些具有较旧的版本。 我已经按照这个设置与,下一代支持Firefox 47版自动化如下:- 它在Firefox版本47上运行良好,但当我在安装Firefox旧版本的其他PC上运行相同时,它会给出如下:- 原因:org.openqa.selenium.remote。无法访问BrowserException:无法sta rt新会话。可能的原因是远程

  • 本文向大家介绍Spring Boot如何支持嵌入式Servlet容器,包括了Spring Boot如何支持嵌入式Servlet容器的使用技巧和注意事项,需要的朋友参考一下 Spring Boot支持Tomcat、Jetty和Undertow三种Servlet容器嵌入到Web应用程序中,开发者使用starter即可方便嵌入,默认情况下,嵌入服务器的访问端口为8080。 Servlets、Filter

  • 我试图通过Python在Elasticsearch中创建一个索引。我部署了一个ES的本地实例,查询运行良好。但是,我有一个模式。这里是: 下面是我用来创建这个索引的代码