java - Servlet 模式

标签 java spring-mvc

我的 DispatcherServlet:

<servlet>
    <servlet-name>users</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>users</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>get</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>get</servlet-name>
    <url-pattern>/get/</url-pattern>
</servlet-mapping>   

所有请求都委托(delegate)给第一个 Controller 。我想创建两个 servlet,

  1. 请求类似于 localhost:8080/myapp/myrequest
  2. 请求类似于localhost:8080/myapp/get/something

我必须设置什么模式?

最佳答案

模式

<url-pattern>/get/</url-pattern>

仅处理请求

.../get/

无法处理

.../get/something/else

它会寻找完全匹配的内容。

模式

<url-pattern>/</url-pattern>

很特殊,匹配所有未匹配的内容。

换句话说,如果您希望第二个 servlet 匹配以 /get 开头的所有内容,请将其更改为

<url-pattern>/get/*</url-pattern>

在我看来,这没有多大意义,因为 DispatcherServlet 应该是应用程序的单一入口点。您应该适本地修改您的 Controller 。

关于java - Servlet 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22206234/

相关文章:

java - JPanel 中央一列三行

spring-mvc - Spring Boot 和 Swagger 2 : UnsatisfiedDependencyException - Repository tests not working

java - 无法 Autowiring 存储库服务 Spring JPA

java - spring mvc - 将静态内容与 jBoss 分离(Apache httpd 前期)

java - Spring使用JDBC遇到空指针异常

java - charset 和 rome 问题(rss/atom feeds)

java - 从字符串中删除所有空格但保留一个换行符

java - Spring 5.0.0.M3 调用 ApplicationEventListener 时出错 : No ServletContext set - Exception encountered during context initialization

java - Spring Framework 4 & Apache Tiles 3 - 没有这样的定义错误

java - 从 Java 中的 Tensorflow 服务模型获取 Matrix 响应