主页

8. 文件上传

8. 文件上传 SpringMVC 中对文件上传做了封装,我们可以更加方便的实现文件上传。从 Spring3.1 开始,对于文件上传,提供了两个处理器: CommonsMultipartResolver StandardServletMultipartResolver 第一个处理器兼容性较好,可以兼容 Servlet3.0 之前的版本,但是它依赖了 commons-fileupload 这个第三方工具,所以如果使用这个,一定要添加 commons-fileupload 依赖。 第二个处理器兼容性较差,它适用于 Servlet3.0 之后的版本,它不依赖第三方工具,使用它,可以直接做文件上传。 8.1 CommonsMultipartResolver 使用 Com...

阅读更多

7.3 参数绑定

7.3 参数绑定 7.3.1 默认支持的参数类型 默认支持的参数类型,就是可以直接写在 @RequestMapping 所注解的方法中的参数类型,一共有四类: HttpServletRequest HttpServletResponse HttpSession Model/ModelMap 这几个例子可以参考上一小节。 在请求的方法中,默认的参数就是这几个,如果在方法中,刚好需要这几个参数,那么就可以把这几个参数加入到方法中。 7.3.2 简单数据类型 Integer、Boolean、Double 等等简单数据类型也都是支持的。例如添加一本书: 首先,在 /jsp/ 目录下创建 add book.jsp 作为图书添加页面: <%@ page ...

阅读更多

7.2 Controller 方法的返回值

7.2 Controller 方法的返回值 7.2.1 返回 ModelAndView 如果是前后端不分的开发,大部分情况下,我们返回 ModelAndView,即数据模型+视图: @Controller @RequestMapping("/user") public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { ModelAndView mv = new ModelAndView("hello"); mv.addObject("username", "javaboy"); return mv; ...

阅读更多

7.1 @RequestMapping

7.1 @RequestMapping 这个注解用来标记一个接口,这算是我们在接口开发中,使用最多的注解之一。 7.1.1 请求 URL 标记请求 URL 很简单,只需要在相应的方法上添加该注解即可: @Controller public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { return new ModelAndView("hello"); } } 这里 @RequestMapping(“/hello”) 表示当请求地址为 /hello 的时候,这个方法会被触发。其中,地址可以是多个,就是可以多个地址映射到同一个...

阅读更多

6. 处理器详解

6. 处理器详解 6.1 HandlerMapping 注意,下文所说的处理器即我们平时所见到的 Controller HandlerMapping ,中文译作处理器映射器,在 SpringMVC 中,系统提供了很多 HandlerMapping: HandlerMapping 是负责根据 request 请求找到对应的 Handler 处理器及 Interceptor 拦截器,将它们封装在 HandlerExecutionChain 对象中返回给前端控制器。 BeanNameUrlHandlerMapping BeanNameUrl 处理器映射器,根据请求的 url 与 Spring 容器中定义的 bean 的 name 进行匹配,从而从 Spring...

阅读更多

5. DispatcherServlet

5. DispatcherServlet 5.1 DispatcherServlet作用 DispatcherServlet 是前端控制器设计模式的实现,提供 Spring Web MVC 的集中访问点,而且负责职责的分派,而且与 Spring IoC 容器无缝集成,从而可以获得 Spring 的所有好处。DispatcherServlet 主要用作职责调度工作,本身主要用于控制流程,主要职责如下: 文件上传解析,如果请求类型是 multipart 将通过 MultipartResolver 进行文件上传解析; 通过 HandlerMapping,将请求映射到处理器(返回一个 HandlerExecutionChain,它包括一个处理器、多个 HandlerInterc...

阅读更多

4. SpringMVC 中的组件

4. SpringMVC 中的组件 1.DispatcherServlet:前端控制器 用户请求到达前端控制器,它就相当于 mvc 模式中的c,DispatcherServlet 是整个流程控制的中心,相当于是 SpringMVC 的大脑,由它调用其它组件处理用户的请求,DispatcherServlet 的存在降低了组件之间的耦合性。 2.HandlerMapping:处理器映射器 HandlerMapping 负责根据用户请求找到 Handler 即处理器(也就是我们所说的 Controller),SpringMVC 提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等,在实际开发中,我们常用的方式是注解方式。 3.Handler:处理器 ...

阅读更多

2. HelloWorld

2. HelloWorld 接下来,通过一个简单的例子来感受一下 SpringMVC。 1.利用 Maven 创建一个 web 工程(参考 Maven 教程)。 2.在 pom.xml 文件中,添加 spring-webmvc 的依赖: <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>RELEASE</version> </depende...

阅读更多

1. SpringMVC 简介

1. SpringMVC 简介 1.1 Spring Web MVC是什么 Spring Web MVC 是一种基于 Java 的实现了 Web MVC 设计模式的请求驱动类型的轻量级 Web 框架,即使用了 MVC 架构模式的思想,将 web 层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC 也是要简化我们日常 Web 开发的。在 传统的 Jsp/Servlet 技术体系中,如果要开发接口,一个接口对应一个 Servlet,会导致我们开发出许多 Servlet,使用 SpringMVC 可以有效的简化这一步骤。 Spring Web MVC 也是服务到工作者模式的实现,但进行可优化。前端控制器是 Dispatc...

阅读更多