我有一个以'* .htm'扩展名运行的spring项目,我们将它绑定在web.xml文件中。
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
现在我想为聊天应用程序集成Spring WebSocket和stomp js,但问题是stomp.js将请求发送到没有'.htm'扩展的服务器。 由于我在每个请求(信息或其他xhr)中收到404错误。
有没有办法使用'.htm'扩展来启用Spring WebSocket和stomp js?
我无法删除此扩展程序,它会占用我当前的应用程序。
答案 0 :(得分:1)
在websocket url中添加前缀,效果很好。
JS:
var socket = new SockJS("/websocket_demo/myapp/ws");
web.xml DispatchServlet映射:
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/myapp/*</url-pattern>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
答案 1 :(得分:0)
您可以像这样添加多个servlet映射,并使.htm与&#34; / url&#34;一起使用。服务于新功能
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/url</url-pattern>
</servlet-mapping>
如果您使用的是Servlet 2.5,则可以直接使用
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
<url-pattern>/url</url-pattern>
</servlet-mapping>