关于spring请求报404问题

标签: spring request.getContextPath() 请求404
66人阅读 评论(0) 收藏 举报
分类:

在如下jsp中有上传excel文件,文件处理两个事件,界面如下:
这里写图片描述
jsp文件中的对应的请求如下,可知两个处理两个请求的控制器都是同一个,只是调用了不同的方法:

--上传文件请求
form.action = "<%=request.getContextPath()%>/financeDataController.do?action=financeFileImport";
--数据处理
form.action = "dmis-x/financeDataController.do?action=financeSaleDataProcess";

在本地测试时,Spring 控制器均能正常响应两个请求,当时当把代码提交到生产环境时,上传文件功能正常,但是数据处理是,页面一直报404。让人比较困惑的就是两个请求的控制器都是同一个,只是调用不同的方法而已,就会以为是服务器jar包问题,因为在Spring 配置文件中处理该请求的配置文件如下:

    <bean   name="/financeDataController.do"    class="com.isoftstone.insurance.manager.controller.FinanceDataController">
<!-- 同个控制器处理多个请求,根据action调用不同的方法 -->
    <property name="service">
            <ref bean="financeDataService" />
    </property>
        <property name="methodNameResolver">
            <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
                <property name="paramName">
                    <value>action</value>
                </property>
            </bean> 
     </property>
   </bean> 

所以就把服务器上的jar包全部更换为本地,然而数据处理还是404,后面用f12debug捕获请求时才发现、文件上传的请求为:

http://10.1.102.30:8001/dmis/financeDataController.do?action=financeFileImport

而数据处理的请求:

http://10.1.102.30:8001/dmis-x/financeDataController.do?action=financeSaleDataProcess

如果不仔细看,很难发现其中的差别:项目名称不一样,文件处理的项目名称是dmis,而数据处理的是dmis-x;
恍然大悟,回去看jsp页面是才发现,数据处理的请求写死为:

dmis-x/financeDataController.do?action=financeSaleDataProcess

因为本地工程项目名也是dmis-x,而服务器上的项目名是dmis,这就导致了请求同样的控制器,不同的方法时却访问不到的结果。
总结:代码中不要路径写死,包括文件读取的路径,
请求路径:request.getContextPath()+请求,
文件获取可以用request.getSession().getServletContext().getRealPath(“文件参数”)

查看评论

SpringMvc 请求无法到达controller,出现404错误的原因

转载来自于:http://www.68idc.cn/help/jiabenmake/qita/20160512615015.html 最近做springmvcmybatismaven项目集成...
  • Luo_da
  • Luo_da
  • 2017-07-26 11:30:52
  • 3012

SpringMVC请求静态资源出现404从错误

首先将jsp中引入的静态文件路径改写:如 '> "> 之后选择一下其中一个方法 方法1. 修改web.xml文件,增加对静态资源的url映射 如: default *.j...
  • yaksok
  • yaksok
  • 2015-09-21 11:36:36
  • 901

关于SpringMVC4使用过程中的路径问题,我们经常遇到的Controller未执行以及执行了之后出现404

关于SpringMVC4使用过程中的路径问题,我们经常遇到的Controller未执行以及执行了之后出现404...
  • u011760575
  • u011760575
  • 2014-12-04 10:17:52
  • 4887

springMVC 请求404错误或静态资源无法访问

问题:springMVC 请求404错误或静态资源无法访问。
  • gljun
  • gljun
  • 2017-07-24 10:49:08
  • 754

springboot项目,请求可以进入controller,但返回结果报404

请求地址: http://localhost:8080/asset-mqtt/mqtt/publish/hellomqtt11返回值:{ "timestamp": 1507703410086...
  • menggudaoke
  • menggudaoke
  • 2017-10-11 14:43:47
  • 1009

关于HTML5请求WebSocket,404的问题

关于HTML5请求WebSocket,404的问题 博客分类:  html5 WebSocket WebSocketTomcat推送HTML5jar  最近在写服务器端主动推...
  • qq_34657993
  • qq_34657993
  • 2017-07-12 00:18:47
  • 2091

springmvc不进入Controller导致404

1、检查URL是否会被springmvc拦截 首先检查访问路径URL是否正确被springmvc拦截,这个URL和web.,xml中对springmvc的配置有关。 2、检查Contro...
  • qq_36769100
  • qq_36769100
  • 2017-05-12 16:22:36
  • 16003

springMVC处理ajax请求时的404

这里是萌新第一帖。 用过springMVC的人通常都知道匹配不到的请求URL最后都交由web.xml中的404页面配置处理,返回特定页面,但是我们使用ajax请求时很多时候并不希望返回这个页面。而是跟...
  • liuchao901010a
  • liuchao901010a
  • 2017-01-06 15:54:00
  • 1391

关于springMVC访问静态文件404

一、我们都知道在基于Spring的Application中,需要在web.xml中增加下面类似的配置信息:     Xml代码   listener>      ...
  • dandandeshangni
  • dandandeshangni
  • 2015-09-22 19:53:09
  • 1485

表单提交带时间参数 出现404

使用springMVC  前端表单提交数据  后端接口以model作为参数,如果model中有时间属性,会出现404的情况 ,对于java.util.date类型的时间属性不接受1993-10-12这...
  • u014015324
  • u014015324
  • 2016-07-19 13:08:45
  • 277
    个人资料
    持之以恒
    等级:
    访问量: 1351
    积分: 113
    排名: 119万+
    文章分类
    文章存档