今天,进行新篇章,煌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://网址”; 重定向
看完恭喜你,又知道了一点点!!!
你知道的越多,不知道的越多!
~感谢志同道合的你阅读, 你的支持是我学习的最大动力 !
加油 ,陌生人一起努力,共勉!!