springMVC学习二 原始springMVC环境搭建

第一步:导入jar包

第二步:配置DispatcherServlet

  DispatcherServlet本质是一个Servlet,在spring-webmvc包中,在servlet2.5之前  springMVC配置文件的默认命名规则为xxx-serlvet.xml,xxx是为DispatcherServlet起的servlet的名称,也就是<servlet-name>标签中的值,并且默认情况下,xxx-servlet.xml文件的位置是WEB-INF目录下,不过从servlet2.5之后可以通过servlet的初始化参数进行配置,也就是通过<init-param>标签来配置,

【注意:在spring与dynamic web project工程进行整合事,有一个spring的配置文件加载位置的配置,是通过web应用工程的配置信息,也就是<context-param>标签来配置】

org.springframework.web.servlet.DispatcherServlet的继承关系图

配置文件信息

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

  <servlet>
      <!--
      DispatcherServlet本质是一个Servlet,在spring-webmvc包下,在servlet2.5之前
      springMVC配置文件的默认命名规则为xxx-serlvet.xml,xxx是为DispatcherServlet起的servlet的名称,
      也就是<servlet-name>标签中的值,并且默认情况下,xxx-servlet.xml文件的位置是WEB-INF目录下

      不过从servlet2.5之后可以通过servlet的初始化参数进行配置,也就是通过<init-param>标签来配置,
      【注意:在spring与dynamic web project工程进行整合事,有一个spring的配置文件加载位置的配置,

      是通过web应用工程的配置信息,也就是<context-param>标签来配置】
          org.springframework.web.servlet.DispatcherServlet
       -->
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!-- 修改springMVC配置文件的路径和名称 -->
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
      </init-param>
      <!-- 自启动配置,表示在tomcat一启动,就加载该Servlet -->
      <load-on-startup>1</load-on-startup>

  </servlet>
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

第三步;配置SpringMVC配置文件

springMVC配置文件中要配置,

(1)处理器handler,也就是controller,处理器部门是需要程序员自己编写代码,继承一个Controller接口,或者采用Controller与RequestMapping注解,处理器是处理器适配器(HandlerAdapter)调用的,

(2)处理器映射器HanderMapping,本质是一个对一个Map容器进行封装,把key是请求路径,value是处理器,就是把请求路径和处理器做了一个对应,处理器映射器是DispatcherServlet调用的,调用完之后会返回一个HanderExecutionChain,另外一种说法是HandlerMapping 将会把请求映射为HandlerExecutionChain 对象,HanderExecutionChain会封装一个Handler 处理器(页面控制器)对象、多个HandlerInterceptor 拦截器

(3)处理器适配器HanderAdapter,也是由DispaterServlet进行调用,HandlerAdapter 将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器; 【如果不配置处理器映射器,会采用默认的,可以不用配置】

(4)视图解析器:也是又DsipatcherServlet进行调用,把ModelAndView进行解析,返回Veiw给DispaterServlet。【如果不配置,采用默认的】

<?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
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd"> 

    <!-- 注册  处理器,也就是controller -->
    <bean id="handler" class="com.xxxx.controller.DemoController"></bean>

    <!-- 注册HandlerMapping  处理器映射器
        会根据url请求解析出应该调用哪一个 处理器,但是调用并不是处理器映射器调用
     -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="urlMap">
            <map>
                <!-- key解析出来的请求的逻辑名
                    value-ref代表要调用的控制器
                 -->
                <entry key="demo" value-ref="handler" ></entry>
            </map>
        </property>
    </bean>
    <!-- 注册  处理器适配器,处理器适配器会调用  处理器
        处理器适配器可以不用配置,会走默认值
    -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>

    <!-- 在spring容器中 ,注册视图解析器
        同样视图解析器也可以不用配置,也会走默认值
        InternalResourceViewResolver的父类中有两个属性:prefix,suffix  代表前缀和后缀
        ModelAndView modelAndView =new ModelAndView("main");
        前缀和后缀会对ModelAndView中的参数进行拼接,拼接成"/main.jsp",
        一般请情况下,我们会使用默认的视图解析器,但是有时候我们会在WebContent下建立一个page目录用来存放
        jsp文件,此时在写ModelAndView modelAndView =new ModelAndView("main.jsp");是,需要前面加上
        page/main.jsp,为了省略page/一般会把prefix配置成page/

        在返回ModelAndView时,默认会走请求转发,在InternalResourceViewResolver父类UrlBasedViewResolver
        中有
        public static final String REDIRECT_URL_PREFIX = "redirect:";
        public static final String FORWARD_URL_PREFIX = "forward:";
        可以通过配置让其走重定向

     -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
</beans>

第四步:编写处理器,也就是controller

public class DemoController implements Controller{

    @Override
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("执行了springmvc的控制器");
        //具备视图和传值的功能
        ModelAndView modelAndView =new ModelAndView("main");

        return modelAndView;
    }

}

第五步:运行

让项目跑在tomcat中,然后通过:http://localhost:8080/springmvc01/demo进行访问,会执行DemoController中的handleRequest()这个方法。

注意访问路径中的demo,这个值就是在springmvc配置文件中,处理器映射器的中urlMap中的一个key

 

原文地址:https://www.cnblogs.com/cplinux/p/9783433.html

时间: 2024-11-05 20:41:21

springMVC学习二 原始springMVC环境搭建的相关文章

Egret学习(二)--windows下环境搭建

准备材料 安装Node.js TypeScript编辑器 HTTP服务器(可选) Chorme(可选) Egret 安装Node.js 打开www.nodejs.org 下载安装(全部next,全默认) node -v验证安装以及版本 测试npm命令(如果不行就进去提示的目录创建npm文件夹,  appdata是隐藏文件夹) 安装编辑器 推荐使用WebStorm 打开www.jetbrains.com/webstorm/ Download WebStorm 安装 安装HTTP服务器 推荐使用XA

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

springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需求 表现层实现 list绑定 需求 表现层实现 map绑定 本文主要介绍注解开发的集合类型參数绑定,包含数组绑定,list绑定以及map绑定 数组绑定 需求 商品批量删除,用户在页面选择多个商品.批量删除. 表现层实现 关键:将页面选择(多选)的商品id,传到controller方法的形參,方法形參使用数组接收页面请求的多个商

springmvc学习笔记(14)-springmvc校验

springmvc学习笔记(14)-springmvc校验 springmvc学习笔记14-springmvc校验 校验理解 springmvc校验需求 环境准备 配置校验器 在pojo中添加校验规则 捕获和显示校验错误信息 分组校验 本文主要介绍springmvc校验,包括环境准备,校验器配置,pojo张添加校验规则,捕获和显示检验错误信息以及分组校验简单示例. 校验理解 项目中,通常使用较多是前端的校验,比如页面中js校验.对于安全要求较高点建议在服务端进行校验. 服务端校验: 控制层con

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

springmvc学习笔记(13)-springmvc注解开发之集合类型参数绑定 springmvc学习笔记13-springmvc注解开发之集合类型参数绑定 数组绑定 需求 表现层实现 list绑定 需求 表现层实现 map绑定 本文主要介绍注解开发的集合类型参数绑定,包括数组绑定,list绑定以及map绑定 数组绑定 需求 商品批量删除,用户在页面选择多个商品,批量删除. 表现层实现 关键:将页面选择(多选)的商品id,传到controller方法的形参,方法形参使用数组接收页面请求的多个商

[java基础学习笔记]Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行

本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/25745945 主要内容: ---------------------------------------------------| 1.JDK的下载与安装                            | 2.编写第一个java程序HelloWorld     | 3.编译执行HelloWorld                      

深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3

紧接着上一篇的文章<深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动>,这篇文章,主要讲解如何安装CUDA+CUDNN,不过前提是我们是已经把NVIDIA显卡驱动安装好了 一.安装CUDA CUDA(Compute Unified Device Architecture),是英伟达公司推出的一种基于新的并行编程模型和指令集架构的通用计算架构,它能利用英伟达GPU的并行计算引擎,比CPU更高效的解决许多复杂计算任务,想使用GPU就必须要使用CUDA.

Python学习第一弹——Python环境搭建

一.Python简介: Python,是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起.常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用

Eclipse+Spring学习(一)环境搭建(转)

最近由于投了一家公司实习,他要java工程师,而我大学3年的精力都花到了ASP.NET和前端上面,到找工作的时候才发现大公司不要.NET的,所以马上转型java...由于网上的高手都不屑于写这类文章,或者写了都是比较模糊的,如果要快速入手比较费时间了,至少得多看几篇. 开发环境:eclipse-SDK-3.6-win32,spring-framework-2.5.6(已经有3.0.5的了,但是我昨天才开始学习这个,所以按照网上的来,以防部分文件名变动之类的) 一.下载Spring包首先到spri

Beaglebone Back学习三(开发环境搭建)

开发环境搭建 1 Ubuntu环境搭建 2 Window环境搭建 3 开发板环境搭建 1 Ubuntu环境搭建 (1)安装必要的网络工具 samba nfs tftp vmware-tools samba nfs apt-get install nfs-kernel-server vim  /etc/exports  (/path/to/nfs  *(rw,sync,no_root_squash) ) /etc/init.d/nfs-kernel-server restart (2)配置通信网络