您的位置:首页 > 编程语言 > Java开发

Spring MVC简介 及HelloWorld简单实现

2020-01-14 15:26 465 查看

二、Spring MVC 学习

1、Spring MVC简介及简单实现

1.1 Spring MVC简介

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,是Spring 框架的重要模块,将包含业务数据的模块与显示模块的视图解耦,借助于Spring 的容器技术,可以非常方便的搭建Web 项目。

1.2 Spring MVC初始化

SpringMVC项目启动时要完成Spring 容器的初始化和SpringMVC配置的初始化

参考自(https://www.geek-share.com/detail/2687007080.html)

1.3 Spring MVC处理HTTP请求的流程

具体步骤:

  1. 发起请求到前端控制器(DispatcherServlet)
  2. 前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找)
  3. 处理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象,多个HandlerInterceptor拦截器对象),通过这种策略模式,很容易添加新的映射策略
  4. 前端控制器调用处理器适配器去执行Handler
  5. 处理器适配器HandlerAdapter将会根据适配的结果去执行Handler
  6. Handler执行完成给适配器返回ModelAndView
  7. 处理器适配器向前端控制器返回ModelAndView (ModelAndView是springmvc框架的一个底层对象,包括 Model和view)
  8. 前端控制器请求视图解析器去进行视图解析 (根据逻辑视图名解析成真正的视图(jsp)),通过这种策略很容易更换其他视图技术,只需要更改视图解析器即可
  9. 视图解析器向前端控制器返回View
  10. 前端控制器进行视图渲染 (视图渲染将模型数据(在ModelAndView对象中)填充到request域)
  11. 前端控制器向用户响应结果 参考自(https://www.geek-share.com/detail/2691053900.html)

1.4 HelloWord 简单实现

①配置文件

需要的JAR包

web.xml配置文件

<!-- 配置中央处理器 -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- 配置映射路径 -->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

springmvc.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">

<!-- 配置自定义Controller -->
<bean class="com.tcwong.controller.HelloController" name="/hello"></bean>

<!-- 配置处理器映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- 配置Controller适配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
</beans>

controller类

public class HelloController implements Controller {
[@Override](https://my.oschina.net/u/1162528)
public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
ModelAndView view = new ModelAndView();
view.setViewName("/index.jsp");
return view;
}
}

增加jsp 页面

网页显示

②基于注解

springmvc.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

<!-- 注册扫描 -->
<context:component-scan base-package="com.tcwong.*"></context:component-scan>

<!-- mvc注解开启 -->
<mvc:annotation-driven></mvc:annotation-driven>
</beans>

controller 类

[@Controller](https://my.oschina.net/u/1774615)
@RequestMapping("/hello")
public class HelloController {
@RequestMapping("/h1")
public ModelAndView hello1(){
ModelAndView mv = new ModelAndView();
mv.setViewName("/index.jsp");
System.out.println("h1触发");
return mv;
}

@RequestMapping("/h2")
public ModelAndView hello2(){
ModelAndView mv= new ModelAndView();
mv.setViewName("/index.jsp");
System.out.println("h2触发");
return mv;
}
}

转载于:https://my.oschina.net/tcwong/blog/3039809

  • 点赞
  • 收藏
  • 分享
  • 文章举报
chinaichao2949 发布了0 篇原创文章 · 获赞 0 · 访问量 447 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: