前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springmvc入门

Springmvc入门

原创
作者头像
爱撒谎的男孩
发布2018-05-10 18:42:49
8853
发布2018-05-10 18:42:49
举报
文章被收录于专栏:码猿技术专栏码猿技术专栏

Springmvc入门

作用

  • 解决V(View)C(Controller)的交互问题,即解决了Controller如果接收了用户的请求,并将结果响应给用户的问题
  • springmvc约定了一套处理用户请求的流程

Springmvc的核心组件

  1. DispatcherServlet :前端控制器,请求入口
  2. HandlerMapping : 控制器,其中存放着处理请求的组件,请求派发
  3. Controller :控制器,处理请求
  4. ModelAndView :模型,封装业务处理结果和视图
  5. ViewResolver : 视图解析器,显示视图

springmvc处理流程

  1. 用户发出请求,请求交给前端控制器(DispatcherServlet)处理
  2. DispatcherServlet通过HandlerMapping找到Controller中相对应的组件处理请求
  3. 执行Controller组件约定方法处理请求,在约定方法调用模型组件(Service,Dao)完成业务逻辑,约定方法返回一个ModelAndView对象,封装了处理结果和视图名称信息
  4. 控制器接收了ModelAndView之后,调用视图解析器(ViewResolver)组件,定位到指定的View(JSP)并且传递处理结果,生成响应界面结果

创建一个Springmvc项目

  • 创建maven项目
  • 导入web.xml
  • 配置tomact项目运行环境(项目右击 --> properties - > Target Runtimes)
  • 配置pom.xml依赖
代码语言:javascript
复制
<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.12.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
</dependencies>
  • 添加springmvc的配置文件在resource目录下(applicationContext.xml)
    • 开启组件扫描
    • 配置视图解析器,用来定义跳转的视图,在视图解析中,最后的jsp文件在 perfix + controller中返回的字符串 + suffix
代码语言:javascript
复制
<?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:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">
​
    <!-- 开启组件扫描 -->
    <context:component-scan base-package="cn.tedu.springmvc"></context:component-scan>
​
    <!-- 配置视图解析器:
        prefix:表示前缀
        suffix:表示后缀
        如果controller中返回的是success这个字符串,那么对应的视图是/WEB-INF/JSP/success.jsp这个视图
    -->
​
    <bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/JSP/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>
  • 配置前端控制器(DispatcherServlet),在web.xml中配置
代码语言:javascript
复制
    <!-- 配置前端控制器DispatcherServlet -->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
​
        <!-- 配置springMVC配置文件的路径,这里如果想要使用默认的可以不用配置 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!-- classpath表示根路径,这里找的项目根路径下的applicationContext.xml -->
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
​
        <!-- 当tomcat启动的时候就加载,设置启动的优先级 -->
        <load-on-startup>1</load-on-startup>
​
    </servlet>
​
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <!-- 配置分发规则,这个是用来控制所有的请求,只要是请求后缀为.do的都会拦截分发-->
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
  • cn.tedu.springmvc.controller包中创建一个UserController
代码语言:javascript
复制
@Controller
@RequestMapping("/user")
public class UserController {
​
    @RequestMapping("/hello.do")
    public String testHello(){
        System.out.println("Hello World");
        return "success";  //返回视图,这里通过视图解析器之后对应的是 /WEB-INF/JSP/success.jsp
    }
}
  • WEB-INF/JSP/中创建一个success.jsp页面,添加一个<h1>Hello World</h1>
  • 此时启动项目,打开浏览器输入http://localhost:8080/Springmvc_01/user/hello.do,那么就会看见成功跳转到success.jsp页面,显示文字

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Springmvc入门
    • 作用
      • Springmvc的核心组件
        • springmvc处理流程
          • 创建一个Springmvc项目
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档