Springmvc入门

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处理流程

创建一个Springmvc项目

  • 创建maven项目
  • 导入web.xml
  • 配置tomact项目运行环境(项目右击 --> properties - > Target Runtimes)
  • 配置pom.xml依赖
<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
<?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中配置
    <!-- 配置前端控制器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
@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页面,显示文字
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容

  • 额(⊙o⊙)…继续记笔记。。。看看SpringMVC从入门到放弃之第一章Web MVC简介一个在实验室的时候就是这...
    键盘瞎阅读 2,094评论 2 10
  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 817评论 0 0
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,423评论 1 92
  • 也许是因为太多的作业都积压在一起吧,这两天一直很烦躁,听到一点点声音都想发脾气,今天早晨最为严重。 七点多被床上床...
    口袋里的猪c阅读 154评论 0 0
  • 县城离家近二十公里,如果没有什么重要的事情,平时我是及少进城的。即使偶尔需要去办什么事情,也是来去...
    乡土辣妈阅读 868评论 3 2