APP下载

Springmvc入门和工作流程分析

消息来源:baojiabao.com 作者: 发布时间:2026-05-15

报价宝综合消息Springmvc入门和工作流程分析

springmvc入门和原理分析

学习目标

1、springmvc简介

2、搭建第一个专案

3、工作原理分析

4、springmvc中的常用操作

学习内容

1、springmvc简介

mvc模式:model 模型(dao+service) view检视(jsp) controller控制器:(servlet)

spring框架:springmvc是一个子模组,实现了mvc模式的 一个轻量级的web层的请求和响应的框架

2、搭建第一个专案

1、引入spring相关的jar包

org.springframework

spring-web

${spring.version}

org.springframework

spring-webmvc

${spring.version}

2、配置web.xml中的 spring监听器和spring mvc 的前端控制器

org.springframework.web.context.ContextLoaderListener

contextConfigLocation

classpath:applicationContext.xml

mvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:mvc.xml

1

mvc

*.action

3、配置springmvc的配置档案

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

4、建立controller类

@Controller

public class TestController {

//请求对映的注解:将位址列请求的路径和对应的方法进行对映

@RequestMapping("/test1")

public String test1(){

System.out.println("控制器中的方法...");

return "test1"; //检视的名字

}

@RequestMapping("/test2")

public ModelAndView test2(){

//预设采用的服务器转发:forward;

ModelAndView modelAndView= new ModelAndView();

//系结资料 :request.setAttribute()

modelAndView.addObject("key", "value");

//检视的名字 :jsp页面的名称

modelAndView.setViewName("test2");

return modelAndView;

}

}

5、配置服务器、部署并测试

3、工作原理分析

1、发起请求到前端控制器(DispatcherServlet )

2、前端控制器请求HandlerMapping查询Handler(可以根据xml、注解进行查询)

3、处理器对映器HandlerMapping向前端控制器DispatcherServlet 返回Handler

4、前端控制器DispatcherServlet 呼叫处理器界面卡HandlerAdapter 执行Handler

5、处理器界面卡HandlerAdapter 执行Handler

6、Handler执行完给处理器界面卡返回ModelAndView

7、处理器界面卡向前端控制器返回ModelAndView (ModelAndView 是SpringMvc的底层物件 包括model和view)

8、前端控制器请求检视解析器去解析检视

  根据逻辑检视名解析成真正的检视(jsp)

9、检视解析器向前端控制器返回view

10、前端控制器进行检视渲染

  检视渲染将模型资料(模型资料在ModelAndView物件中)填充到request域

11、前端控制器向用户响应结果

4、常用操作

转发和重定向

预设属于转发:forwoard

重定向:return "redirect:test2";

如何处理中文乱码

在web.xml中配置编码过滤器

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

utf-8

CharacterEncodingFilter

/*

在controller中如何接受引数

1、单独接受多个引数:

表单:

名字:

年龄:

性别:男女

控制器:

@RequestMapping(value = "/reg1", method = RequestMethod.POST)

public String reg1(String name,Integer age,String sex){

System.out.println("name:"+name+"--age:"+age+"--sex:"+sex);

return "ok";

}

2、以实体接受

@RequestMapping(value = "/reg2", method = RequestMethod.POST)

public String reg2(User user){

System.out.println("name:"+user.getName()+"--age:"+user.getAge()+"--sex:"+user.getSex()+"--address:"+user.getAddress());

return "ok";

}

3、以@RequestParam注解接受

@RequestMapping(value = "/reg3", method = RequestMethod.POST)

public String reg3(@RequestParam(value = "name", required = true, defaultValue = "hello")String str){

System.out.println("接受的引数:"+str);

return "ok";

}

4、使用request获取(不推荐)

@RequestMapping(value = "/reg4", method = RequestMethod.POST)

public String reg4(HttpServletRequest request){

String name=request.getParameter("name");

String sex=request.getParameter("sex");

System.out.println(name+":"+sex);

return "ok";

}

如何将controller中的资料返回(回传资料)

1、返回ModelAndView

@RequestMapping("/test2")

public ModelAndView test2(){

//预设采用的服务器转发:forward;

ModelAndView modelAndView= new ModelAndView();

//系结资料 :request.setAttribute()

modelAndView.addObject("key", "value");

//检视的名字 :jsp页面的名称

modelAndView.setViewName("test2");

return modelAndView;

}

2、注入Map

@RequestMapping(value = "/reg2", method = RequestMethod.POST)

public String reg2(User user, Map map){

System.out.println("name:"+user.getName()+"--age:"+user.getAge()+"--sex:"+user.getSex()+"--address:"+user.getAddress());

map.put("user", user);

return "ok";

}

页面上取资料:

${user.name}---${user.age}---${user.sex}

常用注解

@Controller:标注是一个控制器的bean

@RequestMapping("/地址"):将请求的地址和控制器中的类或者方法进行对映

@ReuestParam():获取指定名称的引数的值,required:是否必须传递;defaultValue:预设值

(未完...)

总结

1、搭建第一个springmvc专案

2、工作流程分析

2020-01-17 04:49:00

相关文章