本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

Similar documents
Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat

09 (File Processes) (mkdir) 9-3 (createnewfile) 9-4 (write) 9-5 (read) 9-6 (deletefile) 9-7 (deletedir) (Exercises)

EJB-Programming-3.PDF

基于CDIO一体化理念的课程教学大纲设计

EJB-Programming-4-cn.doc

D getinitparameternames() 9 下 列 选 项 中, 属 于 Servlet API 中 提 供 的 request 对 象 的 包 装 类 的 是 ( ) A HttpServletRequestWrapper B HttpServletRequest C HttpServ

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

PrintWriter s = new PrintWriter(writer); ex.printstacktrace(s); mv.addobject("exception", writer.tostring()); mv.setviewname("error"); return

untitled

Servlet

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt

IoC容器和Dependency Injection模式.doc

TopTest_Adminstrator.doc

Microsoft Word - 扉页.doc

D C 93 2

jsp

本章学习目标 小风 Java 实战系列教程 Shiro 核心功能 Shiro 的 Web 集成 Spring 与 Shiro 整合 SpringBoot 整合 Shiro 1. Shiro 核心功能 1.1. RBAC 模型 在 RBAC 的模型, 涉及到三个关键的元素 : 1) 用户 : 系统的使

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt

投影片 1

resp.getwriter().print(j + "*" + i + "=" + j * i+" "); resp.getwriter().print("<br/>"); protected void dopost(httpservletrequest req, HttpServletRespo

, 即 使 是 在 昏 暗 的 灯 光 下, 她 仍 然 可 以 那 么 耀 眼 我 没 有 地 方 去, 你 会 带 着 我 么 杜 晗 像 是 在 嘲 笑 一 般, 嘴 角 的 一 抹 冷 笑 有 着 不 适 合 这 个 年 龄 的 冷 酷 和 无 情, 看 着 江 华 的 眼 神 毫 无 温

第03章 控制反转(Spring IoC)

设计模式 Design Patterns

树立正确的择业观念 走好人生第一步

设计模式 Design Patterns

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型

「西醫基層總額支付委員會《第28次委員會議紀錄

新・解きながら学ぶJava

1. 2. Flex Adobe 3.

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

untitled

1.5招募说明书(草案)

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

J2EE MVC with Webwork2 Xwork, to J2EE MVC with Webwork2 Xwork

mvc

目 录 1. 业 务 流 程 系 统 开 发 面 临 的 挑 战 与 机 遇 业 务 流 程 管 理 新 一 代 开 源 业 务 流 程 开 发 平 台 BPMX BPMX3 是 什 么 为 什 么 要 优 先 采 用 BPMX

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

untitled

在所有的项目开发中, 一定是多人协作的团队开发, 但是使用框架就会出现一个问题, 我们所 有的 Action 以及相关的路径都要求在我们的 struts.xml 文件中配置, 如果所有的人去修改一个 文件, 那么就会变得混乱, 而且有可能出现冲突, 那么在 struts.xml 文件中为了解决这个问

目 录 编 写 说 明 一 学 校 概 况 二 2015 届 毕 业 生 就 业 状 况 分 析 ( 一 ) 基 本 数 据 ( 二 ) 就 业 落 实 情 况 本 科 生 各 专 业 就 业 率 硕

Microsoft Word - 会议指南


Microsoft Word - 封面.doc

HR之友电子期刊

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

"+handlermethod.getbean().getclass().getname()); public void aftercompletion(httpservletrequest req, HttpServletResponse resp, Object handler, Excepti

Chapter 9: Objects and Classes

2 Java 语 言 程 序 设 计 教 程 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

new 进行创建对象, 是程序主动去创建依赖对象 ; 而 IoC 是有专门一个容器来创建这些对象, 即由 Ioc 容器来控制对象的创建 ; 谁控制谁? 当然是 IoC 容器控制了对象 ; 控制什么? 那就是主要控制了外部资源获取 ( 不只是对象包括比如文件等 ) 为何是反转, 哪些方面反转了 : 有

优迈科技教学大纲2009版本

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

untitled

由社會發展趨勢探討國人睡眠品質

Microsoft Word - 01.DOC

untitled

Microsoft Word - Spring Web Flow 1应用程序升级指南-1.doc

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

(CIP) Web /,. :, ISBN X.W T P393.4 CIP (2004) Web ( ) ( / ) : * 787

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Guava学习之Resources

Microsoft PowerPoint - 10-JSP-Scripting-Elements-Chinese.ppt

untitled

设计模式 Design Patterns

Untitled

私塾在线学习网原创内容

计算机软件技术专业教学计划

ebook

使用MapReduce读取XML文件

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind

untitled

untitled

XXXXXXXX

untitled

untitled

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

untitled

输入 project name 选择完成

第一章 章标题-F2 上空24,下空24

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

新美大酒店开放平台SDK(.NET版)使用说明.pages

<4D F736F F D20B9FABCD2BBFAB9D8B0ECB9ABBDA8D6FEBACDB4F3D0CDB9ABB9B2BDA8D6FEC4DCBAC4BCE0B2E2CFB5CDB3C8EDBCFEBFAAB7A2D6B8B5BCCBB5C3F7CAE92E646F63>

1 Internet [1]P Web Service Web Service Web XML HTTP URL 1..NET Framework.NET Framework Web Service HTTP 80.NET Framework 2

在Spring中使用Kafka:Producer篇

untitled

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

untitled

Microsoft Word - JavaWeb程序开发入门—教学大纲.doc

1

使用 XFire 与 Spring 开发 Web Service 2 实现功能与特点 基于 J2EE 平台的 Web Service 服务 开发方便, 配置简单 设计接口 实现服务 配置暴露接口 XFire 将自动生成对应的 wsdl 支持高级详细配置 与 Spring 无缝集成 运行环境 JDK

服务框架 HSF 使用与配置 一江更新时间 : 目录 HSF 常用 OPS 和开发工具介绍... 1 HSF 的使用和配置... 2 下载和安装 HSF... 2 服务开发与部署... 5 服务查询 服务调用 HSFUNIT 测试包的使用 HSF

<!-- import outer proper

Transcription:

本章学习目标 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 配置视图解析器 @RequestMapping 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 和 Struts2 都属于表现层的框架, 它是 Spring 框架的一部分, 我们可 以从 Spring 的整体结构中看得出来 :

2. SpringMVC 的入门案例 2.1. 建立 web 项目, 导入 SpringMVC 相关支持 jar 包 2.2. 配置 web.xml( 重点 ) 关键的步骤 : 配置核心控制器 :Servlet <!-- 配置 SpringMVC 的核心控制器 --> <servlet> <servlet-name>dispatcherservlet</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</se rvlet-class> </servlet> <servlet-mapping> <servlet-name>dispatcherservlet</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>

2.3. 编写 spring-mvc.xml 建议放在 classpath 下面 有一个 mvc 的名称空间 : <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:contenxt="http://www.springframework.org/schema/context" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 扫描 Spring 的注解 --> <contenxt:component-scan

base-package="cn.sm1234.controller"></contenxt:component-scan> </beans> 修改 web.xml 文件, <!-- 配置 SpringMVC 的核心控制器 --> <servlet> <servlet-name>dispatcherservlet</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</se rvlet-class> <!-- 参数 --> <init-param> <param-name>contextconfiglocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcherservlet</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> 2.4. 编写 Controller 类 @Controller public class HelloController { @RequestMapping("/hello") public ModelAndView hello(){

System.out.println(" 执行 HelloController 的 hello 方法 "); // 把数据保存到 ModelAndView( 相当于保存 request 域对象 ) ModelAndView mv = new ModelAndView(); mv.addobject("name", "Spring MVC"); // 返回物理路径 mv.setviewname("/web-inf/jsp/success.jsp"); return mv; 2.5. 编写页面 <body> 第一个 SpringMVC 程序 <hr/> ${name </body> 2.6. 访问测试 访问路径 :http://localhost:8080/ch01.spring-mvc/hello.action

3. SpringMVC 流程分析 4. 配置注解映射器和适配器 为什么需要配置配置注解映射器和适配器默认情况下, SpringMVC 使用默认映射器 ( HandlerMapping ) 和适配器 (HandlerAdpter) 在 Spring3.1 之后, 默认的 HandlerMapping 和 HandllerAdpter 是过时的 不建议使用 默认的 HandlerMapping: org.springframework.web.servlet.mvc.annotation.defaul tannotationhandlermapping 默认的 HandlerAdapter: org.springframework.web.servlet.mvc.annotation.annota tionmethodhandleradapter

Spring3.1 之后, 建议使用 : 新的 HandlerMapping: org.springframework.web.servlet.mvc.method.annotation.requestmappinghan dlermapping 新的 HandlerAdapter: org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter 4.1. 配置新的 HandlerMapping 和 HandlerAdapter 方式一 :( 推荐 ) <!-- 配置新的 HandlerMapping 和 HandlerAdapter --> <mvc:annotation-driven></mvc:annotation-driven> 方式二 : <!-- 配置新的 HandlerMapping 和 HandlerAdapter--> <bean class="org.springframework.web.servlet.mvc.method.annotation.requestmap pinghandlermapping"></bean> <bean class="org.springframework.web.servlet.mvc.method.annotation.requestmap pinghandleradapter"></bean> 5. 配置视图解析器 视图解析器, 用于解析视图页面, 简化视图的编写

在 spring-mvc.xml 配置 : <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.internalresourceviewresolve r"> <!-- 前缀访问路径 --> <property name="prefix" value="/web-inf/jsp/"></property> <!-- 后缀访问路径 --> <property name="suffix" value=".jsp"></property> </bean> Controller 代码 : @RequestMapping("/view") public ModelAndView view(){ // 把数据保存到 ModelAndView( 相当于保存 request 域对象 ) ModelAndView mv = new ModelAndView(); mv.addobject("name", "Spring MVC"); // 返回逻辑视图名称 mv.setviewname("success"); return mv; 最终的访问路径 = 前缀 + 逻辑视图名称 + 后缀

6. @RequestMapping 注解的使用 @RequestMapping: 声明 SpringMVC 控制器的类或方法的访问路径 6.1. value 属性 (*) 访问路径, 用在类或方法上面 @Controller @RequestMapping(value="/requestMapping") public class RequestMappingController { @RequestMapping(value="/test1") public ModelAndView test1(){ System.out.println("RequestMappingController 的 test1"); ModelAndView mv = new ModelAndView(); mv.setviewname("success"); return mv; 6.2. method 属性 (*) 该控制器的方法支持哪些 HTTP 的请求方式 (GET,POST,PUT,DELETE) /** * method 属性 * @return */

@RequestMapping(value="/test2",method=RequestMethod.POST) public ModelAndView test2(){ System.out.println("RequestMappingController 的 test2"); ModelAndView mv = new ModelAndView(); mv.setviewname("success"); return mv; 6.3. params 属性 声明控制器的方法可以接受什么参数 /** * params 属性 * @return */ @RequestMapping(value="/test3",method=RequestMethod.GET,params={"nam e") public ModelAndView test3(){ System.out.println("RequestMappingController 的 test3"); ModelAndView mv = new ModelAndView(); mv.setviewname("success"); return mv; producers 属性 : 该控制器的方法返回值的数据类型 (xml/json) consumes 属性 : 该控制器的方法接受参数的数据类型 (xml/json) headers 属性 : 该控制器的方法接受包含什么请求头的请求

7. 使用不同方式的跳转页面 7.1. 控制器方法返回 void 相当于 Servlet 的方式的页面跳转注意 : 可以在控制器方法参数里面传入 : HttpServletRequest HttpServletResponse HttpSession /** * 7.1. 控制器方法返回 void * @throws Exception * @throws ServletException */ @RequestMapping("/test1") public void test1(httpservletrequest request,httpservletresponse response,httpsession session) throws Exception{ System.out.println("ViewControlller 的 test1"); // 转发 //request.getrequestdispatcher("/web-inf/jsp/success.jsp").forward(r equest, response); // 重定向 response.sendredirect(request.getcontextpath()+"/index.jsp");

7.2. 控制器方法返回 ModelAndView @RequestMapping("/test2") public ModelAndView test2(){ ModelAndView mv = new ModelAndView("success"); // 如果配置了视图解析器, 那么该 viewname 就是逻辑名称, 否则是物理路径 ( 真实的路径 ) //mv.setviewname("success"); return mv; 7.3. 控制器方法返回 String /** * 7.3. 控制器方法返回 String ( 转发 )( 推荐使用 ) */ @RequestMapping("/test3") public String test3(model model){ System.out.println("ViewControlller 的 test3"); model.addattribute("name", "Spring MVC"); // 返回逻辑名称 return "success"; /** * 7.3. 控制器方法返回 String ( 重定向 )( 推荐使用 ) */ @RequestMapping("/test4") public String test4(){

System.out.println("ViewControlller 的 test4"); return "redirect:/index.jsp";