今天,进行新篇章,煌sir 带你get到SpringMVC快速入门吧,话不多说,开干!!!

SpringMVC-入门

一. 简述

Spring web mvc是表现层(WEB层)的框架,它是Spring框架的一部分。

替代(servlet)

springmvc 知识点介绍_springmvc 知识点介绍

访问springMVC的web层: xxx.action

核心控制器:相当于BaseServlet

Controller:相当于servlet

核心控制器:控制当前请求发送给哪个Controller

控制当前响应跳转到哪个JSP

接下来,直接上操作, 安排!!!

二. 入门案例1:HelloWorld

1、创建maven-webapp项目,导入pom.xml,修改xml中的项目名,创建java和resources。

web.xml替换3.1版本,配置tomcat环境

springmvc 知识点介绍_java_02

2、创建package包, 导入配置类

springmvc 知识点介绍_MVC_03

3、定义Controller ,检查当前控制器是否被spring扫描

Demo1Controller

/**
** Controller:标明当前类是一个控制器*
** RequestMapping:配置当前控制器 在浏览器上的访问路径*
/
@Controller @RequestMapping("/d1"*)

public class Demo1Controller {

}

代码实现

springmvc 知识点介绍_spring_04

demo1.jsp

springmvc 知识点介绍_MVC_05

Demo1Controller

/**
** Controller:标明当前类是一个控制器*
** RequestMapping:配置当前控制器 在浏览器上的访问路径*
/
@Controller @RequestMapping("/d1"*)

public class Demo1Controller {

@RequestMapping("/run1")
public String run1(){
System.out.println(“helloWorld”);
return “/hello.jsp”;
}
}

hello.jsp

<h1>hello</h1>

EL表达式未解析BUG说明

web.xml若为2.x版本,EL表达式在springMVC中未解析

解决方案:把web.xml版本替换成3.x以上即可

入门总结【重点】

项目启动加载的流程图:

springmvc 知识点介绍_MVC_06

发送请求的流程图:

springmvc 知识点介绍_springmvc 知识点介绍_07

传统Web项目中,程序的入口是web.xml文件。

在spring中提供WebApplicationInitializer接口,表示服务器启动初始化。也就是说接口实现类中编写的内容,就是web.xml文件中配置的内容。

类或方法

描述

AnnotationConfigWebApplicationContext

WEB环境下spring工厂

servletContext.addFilter(name , Class)

添加过滤器,等效

servletContext.addServlet(name , Class)

添加servlet,等效

过滤器相关方法ServletRegistration.Dynamic

描述

addMapping(urlPatterns)

追加过滤路径

setLoadOnStartup(int)

设置启动顺序

三. 入门案例2:请求转发并传递request作用域数据【重点】

流程图

代码实现-方式一(springMVC独有)

Demo1Controller

@RequestMapping("/run2")
public String run2(Model model){
 System.out.println(“run2”);
//向request作用域设置键值对
 model.addAttribute(“uname”,“老煌”);
//请求转发
return “/demo2.jsp”;
 }

demo2.jsp

<h1>${uname}</h1>

代码实现-方式二(springMVC支持的)

Demo1Controller

@RequestMapping("/run2_2")
public String run2_2(HttpServletRequest request){
 System.out.println(“run2”);
//向request作用域设置键值对
 request.setAttribute(“uname”,“老煌”);
//请求转发
return “/demo2.jsp”;
 }

demo2.jsp

<h1>${uname}</h1>

小结:

Controller的方法上可以填写Model或者HttpServletRequest的参数,

方法执行时,Spring会自动为参数赋值(IOC注入)。

建议:两者都完全掌握

request****对象可以获取session和servletContext对象
request.getSession()****;
request.getServletContext():

三. 入门案例3:重定向【重点】

流程图

springmvc 知识点介绍_java_08

代码实现

Demo1Controller:

@RequestMapping("/run3")
public String run3(){
 System.out.println(“run3”);
return “redirect:/demo3.jsp”;
 }
代码总结

内网:redirect:/资源名

外网:redirect:http://网址

springmvc 知识点介绍_java_09

代码修改:重定向并传递session作用域数据

需求:

Run3方法向session存储键值对

demo3.jsp在session中获取键值对

方式一:

Demo1Controller:

@RequestMapping("/run3_1")
public String run3_1(HttpServletRequest request){
 System.out.println(“run3_1”);
//向session中保存键值对
 request.getSession().setAttribute(“uname”,“老王”);
return “redirect:/demo3.jsp”;
 }

demo3.jsp

<h1>demo3—${uname}</h1>
方式二:

Demo1Controller:

@RequestMapping("/run3_2")
public String run3_2(HttpSession session){
 System.out.println(“run3_1”);
//向session中保存键值对
 session.setAttribute(“uname”,“老王”);
return “redirect:/demo3.jsp”;
 }

demo3.jsp

<h1>demo3—${uname}</h1>

今日总结:

springMVC:spring框架的一部分,web层框架

核心控制器(前端控制器):

  1. 判断运行哪个Controller
  2. 判断跳转哪个JSP页面

*.action

@Controller:标记当前类是一个控制器,把当前类交给spring管理。

@RequestMapping:用来为当前类/方法 设置访问路径 /

方法参数:

Model : addAttribute()
HttpServletRequest: setAttribute()
HttpSession
SpringMVC跳转:
return “/路径”; 请求转发
return “redirect:/路径”; 重定向
return “redirect:http://网址”; 重定向

看完恭喜你,又知道了一点点!!!

你知道的越多,不知道的越多!

~感谢志同道合的你阅读, 你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!