SpringMVC深入使用

(一)基于XML配置的使用

(1)配置

1.SpringMVC基础配置

2.XML配置Controller,HandlerMapping组件映射

3.XML配置ViewResolver组件映射

(2)步骤

1.在pom.xml中导入jar包

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>

2.在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>

</servlet>

<servlet-mapping>

  <servlet-name>SpringMVC</servlet-name>

  <url-pattern>/</url-pattern>

</servlet-mapping>

3.创建一个MyHandler类,并继承Controller

package handle;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class MyHandle implements Controller {

    @Override

    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {

        //装载模型数据和逻辑视图

        ModelAndView modelAndView=new ModelAndView();

        //添加模型数据

        modelAndView.addObject("name","lili");

        //添加逻辑视图

        modelAndView.setViewName("index");

        return modelAndView;

    }

}

4.创建springmvc.xml,并在springmvc中配置HandlerMapping,Handler和视图解析器

<?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.xsd">

<!--配置HandlerMapping,将url请求映射到Handler-->

    <bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

        <!--配置Mapping-->

        <property name="mappings">

            <props>

                <!--配置test请求对应的Handler-->

                <prop key="/test">testHandler</prop>

            </props>

        </property>

    </bean>

    <!--配置Handler-->

    <bean id="testHandler" class="handle.MyHandle"></bean>

    <!--配置视图解析器--><!--将逻辑视图解析成物理视图-->

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <!--配置前缀-->

        <property name="prefix" value="/"></property>

        <!--配置后缀-->

        <property name="suffix" value=".jsp"></property>

    </bean>

</beans>

5.在index.jsp页面上显示

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@page isELIgnored="false" %>

<html>

<head>

    <title>Title</title>

</head>

<body>

${name}

</body>

</html>
(二)基于注解方式的使用

(1)配置

1.SpringMVC基础配置

2. Controller,HandlerMapping通过注解进行映射

3.XML配置ViewResolver组件映射

(2)步骤

1.在pom.xml中导入jar包

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>

2.在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>

</servlet>

<servlet-mapping>

  <servlet-name>SpringMVC</servlet-name>

  <url-pattern>/</url-pattern>

</servlet-mapping>

3.创建一个AnnotationHandler类

package handle;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

import java.util.Map;

//让容器知道这个类是以控制器存在的

@Controller

public class AnnotationHandler {

    /**

     * 业务方法1:ModelAndView完成数据的传递,视图的解析

     */

    @RequestMapping("/ModelAndViewTest")

    public ModelAndView ModelAndViewTest(){

        //创建ModelAndView对象

        ModelAndView modelAndView=new ModelAndView();

        //填充模型数据

        modelAndView.addObject("name","Tom");

        //设置逻辑视图

        modelAndView.setViewName("index");

        return modelAndView;

    }

    /**

     * 业务方法2:Model传值,String进行视图解析

     */

    @RequestMapping("/ModelTest")

    public String ModelTest(Model model){

        //填充模型数据

        model.addAttribute("name","Lulu");

        //设置逻辑视图

        return "index";

    }

    /**

     * 业务方法3:Map传值,String进行视图解析

     */

    @RequestMapping("/MapTest")

    public String MapTest(Map<String,String> map){

        //填充模型数据

        map.put("name","Lisa");

        //设置逻辑视图

        return "index";

    }

}

4.创建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"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<!--将AnnotationHandler自动扫描到IOC容器中-->

    <context:component-scan base-package="handle"></context:component-scan>

    <!--配置视图解析器--><!--将逻辑视图解析成物理视图-->

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <!--配置前缀-->

        <property name="prefix" value="/"></property>

        <!--配置后缀-->

        <property name="suffix" value=".jsp"></property>

    </bean>

</beans>

5.在index.jsp页面上显示

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@page isELIgnored="false" %>

<html>

<head>

    <title>Title</title>

</head>

<body>

${name}

</body>

</html>

SpringMVC学习笔记之---深入使用的更多相关文章

  1. 史上最全的SpringMVC学习笔记

    SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于Spring ...

  2. springmvc学习笔记--REST API的异常处理

    前言: 最近使用springmvc写了不少rest api, 觉得真是一个好框架. 之前描述的几篇关于rest api的文章, 其实还是不够完善. 比如当遇到参数缺失, 类型不匹配的情况时, 直接抛出 ...

  3. springmvc学习笔记---面向移动端支持REST API

    前言: springmvc对注解的支持非常灵活和飘逸, 也得web编程少了以往很大一坨配置项. 另一方面移动互联网的到来, 使得REST API变得流行, 甚至成为主流. 因此我们来关注下spring ...

  4. SpringMVC:学习笔记(8)——文件上传

    SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. ...

  5. springmvc学习笔记(简介及使用)

    springmvc学习笔记(简介及使用) 工作之余, 回顾了一下springmvc的相关内容, 这次也为后面复习什么的做个标记, 也希望能与大家交流学习, 通过回帖留言等方式表达自己的观点或学习心得. ...

  6. springmvc学习笔记(常用注解)

    springmvc学习笔记(常用注解) 1. @Controller @Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用@Controller注解定义的控制器有如 ...

  7. SpringMVC学习笔记之二(SpringMVC高级参数绑定)

    一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...

  8. springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定

    springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...

  9. springmvc学习笔记(19)-RESTful支持

    springmvc学习笔记(19)-RESTful支持 标签: springmvc springmvc学习笔记19-RESTful支持 概念 REST的样例 controller REST方法的前端控 ...

  10. springMVC 学习笔记(一):springMVC 入门

    springMVC 学习笔记(一):spring 入门 什么是 springMVC springMVC 是 spring 框架的一个模块,springMVC 和 spring 无需通过中间整合层进行整 ...

随机推荐

  1. 8天入门docker系列 —— 第七天 让你的container实现跨主机访问

    当你有若干个容器之后,你可能就希望实现容器的跨机部署访问了,比如aspnetcore在一台host上,mysql在另外一个host上,如果要实现这样的功能,需要你借助 docker自带的overlay ...

  2. 使用 cxf的程序 在win10 测试部署时报空指针异常

    2018-11-08 15:50:55.072 DEBUG 21524 --- [nio-8080-exec-1] o.s.b.w.s.f.OrderedRequestContextFilter  : ...

  3. HTTP请求代理类(GET 、 POST 、PUT 、DELETE)

    package com.jm.http.tools; import java.io.BufferedReader; import java.io.IOException; import java.io ...

  4. POJ 1741:Tree(树上点分治)

    题目链接 题意 给一棵边带权树,问两点之间的距离小于等于K的点对有多少个. 思路 <分治算法在树的路径问题中的应用> 图片转载于http://www.cnblogs.com/Paul-Gu ...

  5. HDU 5521:Meeting(最短路)

    http://acm.hdu.edu.cn/showproblem.php?pid=5521 Meeting Problem Description   Bessie and her friend E ...

  6. 充气娃娃什么感觉?Python告诉你

    上期为大家介绍了requests库的基本信息以及使用requests库爬取某东的商品页,收到了很多同学的反馈说期待猪哥的更新,猪哥感到非常开心,今天就带大家来玩一把刺激的! 一.需求背景 在实际开发过 ...

  7. 获取浏览器ip地址

    <script src="http://lib.sinaapp.com/js/jquery/1.8.3/jquery.min.js"></script> & ...

  8. 【MM系列】SAP 采购订单的批量修改

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单的批量修改   前言 ...

  9. ElasticStack学习(五):ElasticSearch索引与分词

    一.正排索引与倒排索引 1.什么是正排索引呢? 以一本书为例,一般在书的开始都会有书的目录,目录里面列举了一本书有哪些章节,大概有哪些内容,以及所对应的页码数.这样,我们在查找一些内容时,就可以通过目 ...

  10. 19.linux文件属性

    1.linux文件属性 ls -lih i查看文件inode,h查看文件大小 文件总共10个属性 inode索引节点编号(唯一的) 文件类型和权限,第一个字符为类型,后面字符为权限 硬链接的数量 文件 ...