用户提交一个请求,服务器端处理器在接收到这个请求后,给出一条欢迎信息,在页面中显示。

第一步:导入jar包

在原有Springjar包基础上添加2个jar包

spring-webmvc-4.2.0.RELEASE.jar  作用:对Spring mvc的实现

spring-context-support-4.2.0.RELEASE.jar  作用:包含支持UI模板,邮件服务,缓存Cache等方面的类

分析配置步骤:

1.在web.xml中配置前端控制器

2.处理器映射器(HandlerMapping)

3.处理器适配器 (HandlerAdaptor)

4.处理器

5.视图解析器(ViewResolver)

注册中央调度器

关于urlpattern的说法:

最好配成*.do

不能配成/*             无法访问*.jsp等动态资源

最好也不要配成/      无法访问静态资源

不得不配成/           Restful编程 rest

问题:/*配法出现404问题

Ⅰ:

不能配置为/*

DispatcherServlet会将向动态页面请求,即向jsp页面的跳转请求也当做是一个普通的Controller请求。中央调度器会调用处理器映射器为其查找相应的处理器。当然是找不到的。jsp页面会报404错误 结论:/*会拦截动态资源

Ⅱ:

方案一:使用Tomcat默认的Servlet解决不得不配成/  解释:上图中:红色标注第三中配置

方案二:使用MVC的default-servlet-handler会将对静态资源的访问请求通过HandlerMapping映射到默认Servlet请求处理器DefaultServletRequestHandler对象。而该处理器调用了Tomcat的DefaultServlet来处理静态资源的访问请求。当然需要引入mvc约束

方式三:使用MVC的resource解决,在Spring3.0.4之后,Spring定义了专门用于处理静态资源请求的处理器ResourceHttpRequestHandler。并且添加了<mvc:resources/>标签,专门用于解决静态资源无法访问问题。

Location:静态资源所在目录 mapping: 对资源的请求 注意:需要Tomcat7支持

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <display-name></display-name>
  7.  
  8. <!-- 1. 配置中央调度器(前端控制器) -->
  9. <servlet>
  10. <servlet-name>springmvc</servlet-name>
  11. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  12. <!-- 3.1指定配置文件applicationContext.xml -->
  13. <init-param>
  14. <param-name>contextConfigLocation</param-name>
  15. <param-value>classpath:applicationContext.xml</param-value>
  16. </init-param>
  17. <!-- 3.2Tomcat启动的时候,Service对象已经到内存 下面该数字要大于等于1,0或者是负数,跟没设置是一样的 -->
  18. <load-on-startup>1</load-on-startup>
  19.  
  20. </servlet>
  21. <!-- 第一种,可以查看图片 -->
  22. <servlet-mapping>
  23. <servlet-name>springmvc</servlet-name>
  24. <url-pattern>*.do</url-pattern>
  25. </servlet-mapping>
  26.  
  27. <!--第二种配置 和applicationContext.xml中的<mvc:default-servlet-handler/> 结合使用-->
  28. <!--<servlet-mapping>
  29. <servlet-name>springmvc</servlet-name>
  30. <url-pattern>/</url-pattern>
  31. </servlet-mapping> -->
  32.  
  33. <!--
  34. 第三种配置
  35. <servlet-mapping>
  36. <servlet-name>springmvc</servlet-name>
  37. <url-pattern>/</url-pattern>
  38. </servlet-mapping>
  39. <servlet-mapping>
  40. <servlet-name>default</servlet-name>
  41. <url-pattern>*.JPG</url-pattern>
  42. </servlet-mapping>
  43. <servlet-mapping>
  44. <servlet-name>default</servlet-name>
  45. <url-pattern>*.jpg</url-pattern>
  46. </servlet-mapping>
  47. <servlet-mapping>
  48. <servlet-name>default</servlet-name>
  49. <url-pattern>*.css</url-pattern>
  50. </servlet-mapping>
  51. <servlet-mapping>
  52. <servlet-name>default</servlet-name>
  53. <url-pattern>*.js</url-pattern>
  54. </servlet-mapping>
  55. <servlet-mapping>
  56. <servlet-name>default</servlet-name>
  57. <url-pattern>*.png</url-pattern>
  58. </servlet-mapping> -->
  59.  
  60. <welcome-file-list>
  61. <welcome-file>index.jsp</welcome-file>
  62. </welcome-file-list>
  63. </web-app>

定制处理器:

  1. package cn.happy.controller;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.springframework.web.servlet.ModelAndView;
  7. import org.springframework.web.servlet.mvc.Controller;
  8. //一个类怎么就能成为一个Controller
  9. public class YController implements Controller{//处理器
  10. //handleRequest 处理请求
  11. //ModelAndView 返回值类型
  12. public ModelAndView handleRequest(HttpServletRequest request,
  13. HttpServletResponse response) throws Exception {
  14. ModelAndView mv=new ModelAndView();
  15. mv.addObject("msg", "明天放假一天");
  16. //处理一道
  17. //mv.setViewName("WEB-INF/jsp/index.jsp");
  18. mv.setViewName("index");
  19.  
  20. return mv;
  21. }
  22. }

jsp页面搭建:

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11.  
  12. <title>My JSP 'index.jsp' starting page</title>
  13.  
  14. </head>
  15.  
  16. <body>
  17. 第一个Springmvc程序
  18. <!-- 页面上如何获取 -->
  19. <img alt="girl" src="data:images/18.jpg" width="300px" height="300px">
  20. ${msg }
  21. </body>
  22. </html>

大配置中:注册处理器和视图解析器

访问页面:

配置式开发--BeanNameUrlHandlerMapping

配置式开发--SimpleUrlHandlerMapping

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:aop="http://www.springframework.org/schema/aop"
  4. xmlns:tx="http://www.springframework.org/schema/tx"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7. xmlns:mvc="http://www.springframework.org/schema/mvc"
  8. xsi:schemaLocation="
  9. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  10. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
  11. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
  12. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  13. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
  14. ">
  15. <!-- 配置处理器映射器 -->
  16. <!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
  17. </bean> -->
  18. <!-- 注册处理器映射器 -->
  19. <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  20. <property name="mappings">
  21. <props>
  22. <prop key="/hello.do">firstController</prop>
  23. <prop key="/say.do">firstController</prop>
  24. </props>
  25. </property>
  26. </bean>
  27.  
  28. <!-- 注册处理映射器 -->
  29. <!-- <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  30. <property name="urlMap">
  31. <map>
  32. <entry key="/hello.do">
  33. <value>firstController</value>
  34. </entry>
  35. <entry key="/say.do">
  36. <value>firstController</value>
  37. </entry>
  38. </map>
  39. </property>
  40. </bean> -->
  41.  
  42. <bean id="firstController" class="cn.happy.controller.YController"></bean>
  43.  
  44. <!-- 处理/请求路径下静态资源无法访问的问题 -->
  45. <!-- <mvc:default-servlet-handler/> -->
  46.  
  47. <!-- 方案四:TOmcat7的支持 -->
  48. <!-- <mvc:resources location="/images/" mapping="/images/**"></mvc:resources> -->
  49.  
  50. <!-- 注册处理器 请求地址-->
  51. <!-- 该配置需要和 Controller中的mv.setViewName全路径-->
  52. <bean id="/hello.do" class="cn.happy.controller.YController"></bean>
  53.  
  54. <!-- 视图解析器 ViewResolver -->
  55. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  56. <!-- 前缀 jstl struts2 -->
  57. <property name="prefix" value="/WEB-INF/jsp/"></property>
  58. <!--后缀 -->
  59. <property name="suffix" value=".jsp"></property>
  60. </bean>
  61. </beans>

SpringMVC的第一个入门案例的更多相关文章

  1. SpringMvc核心流程以及入门案例的搭建

    1.什么是SpringMvc Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 M ...

  2. Struts2第一个入门案例

      一.如何获取Struts2,以及Struts2资源包的目录结构的了解    Struts的官方地址为http://struts.apache.org 在他的主页当中,我们可以通过左侧的Apache ...

  3. SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)

    SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...

  4. 一、mybatis入门案例

    今天学习了mybatis框架,简单记录一下mybatis第一个入门案例,目标是使用Mybatis作为持久层框架,执行查询数据的SQL语句并且获取结果集 基本步骤: 物理建模 逻辑建模 引入依赖 创建持 ...

  5. SpringMVC(一) 基础知识+入门案例

    SpringMVC基础知识 1.什么是Springmvc 2.springmvc 框架的原理(必须掌握) 前端控制器.处理器映射器.处理器适配器.视图解析器 3.SpringMVC 入门程序 目的:对 ...

  6. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

  7. springMVC框架入门案例

    控制器: package cn.mepu.controller; import org.springframework.stereotype.Controller; import org.spring ...

  8. Spring第一天——入门与IOC

    大致内容 spring基本概念 IOC入门 [17.6.9更新],如何学习spring? 掌握用法 深入理解 不断实践 反复总结 再次深入理解与实践 一.Spring相关概念  1.概述: Sprin ...

  9. Spring_day01--课程安排_Spring概念_IOC操作&IOC底层原理&入门案例_配置文件没有提示问题

    Spring_day01 Spring课程安排 今天内容介绍 Spring概念 Spring的ioc操作 IOC底层原理 IOC入门案例 配置文件没有提示问题 Spring的bean管理(xml方式) ...

随机推荐

  1. 关于ionic中几个问题

    第一.每个页面的独立样式style标签不能写在ion-view外面,否则会出现路由问题,建议写在ion-content后面,例如下面的例子中,如果style但在ion-view中的话会出想路由问题,显 ...

  2. sort-colors——排序3种数字

    题目描述 Given an array with n objects colored red, white or blue, sort them so that objects of the same ...

  3. Bmob实现android云端存储

    代码地址如下:http://www.demodashi.com/demo/12547.html 前言 一直很困惑,android到底能不能将本地数据传到一个公共的云端,让云端实现数据库功能,这样的话, ...

  4. How to Start a New Cocos2d-x Game for version 3.0

    This documentation will show you how to use cocos console to create and run a new project. Runtime R ...

  5. LINQ中Aggregate的用法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. 面向对象-Object类

    一.Object类中的equals()方法 equals(Object obj) :指示其它某个对象是否与此对象"相等". 返回值类型是boolean Oblect类中的equal ...

  7. 用VS2010创建三层架构开发模式及三层架构的研究

    三层架构的研究 三层体系结构的概念 用户界面表示层(USL) 业务逻辑层(BLL) 数据访问层(DAL) BLL将USL与DAL隔开了,并且加入了业务规则   各层的作用 1:数据数据访问层:主要是对 ...

  8. BGP双线的真真假假

    BGP双线的真真假假: 国内不少IDC服务商都号称自己是“真正的双线”.“双线单IP”.“全路由双线”,但是,这其中有没有水分?他们都是BGP双线?BGP的门槛真的这么低吗? 首先,要构建真正的BGP ...

  9. Memcached的LRU和缓存命中率

    缓存命中率 命中:直接从缓存中读取到想要的数据. 未中:缓存中没有想要的数据,还需要到数据库进行一次查询才能读取到想要的数据. 命中率越高,数据库查询的次数就越少. 读取缓存的速度远比数据库查询的速度 ...

  10. TMS320C6455 SRIO 实现方案

    TMS320C6455 SRIO 实现方案 SRIO(Serial RapidIO)构架是一种基于高性能包交换的互连技术,主要功能是完成在一个系统内的微处理器.DSP.通信和网络处理器.系统存储器以及 ...