SpringMVC配置式开发

1. SpringMVC运行原理(执行过程)

2. 需求

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

3. 开发步骤

(1) 导入jar包

导入18个jar包

com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar

com.springsource.org.aopalliance-1.0.0.jar

com.springsource.org.apache.commons.logging-1.1.1.jar

com.springsource.org.apache.log4j-1.2.15.jar

com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

junit-4.9.jar

mysql-connector-java-5.1.30.jar

spring-aop-4.1.6.RELEASE.jar

spring-aspects-4.1.6.RELEASE.jar

spring-beans-4.1.6.RELEASE.jar

spring-context-4.1.6.RELEASE.jar

spring-context-support-4.1.6.RELEASE.jar

spring-core-4.1.6.RELEASE.jar

spring-expression-4.1.6.RELEASE.jar

spring-jdbc-4.1.6.RELEASE.jar

spring-tx-4.1.6.RELEASE.jar

spring-web-4.1.6.RELEASE.jar

spring-webmvc-4.1.6.RELEASE.jar

(2) 配置web. xml, 注册SpringMVC前端控制器(中央调度器)

<welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  <!-- 注册springmvc前端控制器(中央调度器) -->

  <servlet>

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

</servlet>

  <servlet-mapping>

  <servlet-name>springmvc</servlet-name>

  <url-pattern>*.do</url-pattern>

  </servlet-mapping>

(3) 编写SpringMVC后端控制器

public class MyController implements Controller {

@Override

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

ModelAndView mv = new ModelAndView();

System.out.println("进入到后端控制器方法!");

mv.addObject("msg", "Hello SpringMVC!");

mv.setViewName("/jsp/welcome.jsp");

return mv;

}

}

(4) 编写springmvc配置文件, 注册后端控制器( 注意id写法格式)

新建一个springmvc.xml

<bean id="/my.do" class="com.mypack.handlers.MyController"></bean>

(5) 编写跳转资源页面

编写welcome.jsp

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

pageEncoding="UTF-8"%>

...

<body>

    ${msg}

</body>

...

 

控制类代码:

public class MyController implements Controller {

@Override

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

ModelAndView mv = new ModelAndView();

System.out.println("进入到后端控制器方法!");

mv.addObject("msg", "Hello SpringMVC!");

mv.setViewName("/jsp/welcome.jsp");

return mv;

}

}

4. web. xml中urlpattern配置问题

(1) 配置/和/*的区别

<url-pattern>/*</url-pattern>: 这种形式将会覆盖所有其它的servlet。不管你发出了什么样的请求,最终都会在这个servlet中结束。因此,对于servlet来说,这是一个很糟糕的URL模式。通常来讲,你只会想要在一个Filter中使用这种模式。它可以通过调用doFilter()方法来使请求继续。

<url-pattern>/</url-pattern>: 这种形式不会覆盖任何其它的servlet。它仅仅替换了servlet容器中内建的默认servlet。这种形式通常只用来请求静态资源(CSS/JS/image等)和展示目录的列表。

(2) 静态资源无法访问解决方案( 三种)

1) 第一种:web.xml配一个servlet-mapping,名字叫default

<servlet-mapping>

  <servlet-name>default</servlet-name>

<url-pattern>*.png</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.js</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.css</url-pattern>

</servlet-mapping>

2) 第二种:springmvc.xml中,mvc标签增加一个默认的servlet处理器标签

<mvc:default-servlet-handler/> 

3) 第三种:springmvc.xml中,mvc标签resources属性images下的所有资源,都会进行映射

<mvc:resources location="/images/" mapping="/images/**"></mvc:resources>

3.2.2 SpringMVC配置式开发的更多相关文章

  1. 《SpringMVC从入门到放肆》四、SpringMVC配置式开发(处理器映射器)

    上一篇我们讲解了DispatcherServlet的url-pattern配置详解,今天我们来真正对SpringMVC进行配置式开发.所谓配置式开发是指“处理器类是程序员自己定义的.实现了特定接口的类 ...

  2. SpringMVC配置式开发

    所谓配置式开发是指“处理器类是程序员手工定义,实现了特定接口的类,然后再在SpringMVC 配置文件中对该类进行显示的.明确的注册”的开发方式. 一.处理器映射器HandlerMapping Han ...

  3. 6.SpringMVC 配置式开发-处理器

    处理器除了实现Controller 接口外,还可以继承自一些其他的类,来完成一些特殊的功能 1.继承自AbstractController类 若处理器继承自AbstractController类,那么 ...

  4. 4.SpringMVC 配置式开发-处理器映射器

    处理器映射器 HandlerMapping HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器, 并将它们封装在HandlerEx ...

  5. 7.SpringMVC 配置式开发-ModelAndView和视图解析器

    ModelAndView 1.Model(模型) 1.model的本质就是HashMap,向模型中添加数据,就是往HashMap中去添加数据 2.HashMap 是一个单向查找数组,单向链表数组 3. ...

  6. 《SpringMVC从入门到放肆》五、SpringMVC配置式开发(处理器适配器)

    上一篇我们大致讲解了处理器映射器的处理流程以及跟了一下源码的执行流程.今天我们来了解一下处理器适配器. 一.适配器模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapt ...

  7. springmvc配置式开发下的视图解析器

    多个视图解析器优先级:

  8. SpringMVC 配置式开发-HandlerMapping的执行流程(八)

    具体看这两块是怎么执行的 下图是实现了DispatcherServlet从HandleMapping获得处理器执行链的逻辑的源代码 下面是DispatcherServlet从HandleAdaptor ...

  9. SpringMVC 配置式开发-BeanNameUrlHandlerMapping(七)

     第一种处理器映射器BeanNameUrlHandlerMapping.class(注册器映射器 bean节点的class属性中用到的,这种方式dean id属性必须要以“/”开头) 第二种处理器映射 ...

随机推荐

  1. 14.并发与异步 - 3.C#5.0的异步函数 -《果壳中的c#》

    14.5.2 编写异步函数 private static readonly Stopwatch Watch = new Stopwatch(); static void Main(string[] a ...

  2. Vue 增删改查 demo

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. Cordova IOT Lesson003

    bot index.html <!DOCTYPE html> <html> <head> <title>Arduino蓝牙机械昆虫控制器</tit ...

  4. react-native项目中集成react-native-camera插件

    1. 安装 yarn add react-native-camera 2. 手动关联 (1)在AndroidManifest.xml中添加权限配置 <uses-permission androi ...

  5. SDOI2019 省选前模板整理

    目录 计算几何✔ DP 斜率优化✔ 四边形不等式✔ 轮廓线DP✘ 各种分治 CDQ分治✔ 点分治✔ 整体二分✔ 数据结构 线段树合并✔ 分块✔ K-D Tree LCT 可持久化Trie✔ Splay ...

  6. idea搜索jar中的类

    ctrl+n快捷键

  7. 项目部署到tomcat

    准备工作 第一步 准备项目部署文件 准备项目中使用的数据库.sql文件. 准备项目程序(整个项目的war包文件) 第二步 安装运行环境 依次安装JDK.TOMCAT.MYSQL NAVICAT需要注意 ...

  8. Hadoop双namenode配置搭建(HA)

    配置双namenode的目的就是为了防错,防止一个namenode挂掉数据丢失,具体原理本文不详细讲解,这里只说明具体的安装过程. Hadoop HA的搭建是基于Zookeeper的,关于Zookee ...

  9. Node.js_express_服务器渲染页面 ejs

    服务器渲染页面 ejs 高效的 js 模版引擎 将数据提前渲染到页面上, 再将渲染好的页面返回响应给浏览器 提高首页加载速度 SEO 提前处理,提高加载速度 下载 ejs 包 npm install ...

  10. [LeetCode] Jewels and Stones 珠宝和石头

    You're given strings J representing the types of stones that are jewels, and S representing the ston ...