如何让Spring MVC DispatchServlet拦截所有的.do请求,比如/system/*.do!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让Spring MVC DispatchServlet拦截所有的.do请求,比如/system/*.do!相关的知识,希望对你有一定的参考价值。

我现在要使用SpringMVC来编写框架,但是我只是想拦截特定的.do请求,如果配置成/system/*.do会出错,配置如下
<servlet>
<servlet-name>basedata</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/basedata-servlet.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>basedata</servlet-name>
<url-pattern>/basedata/*.do</url-pattern>
</servlet-mapping>
请问要怎么处理?谢谢

参考技术A <servlet-mapping>
<servlet-name>basedata</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
拦截*.do,例如:/system/add.do,弊端:所有的url都要以.do结尾。不会影响访问静态文件。
参考:http://blog.csdn.net/sunitjy/article/details/6782431
参考技术B if(xmlhttp.responseText.trim()=="true")
你用responseText要注意 可能返回来的是一个页面代码 你可以alert(xmlhttp.responseText)看下返回来的是什么 估计是这个返回值有问题
参考技术C <servlet-mapping>
<servlet-name>basedata</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
*前面的路径可以不要了。
参考技术D basedata/*.do把*号前的删了试一试 第5个回答  2011-09-22 <servlet-mapping>
<servlet-name>basedata</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>本回答被提问者采纳

如何让 Intellij 中的 Spring MVC 运行 HTML

【中文标题】如何让 Intellij 中的 Spring MVC 运行 HTML【英文标题】:how to get Spring MVC in intellij to run HTML 【发布时间】:2015-09-16 18:15:38 【问题描述】:

我有一个基本的 spring MVC 项目(他们创建的基本模具),并试图让它运行 html 而不是 JSP(JSP 工作完美)

我的控制器

@Controller
@RequestMapping("/")
public class HelloController 
    @RequestMapping(method = RequestMethod.GET)
    public String printWelcome(ModelMap model) 
        model.addAttribute("message", "Hello world!");
        return "index";
    
    

我的 mvc 调度服务

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

<context:component-scan base-package="com.springapp.mvc"/>

<!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">-->
    <!--<property name="prefix" value="/WEB-INF/pages/"/>-->
    <!--<property name="suffix" value=""/>-->
<!--</bean>-->


<mvc:resources mapping="/WEB-INF/pages/" location="/WEB-INF/pages/" />

我尝试了很多事情,例如映射到 /WEB-INF/pages/** ,完全删除 InternalResourceViewResolver(W/ 以前的映射),将后缀留空,使用 html 等,但无济于事。我看过与此类似的其他问题,但没有运气。还阅读了关于 htmls 的静态文件夹,但很困惑......我做错了什么?

网页的文件结构 网络应用

--WEB-INF ----页数 ------hello.jsp, index.html

【问题讨论】:

【参考方案1】:
<mvc:resources mapping="/WEB-INF/pages/" location="/WEB-INF/pages/" />

映射值代表 URL 映射。所以在这里举个例子“/pages/**”

<mvc:resources mapping="/pages/**" location="/WEB-INF/pages/" />

现在您可以通过localhost:8080/app/pages/index.html 访问静态文件,例如 html 页面。

在 Java 控制器中而不是 return "index"; 应该有 return "redirect:/pages/index.html";

阅读this 示例以获取所有详细信息。希望我能帮上忙。

【讨论】:

以上是关于如何让Spring MVC DispatchServlet拦截所有的.do请求,比如/system/*.do!的主要内容,如果未能解决你的问题,请参考以下文章

如何让Spring MVC接收的参数可以转换为java对象

如何让 Java / Spring MVC 返回基于 jsonapi.org ID 的格式?

如何让spring mvc web应用启动时就执行特定处理

如何让spring mvc web应用启动时就执行特定处理

如何让spring mvc web应用启动时就执行特定处理

如何让Spring MVC DispatchServlet拦截所有的.do请求,比如/system/*.do!