springMVC最重要的就是前端控制器DispatchServlet了。他是整个springMVC应用的核心。

需要将它配置在web.xml中。

1.DispatchServlet的配置

  1. <!--配置前端控制器-->
    <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--初始化加载配置文件 spring ioc 初始化-->
         //如果没有配置init-param,应用程序默认会到WEB-INF目录下找servletName-servlet.xml的配置文件
          //servletName指的是前端控制器的名称
  1. <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc-config.xml</param-value>
    </init-param>
    <!--标记容器是否在启动的时候就加载这个servlet。
    当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;
    当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。
    正数的值越小,启动该servlet的优先级越高。-->
    <load-on-startup>1</load-on-startup>
    </servlet>
  2.  
  3. <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
    </servlet-mapping>
    2.Controller注解类型:使用该注解时不需要实现Controller接口。只需要将该注解标注在类上面就表示他是一个控制器了,然后通过spring的扫描机制找到该类就行,<context:component-scan>
    与实现接口相比较,使用注解可以同时处理多个请求,而使用接口一次只能处理一个请求。
    3.RequestMapping注解类型
  1. RequestMapping用于映射一个请求或者一个方法。可以标注在类上,也可以标注在方法上。
    例如
  1. @Controller
    @RequestMapping("/jason")
    public class FirstController {
    @RequestMapping("/test")
    public String handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Model model)
    throws Exception {
    model.addAttribute("msg", " hello springMVC ");
  2.  
  3. return "redirect:http://www.baidu.com";
    }
    }
    请求路径则变为http://localhost:8080/springmvc/jason/test
  4.  
  5. 3.1RequestMapping注解的属性
  1. RequestMapping注解的属性有7个,都是可选属性,默认为value,例如
  1. @RequestMapping(value="/jason"),但是当只有一个属性的时候,与@RequestMapping("/jason")是一样的
    4.组合注解
    GetMapping:匹配get方式的请求
    PostMapping:匹配post方式的请求
    PutMapping:匹配put方式的请求
    DeleteMapping:匹配Delete方式的请求
    PatchMapping:匹配Patch方式的请求
  2.  
  3. getpost的区别:
    最直接的区别,GET请求的参数是放在URL里的,POST请求参数是放在请求body里的;
    GET请求的URL传参有长度限制,而POST请求没有长度限制;
    GET请求的参数只能是ASCII码,所以中文需要URL编码,而POST请求传参没有这个限制
    详情参见:https://www.cnblogs.com/logsharing/p/8448446.html
  4. 5.请求处理方法的参数类型和返回类型
    请求处理方法的参数类型比较多,这里主要说返回类型
  5.  
  6. 请求处理的返回类型主要有:
    ModelAndViewModelMapViewStringvoidHttpEntity<?>或者ResponseEntity<?>,Callable<?>,DeferredResult<?>
  7.  
  8. 最常见的就是ModelAndViewStringvoid
    其中ModelAndView类型中可以添加Model数据,并指定视图,
    String类型的返回值可以跳转视图但是不能携带数据,要与Model参数一起搭配使用。
    void类型主要在异步请求时使用,它只返回数据,不会跳转视图。
  9.  
  10. String类型除此之外还可以(redirect)重定向和(forward)请求转发。
  11.  
  12. 6.视图解析器
  1. <!--定义视图解析器-->
    <bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
    </bean>
    可以设置前缀和后缀,将路径简化。
  2.  
  1.  

SpringMVC核心类和注解的更多相关文章

  1. SpringMVC核心类DispatcherServlet

    配置DispatcherServlet 要使用SpringMVC,必须在web.xml中配置好这个DispatcherServlet类 <!-- spring框架必须定义ContextLoade ...

  2. 1.2(Spring MVC学习笔记) Spring MVC核心类及注解

    一.DispatcherServlet DispatcherServlet在程序中充当着前端控制器的作用,使用时只需在web.xml下配置即可. 配置格式如下: <?xml version=&q ...

  3. 【Spring注解驱动开发】AOP核心类解析,这是最全的一篇了!!

    写在前面 昨天二狗子让我给他讲@EnableAspectJAutoProxy注解,讲到AnnotationAwareAspectJAutoProxyCreator类的源码时,二狗子消化不了了.这不,今 ...

  4. SpringMVC入门(基于注解方式实现)

    ---------------------siwuxie095                             SpringMVC 入门(基于注解方式实现)         SpringMVC ...

  5. SpringMVC中的常用注解

    RequestParam 作用: 用于  将请求参数区数据  映射到  功能处理方法的参数上. 属性: value  请求参数中的名称 required   请求参数中是否必须提供此参数. 默认值: ...

  6. @ResponseBody 返回json字符串的核心类是org.springframework.http.converter.json.MappingJacksonHttpMessageConverter,它使用了Jackson 这个开源的第三方类库。主要是以下两个jar包:jackson-core-asl-1.6.4.jar;jackson-mapper-asl-1.6.4.jar

    @ResponseBody 返回json字符串的核心类是org.springframework.http.converter.json.MappingJacksonHttpMessageConvert ...

  7. SpringMvc核心流程以及入门案例的搭建

    1.什么是SpringMvc Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 M ...

  8. springmvc入门基础之注解和参数传递

    一.SpringMVC注解入门 1. 创建web项目2. 在springmvc的配置文件中指定注解驱动,配置扫描器 <!-- mvc的注解驱动 --> <mvc:annotation ...

  9. springmvc学习笔记(常用注解)

    springmvc学习笔记(常用注解) 1. @Controller @Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用@Controller注解定义的控制器有如 ...

随机推荐

  1. .net 获取远程访问的ip

    这两天一直做获取远程访问的ip和自己的ip相关的问题. 在解决获取ip相关问题的时候,主要使用了上下文对象,httpcontext对象.原理很简单,内部有两大对象,request和response.里 ...

  2. ValueOf()和toString()

    var colors = ["red", "blue", "green"]; // 创建一个包含3 个字符串的数组 console.log( ...

  3. 解析Object.defineProperty的作用

    对象是由多个名/值对组成的无序的集合.对象中每个属性对应任意类型的值. 定义对象可以使用构造函数或字面量的形式: 除了以上添加属性的方式,还可以使用Object.defineProperty定义新属性 ...

  4. nginx 反向代理 负载均衡

    nginx反向代理 用户(浏览器) 请求网站资源 -> 直接定位到django后台(所有的请求压力,都直接给了后台) django默认对并发性 很差,并且处理网页的静态资源,效率很差 10万个并 ...

  5. SpringBoot整合RabbitMQ-服务安装

    本系列是学习SpringBoot整合RabbitMQ的练手,包含服务安装,RabbitMQ整合SpringBoot2.x,消息可靠性投递实现等三篇博客. 学习路径:https://www.imooc. ...

  6. 在Bootstrap开发框架的前端视图中使用@RenderPage实现页面内容模块化的隔离,减少复杂度

    在很多开发的场景中,很多情况下我们需要考虑抽象.以及模块化等方面的内容,其目的就是为了使得开发的时候关注的变化内容更加少一些,整体开发更加简单化,从而减少开发的复杂度,在Winform开发的时候,往往 ...

  7. Java 200+ 面试题补充③ Dubbo 模块

    昨天在我的 Java 面试粉丝群里,有一个只有一年开发经验的小伙伴只用了三天时间,就找到了一个年薪 20 万的工作,真是替他感到开心. 他的经历告诉我们:除了加强自我实战经验之外,还要努力积累自己的理 ...

  8. DisplayAttribute没作用,why?

    namespace WebBulletinBoard.DataAccess { using System; using System.ComponentModel.DataAnnotations; u ...

  9. building 'twisted.test.raiser' extension error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    Error msg: building 'twisted.test.raiser' extension error: Microsoft Visual C++ 14.0 is required. Ge ...

  10. Python_Bool

    Bool Ture和False两种状态:判定代码的真假. 真 print (3 > 2) # 结果: True 假 print (3 > 4) # 结果: False 数据类型 print ...