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项目

  • 创建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页面,显示文字

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏指尖下的Android

NDK开发环境配置

1,新建项目添加C++支持,让Android Studio自动生成相关的配置文件 2,设置生成的.SO库名和相应的平台库 在配置build.gradle文件...

1481
来自专栏极客编程

在Eclipse中使用Gradle开发web3j以太坊应用

在我们的web3j以太坊开发课程中,预置代码是在终端命令行使用gradle进行构建的。如果希望在熟悉的Eclipse中开发web3j以太坊应用,这个快速教程将告...

1322
来自专栏pangguoming

Neo4j 2.0 生产环境集群搭建

一、在windows上搭建Neo4j ha cluster的配置方法: 例如:建立集群的三台机器的ip分别为:10.230.9.91,10.230.9.92,1...

5734
来自专栏云霄雨霁

SpringMVC--服务端校验笔记

1510
来自专栏跟着阿笨一起玩NET

sql server 2008 express 安装的时提示“重启计算机失败"

打开注册表编辑器(regedit.exe),在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sess...

1311
来自专栏Java技术栈

SpringCloud配置中心高可用搭建

本文通过config server连接git仓库来实现配置中心,除了git还可以使用svn或者系统本地目录都行。 引入依赖 <dependencies> ...

2895
来自专栏龙首琴剑庐

Spring Boot 开发应用热部署

spring-boot-devtools 实现热部署 想在Spring Boot中使用该功能非常简单,添加依赖: <!-- 热部署模块 --> <depende...

2786
来自专栏电光石火

获得PHP版本信息及版本比较

version_compare是一个版本比较工具,当然也可以作为其他的版本比较工具:

843
来自专栏JavaQ

深入Spring Boot (二):Spring Boot对构建系统的支持

Spring Boot强烈建议开发者在使用Spring Boot的时候选择支持依赖管理的构建系统,以获取更好的使用支持,比如Maven或Gradle。因为Mav...

39310
来自专栏JAVA同学会

Spring Cloud 服务的注册与发现(Eureka)

服务发现是微服务架构下最核心的概念。Eureka是服务发现的服务端和客户端,服务端是服务的注册中心,客户端是每一个服务。

1562

扫码关注云+社区

领取腾讯云代金券