springMVC框架如何根据页面上的访问路径快速找到相应的控制器类中处理请求的方法

springMVC框架如何根据页面上的访问路径快速找到相应的控制器类中处理请求的方法,第1张

如上图所示,controller类里面在每个处理请求的方法头部都加上了一个@RequestMapping(value = "")注解,这个注解专门用来匹配页面的访问路径

当SpringMVC框架检测到你在浏览器中输入的地址时

首先会去判断你要访问的资源名称是不是属于静态资源(具有相同名称的或页面),如果找到静态资源,就直接访问这些资源。

如果没找到再去webxml中去检索有没有对应的映射配置,如果有就按照这些映射访问资源。

如果依旧没有找到,这时再根据访问路径去相应的controller类中匹配@RequestMapping(value = "")注解中配置的映射,如果匹配上了就执行对应注解绑定的处理方法,反之则报错提示找不到资源(404错误)。

@RequestMapping(value="getFile")

public ModelAndView getFile(@RequestParam(required = false) MultipartFile nativeUrl) {

Systemoutprintln("文件长度: " + nativeUrlgetSize());

Systemoutprintln("文件类型: " + nativeUrlgetContentType());

Systemoutprintln("文件名称: " + nativeUrlgetName());

Systemoutprintln("文件原名: " + nativeUrlgetOriginalFilename());

Systemoutprintln("========================================");

//如果用的是Tomcat服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夹中

String realPath = requestgetSession()getServletContext()getRealPath("/WEB-INF/upload");

//这里不必处理IO流关闭的问题,因为FileUtilscopyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的

FileUtilscopyInputStreamToFile(nativeUrlgetInputStream(), new File(realPath, nativeUrlgetOriginalFilename()));

}

前端用的是jsp吗,如果是在路径前加${pageContextrequestcontextPath},如${pageContextrequestcontextPath}/setting/stylecss

springmvc文件上传路径设置:

1、导入文件上传的坐标。

2、在spring-mvcxml配置文件中配置文件解析器对象,property可以配置上传文件的大小等属性。注意:id一定要是multipartResolver。

3、前端页面的form表单,method是post方法,加上enctype="multipart/form-data"这个属性。

4、后端方法的参数类型为MultipartFile,参数名要与前端文件域的name一样。

5、最后用file参数的getOriginalFilename()方法获取上传的文件名,然后再用transferTo(参数1,参数2)方法将文件上传到指定路径。注:transferTo(参数1,参数2)的参数1为指定将文件上传的路径,参数2为文件名。

其实这个方法就是Controller实例下的一个属性(但不是apiController),因此我们实例化一个Controller就行了。

如下即可:

[csharp] view plain copy

SystemWebMvcController controller = new HomeController();

var curProjRootPath = controllerServerMapPath("~/");

以上就是关于springMVC框架如何根据页面上的访问路径快速找到相应的控制器类中处理请求的方法全部的内容,包括:springMVC框架如何根据页面上的访问路径快速找到相应的控制器类中处理请求的方法、我用from表单提交一个file怎么在后台获取这个file的绝对路径(框架式Spring+SpringMVC)、springmvc 访问路径要不要加项目名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9323286.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存