【问题标题】:Is it possible to integrate Spring MVC and a pre-existing web page?是否可以集成 Spring MVC 和预先存在的网页?
【发布时间】:2013-06-25 13:38:02
【问题描述】:

所以,我有这个 Tomcat 服务器。它正在运行一些我正在使用的服务,我用它来支持现有的应用程序。另外,我有一个使用 javascript 和 HTML 开发的独立 webapp。它在它自己的独立包中——一个带有 index.html 的根文件夹和一堆包含代码的子文件夹。它有一个小的交互部分,之后我需要从中存储数据。

我想将网页托管在我的 Tomcat 服务器上,然后使用 spring MVC 构建一个简单的 Web 服务来处理从交互部分获得的数据的接收和持久化。

我查看了其他几个问题,但似乎没有一个是我想要的。具体来说,Is a parallel Spring-MVC application possible with a non-spring web app? 一般谈论使用另一件事(我只想从字面上提供那个 HTML 文件)以及我所读到的关于如何设置 Spring MVC 的所有内容都开始谈论提供 .jsp 页面,我不这样做'没有也不想。 How to access static resources when mapping a global front controller servlet on /* 上的答案之一接近我正在寻找的内容,但它没有显示 index.html,而是将该文件重新路由到一个 servlet,这(我认为?)正是我想要避免的。

对于要调查的事情有什么建议,还是我对这个问题很感兴趣?

【问题讨论】:

  • 澄清一下,“您正在使用的服务”或“支持的现有应用程序”是否与自包含的 JS/HTML 应用程序有关,或者只是为您提供一些上下文设置?

标签: java servlets spring-mvc webpage


【解决方案1】:

也许只需创建简单的 Java servlet 项目并将 Spring 调度程序 servlet 映射到除 root 之外的其他 url。那么您的“交互部分”可能位于 webapp 根目录,tomcat 将作为从 url 开始的静态内容提供:

http://localhost:8080/mywebapp/

并且spring webservice会映射到url:

http://localhost:8080/mywebapp/other_than_root/

你可以在web.xml中配置servlet的映射:

<web-app>
<servlet>
    <servlet-name>spring-mvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring-mvc</servlet-name>
    <url-pattern>/other_than_root/*</url-pattern>
</servlet-mapping>

【讨论】:

  • 从 3.0.4 开始(我认为),Spring MVC 允许您定义一个 &lt;mvc:default-servlet-handler/&gt; 以便允许将调度程序 servlet 映射到 / 并仍然让容器为静态资源提供服务。
  • 你说得对,Costi,&lt;mvc:default-servlet-handler/&gt; 可以,但是这样我宁愿使用 ''。恕我直言,不是在 Spring MVC 中嵌套静态 webapp,而是使用 servlet 规范化方法通过不同的映射将它们分隔开来更简洁。
猜你喜欢
  • 2011-06-14
  • 1970-01-01
  • 2015-07-17
  • 2023-01-30
  • 2015-05-13
  • 2023-03-09
  • 2014-03-06
  • 2013-09-03
  • 2013-04-07
相关资源
最近更新 更多