博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC-1-(简介及HelloWord)
阅读量:4501 次
发布时间:2019-06-08

本文共 4394 字,大约阅读时间需要 14 分钟。

首先我们来看一下servlet的处理请求的方式:

一:SpringMVC简介:

  一)SpringMVC中的几个重要组件

  1.DispatchServlet:

      前端控制器,mvc模式中的c,是整个流程的控制中心,由他来调用其他组件来处理用户的请求,它的存在降低了组件之间的耦合性(组件可以随意的替换和自定义),

      接受所有的请求(配置成 / 不包含jsp)

  2.HandlerMapping:

      解析请求格式,判断具体要去调用哪个Controller,他回去提取请求地址中的一些字段这个字段就是我的controller名字(比如:localhost:8080/hello,提取到hello)

      有多种映射方式:配置文件方式,实现接口方式,注解方式等等(下边的HelloWord中实现了两种方式:实现接口的方式和接口的方式)

  3.Handler:后端处理器;也就是我们定义的controller类

  4.HanelerAdapter:负责调用具体的Controller,其实是他来执行调用controller

  5.ViewResovler:视图解析器,解析结果,准备跳转到那个具体的物理视图

 

  SpringMVC流程图:

   二)SpringMVC容器

  是Spring容器的子类,他可以获取Spring容器中的内容,Spring容器中不能获取SpringMVC中的内容,

  他是在Dispatcher初始化的时候就完成创建。也可以通过下边代码来设置在tomcat启动的时候就创建

1

  三)HelloWord实现:

    1.web.xml

    2.springmvc.xml

    3.controller

    4.pom.xml

 

    web.xml文件(无论xml方式还是注解方式web.xml都一样)

   
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
springmvc
/

      (一)xml方式配置(不常用,但是更完整表达mvc组建的使用)这种方式一个controllerl类里边只能写一个请求

        一)方式一:映射器和处理器为(BeanNameUrlHandlerMapping 和 SimpleControllerHandlerAdapter)

   
--------------注意:hello前边的/  
  
   
public class HelloController implements Controller {    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse spn) throws Exception {        System.out.println("hello springMVC控制器");        //也可以通过构造器来给视图命名        //ModelAndView hello = new ModelAndView();     ModelAndView hello = new ModelAndView("main");     hello.setViewName("main");      return hello; } }

        二)方式二:映射器和处理器为(SimpleUrlHandlerMapping 和 SimpleControllerHandlerAdapter)

  方式一和方式二区别在于property中的参数不一样一个是mappings一个是urlMap   方式一:
  方式二:
helloController
public class HelloController implements Controller {    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse spn) throws Exception {        System.out.println("hello springMVC控制器");        //也可以通过构造器来给视图命名        //ModelAndView hello = new ModelAndView();     ModelAndView hello = new ModelAndView("main");     hello.setViewName("main");      return hello; } }

      (二)注解方式配置映射器和处理器为(RequestMappingHandlerMapping 和 RequestMappingHandlerAdapter

@Controllerpublic class HelloController {    @RequestMapping("/hello")    public ModelAndView Hello(HttpServletRequest Request, HttpServletResponse Response) throws Exception {        System.out.println("hello springMVC控制器");        ModelAndView hello = new ModelAndView("main");        return hello;    }}

  注意:

    使用xml方式实现的时候controller必须实现Controller类,并重写其中的方法HandlerRequest();

    使用注解的方式无需实现任何类,但是要在类上添加@Controller注解,方法上添加@RequestMapping("/hello")

  pom.xml文件

org.springframework
spring-webmvc
4.0.3.RELEASE

  四)简化配置

    将HandlerMapping 和 HandlerAdapter 两句合成一句

   

  五):静态资源访问

 

   

 

  六):乱码问题解决(web.xml中配置字符编码过滤器)

encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceRequestEncoding
true
forceResponseEncoding
true
encodingFilter
/*

 

 

  

  

 

转载于:https://www.cnblogs.com/a103007/p/9779509.html

你可能感兴趣的文章
【转载】Visual Studio2017中如何设置解决方案中的某个项目为启动项目
查看>>
Axios跨域实例
查看>>
ubuntu下安装pyaudio
查看>>
单片机 电子电路 嵌入式 毕设 课设 私活 代做
查看>>
notepad++ 安装 hex_editor 十六进制查看插件
查看>>
正则表达式
查看>>
Date类
查看>>
基本类型的数值转换
查看>>
集合、泛型、增强for
查看>>
Public Key Retrieval is not allowed错误
查看>>
Unable to load authentication plugin 'caching_sha2_password'.错误
查看>>
The server time zone value '乱码' 错误
查看>>
require.js的用法
查看>>
基础语言知识C++
查看>>
如何使电脑彻底崩溃!!!!(不要干坏事哦)
查看>>
简单练习题
查看>>
记账本,C,Github,service
查看>>
约数定理(two)
查看>>
Pyenv和pip的安装及配置
查看>>
字典dict
查看>>