如何让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>
请问要怎么处理?谢谢
<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!的主要内容,如果未能解决你的问题,请参考以下文章