今天,进行新篇章,煌sir 带你get到SpringMVC快速入门吧,话不多说,开干!!!
SpringMVC-入门
一. 简述
Spring web mvc是表现层(WEB层)的框架,它是Spring框架的一部分。
替代(servlet)
访问springMVC的web层: xxx.action
核心控制器:相当于BaseServlet
Controller:相当于servlet
核心控制器:控制当前请求发送给哪个Controller
控制当前响应跳转到哪个JSP
接下来,直接上操作, 安排!!!
二. 入门案例1:HelloWorld
1、创建maven-webapp项目,导入pom.xml,修改xml中的项目名,创建java和resources。
web.xml替换3.1版本,配置tomcat环境
2、创建package包, 导入配置类
3、定义Controller ,检查当前控制器是否被spring扫描
Demo1Controller
/**
** Controller:标明当前类是一个控制器*
** RequestMapping:配置当前控制器 在浏览器上的访问路径*
/
@Controller @RequestMapping("/d1"*)public class Demo1Controller {
}
代码实现
demo1.jsp
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以上即可
入门总结【重点】
项目启动加载的流程图:
发送请求的流程图:
传统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:重定向【重点】
流程图
代码实现
Demo1Controller:
@RequestMapping("/run3")
public String run3(){
System.out.println(“run3”);
return “redirect:/demo3.jsp”;
}
代码总结
内网:redirect:/资源名
外网:redirect:http://网址
代码修改:重定向并传递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层框架
核心控制器(前端控制器):
- 判断运行哪个Controller
- 判断跳转哪个JSP页面
*.action
@Controller:标记当前类是一个控制器,把当前类交给spring管理。
@RequestMapping:用来为当前类/方法 设置访问路径 /
方法参数:
Model : addAttribute()
HttpServletRequest: setAttribute()
HttpSession
SpringMVC跳转:
return “/路径”; 请求转发
return “redirect:/路径”; 重定向
return “redirect:http://网址”; 重定向
看完恭喜你,又知道了一点点!!!
你知道的越多,不知道的越多!
~感谢志同道合的你阅读, 你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!