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. 修正锚点跳转位置 避免头部fixed固定部分遮挡

    如下锚点标签: <div id="id1"> <span class="kkAnchor"></span> 正文正文正文正文 ...

  2. 论文阅读笔记四十三:DeeperLab: Single-Shot Image Parser(CVPR2019)

    论文原址:https://arxiv.org/abs/1902.05093 github:https://github.com/lingtengqiu/Deeperlab-pytorch 摘要 本文提 ...

  3. 在Pycharm中自动添加时间日期作者等信息

    1.按照下面路径以此打开File→→Settings→→Editor→→File and code Templates 右侧找到Python Script,如下图 2.设置相关代码如下 ##!/usr ...

  4. spring boot slf4j日记记录配置详解

    https://blog.csdn.net/liuweixiao520/article/details/78900779

  5. Javascript我学之二函数定义

    本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘 函数 几个要点:                 a).函数是javascript中的一等公民 (重要性)                 b ...

  6. 【JavaScript】 使用extend继承对象的prototype方法

    之前有学习过通过prototype模式来构造类,并通过prototype来添加方法.好处大概有以下几点: 1.类方法可以都放在prototype中,可以提高性能效率. 2.可以用prototype来实 ...

  7. Python学习(三十四)—— Django之ORM之单表、联表操作

    一.单表查询API汇总 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kw ...

  8. javascript模板引擎template.js使用

    到GitHub上下载template.js库.引入到页面 以type="text/html" 这样指定javascript类型的是一种javascript模板渲染方法,在实际项目中 ...

  9. JSONObject类的引用必须jar包

    JSONObject所必需的6个jar包: commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.5.jar c ...

  10. Java笔记(二十一) 动态代理

    动态代理 一.静态代理 代理的背后一般至少有一个实际对象,代理的外部功能和实际对象一般是一样的, 用户与代理打交道,不直接接触实际对象.代理存在的价值: 1)节省成本比较高的实际对象创建开销,按需延迟 ...