Spring mvc 的基本使用说明
来源:互联网 发布:可以手写的软件 编辑:程序博客网 时间:2024/05/18 03:03
Spring MVC整体架构请求流程如图:
step1:
首先用户发送请求到前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;
step2:
页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名)
step3:
前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;
step4:
前端控制器再次收回控制权,将响应返回给用户;至此整个结束。
SpringMVC的核心组件有:
1. DispatcherServlet 前端控制器
2. HandlerMapping 处理器的规则映射
3. HandlerAdapter 处理器适配器
4. controller 处理器或者页面控制器
5. HandlerExceptionResolver 处理器异常解析
6. ViewResolver 视图解析器
当我们在做一个Spring MVC准备的工作的时候,导入固定的项目包之后,就要写web.xml的配置文件:
<servlet> <servlet-name> dispatcher </servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name> dispatcher </servlet-name> <url-pattern>/app/*</url-pattern> </servlet-mapping>
load-on-startup:表示启动容器时初始化该Servlet;
url-pattern:表示哪些请求交给Spring Web MVC处理, “/app/*” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。
自此请求已交给MVC框架处理,因此我们需要配置Spring的配置文件,默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。比如:WEB-INF/ dispatcher-servlet.xml
然后配置组件项:
在dispatcher-servlet.xml中添加:
<mvc:annotation-driven/>该标签的作用是可以自动识别HandlerMapping,HandlerAdapter的默认相关实例,这样在添加@Controller @RequestMapping标注的类和方法会被自动扫描注册。
可以看一下HandlerMapping的关系:
工作中基于开发效率,我们最常用的也是 DefaultAnnotationHandlerMapping
完整的dispatcher-servlet.xml文件:
<?xml version="1.0" encoding="UTF-8"?><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/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"><pre name="code" class="java"><span style="font-family:宋体;"> //HandlerMapping</span><context:component-scan base-package="zttc.itat.controller"/><mvc:annotation-driven/>
<!-- 将静态文件指定到某个特殊的文件夹中统一处理 --><mvc:resources location="/resources/" mapping="/resources/**"/>//视图处理<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!-- 设置multipartResolver才能完成文件上传 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="5000000"></property></bean><bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><property name="exceptionMappings"><props><prop key="zttc.itat.model.UserException">error</prop></props></property></bean></beans>
Controller层面的写法:
@Controller public class HelloController { @RequestMapping("/hello")public String hello(@RequestParam("username") String username){System.out.println("start----");System.out.println(username);return "hello";<span style="font-family:宋体;"> </span>}}
控制器的建立可以通过实现Controller接口实现,也可以通过@Controller注解将某个类声明为Controller,本节主要讲解注解式控制器的使用。
注解式控制器通过@Controller和@RequestMapping注解定义我们的处理器类。需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和@RequestMapping注解的处理器。
传值的问题:
@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;
如果数据绑定了@RequestParam 那么url上面一定要绑定数据,否则会报“400”错误。一般只有在这个数据一定是要填写的,我们才会去绑定了@RequestParam,不然我们不要添加@RequestParam,直接写参数也是可以的。
- Spring mvc 的基本使用说明
- spring mvc的基本配置
- spring mvc注解配置及@value的使用说明
- spring mvc 中Servlet的基本配置
- Spring MVC 的基本工作原理:
- spring mvc 基本配置
- spring mvc基本配置
- Spring MVC基本配置
- Spring mvc基本概述
- Spring MVC 基本配置
- Spring MVC基本配置
- sourceTree的基本使用说明
- [spring-mvc] <context:component-scan>使用说明
- SpringBoot8-Spring MVC-Spring MVC基本配置
- spring 的ApplciationContext使用说明
- spring jdbcTemplate的使用说明
- Spring的Quartz使用说明
- 关于Spring中Commons Validator的使用说明及MVC验证的配置步骤
- PostgreSQL使用pg_basebackup搭建主备流复制环境
- 欢迎使用CSDN-markdown编辑器
- Spring Dependency Injection (DI)
- xStream完美转换XML、JSON
- 使用Unity3D的50个技巧:Unity3D最佳实践
- Spring mvc 的基本使用说明
- greenDao_2.0.0学习笔记3-Hello World
- SAP EP7.0 LoginModule JAAS 自定义登录控制
- Android C层如何加载.so库文件
- Bone Collector 2602 (01背包)(模板)
- tomcat启动时报:IOException while loading persisted sessions: java.io.EOFException的解决方案
- iframe调用后台方法通过response返回html代码
- UVA 4857 Halloween Costumes 区间背包
- android 5.0 Material Design酷炫风格的开源项目集合