全网最实用详解: SpringMVC入门

  • Post author:
  • Post category:其他


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




SpringMVC-入门



一.

简述

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

替代(servlet)

img

访问springMVC的web层: xxx.action

核心控制器:相当于BaseServlet

Controller:相当于servlet

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

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

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



二.

入门案例1:HelloWorld

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

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

img

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

img

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

Demo1Controller


/

**

** Controller:标明当前类是一个控制器*

** RequestMapping:配置当前控制器 在浏览器上的访问路径*



/



@Controller


@RequestMapping(


“/d1”

*)


public class

Demo1Controller {

}




代码实现

img

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以上即可




入门总结【重点】

项目启动加载的流程图:

img

发送请求的流程图:

img

传统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作用域数据【重点】




流程图



img



代码实现-方式一(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:重定向【重点】


流程图

img




代码实现

Demo1Controller:

@RequestMapping(

“/run3”

)


public

String run3(){


System.

out

.println(

“run3”

);


return


“redirect:/demo3.jsp”

;

}






代码总结


内网:redirect:/资源名


外网:redirect:http://网址

img




代码修改:重定向并传递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://网址”; 重定向

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


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


~感谢志同道合的你阅读, 你的支持是我学习的最大动力 !


加油 ,陌生人一起努力,共勉!!



版权声明:本文为qq_43705131原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。