SpringMVC系列(五)使用 Serlvet 原生的 API 作为目标方法的参数

SpringMVC的Handler方法可以接受哪些 ServletAPI 类型的参数

? HttpServletRequest
? HttpServletResponse
? HttpSession
? java.security.Principal
? Locale
? InputStream
? OutputStream
? Reader
? Writer

代码实战:

1.在pom.xml里面引入使用 Serlvet 原生的 API需要的依赖

 1 <!--开发JSP需要的依赖,里面有HttpServletRequest,
 2     HttpServletResponse等原生参数 begin  -->
 3     <dependency>
 4       <groupId>org.apache.tomcat</groupId>
 5       <artifactId>jsp-api</artifactId>
 6       <version>6.0.53</version>
 7     </dependency>
 8
 9     <dependency>
10       <groupId>org.apache.tomcat</groupId>
11       <artifactId>servlet-api</artifactId>
12       <version>6.0.48</version>
13     </dependency>
14     <!--开发JSP需要的依赖,里面有HttpServletRequest,
15     HttpServletResponse等原生参数 end  -->

2. 编写index.jsp

1 <br/><br/>
2 <p><b>使用 Serlvet 原生的 API 作为目标方法的参数 begin</b></p>
3 <a href="servletAPITest/testServletAPI">testServletAPI</a>
4 <p><b>使用 Serlvet 原生的 API 作为目标方法的参数</b></p>

3. 编写handle

 1 package com.study.springmvc.handlers;
 2
 3 import java.io.IOException;
 4 import java.io.Writer;
 5
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8
 9 import org.springframework.stereotype.Controller;
10 import org.springframework.web.bind.annotation.RequestMapping;
11
12 @RequestMapping("/servletAPITest")
13 @Controller
14 public class ServletAPITest {
15
16     public static final String SUCCESS="success";
17
18     /**
19      * 可以使用 Serlvet 原生的 API 作为目标方法的参数 具体支持以下类型
20      *
21      * HttpServletRequest
22      * HttpServletResponse
23      * HttpSession
24      * java.security.Principal
25      * Locale InputStream
26      * OutputStream
27      * Reader
28      * Writer
29      * @throws IOException
30      */
31     @RequestMapping("/testServletAPI")
32     public void testServletAPI(HttpServletRequest request,
33             HttpServletResponse response, Writer out) throws IOException {
34         System.out.println("testServletAPI, " + request + ", " + response);
35         out.write("hello springmvc");
36 //        return SUCCESS;
37     }
38 }

4.输入地址http://127.0.0.1:8080/SpringMVC/访问进入index.jsp点击第二部在index.jsp编写的超链接查看效果

时间: 2024-10-29 09:00:26

SpringMVC系列(五)使用 Serlvet 原生的 API 作为目标方法的参数的相关文章

SpringMvc 支持一下类型Serlvet 原生的 API 作为目标方法的参数

/** * 可以使用 Serlvet 原生的 API 作为目标方法的参数 具体支持以下类型 * * HttpServletRequest * HttpServletResponse * HttpSession * java.security.Principal * Locale InputStream * OutputStream * Reader * Writer * @throws IOException */ @RequestMapping("/testServletAPI")

Spring中的AOP(五)——在Advice方法中获取目标方法的参数

摘要: 本文介绍使用Spring AOP编程中,在增强处理方法中获取目标方法的参数,定义切点表达式时使用args来快速获取目标方法的参数. 获取目标方法的信息 访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点.JoinPoint里包含了如下几个常用的方法: Object[] getArgs:返回目标方法的参数 Signature getSignature:返回目标方法的签名 Ob

kafka系列五、kafka常用java API

引入maven包 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.11</artifactId> <version>0.10.0.0</version> </dependency> 一.同步发送消息 package com.example.demo.kafka; import org.apache.kafka.client

SpringMVC系列(二): 注解@RequestMapping、@PathVariable

一.@RequestMapping [email protected]除了能修饰方法,还能修饰类(1)修饰类:提供初步的请求映射信息,相对于web请求的根目录(2)修饰方法:提供进一步的细分映射信息相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法处标记的URL相对于web应用的根目录 [email protected]的请求方式@RequestMapping 的 value.method.params 及 heads 分别表示请求 URL.请求方法.请求参数及请求头

SpringMVC确定目标方法POJO类型入参的过程

SpringMVC确定目标方法POJO类型入参的过程 访问方法 @RequestMapping("/pojoparam") public String POJOParam(User user){ return "success"; } 1,首先确定一个key值 ①如果目标方法的POJO类型的参数没有使用@ModelAttribute作为入参修饰,则key为POJO类名的第一个字母小写 例test(User user){}这样的方法key就是user ②如果使用了@M

SpringMVC系列之(二) springMVC和Struts异同

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架.通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术.Velocity.Tiles.iText 和POI.Sp

Apache Kafka系列(五) Kafka Connect及FileConnector示例

Apache Kafka系列(一) 起步 Apache Kafka系列(二) 命令行工具(CLI) Apache Kafka系列(三) Java API使用 Apache Kafka系列(四) 多线程Consumer方案 Apache Kafka系列(五) Kafka Connect及FileConnector示例 一. Kafka Connect简介 Kafka是一个使用越来越广的消息系统,尤其是在大数据开发中(实时数据处理和分析).为何集成其他系统和解耦应用,经常使用Producer来发送消

Cocos2d-x 系列五之三大特效

1.场景切换新建一个类ImageScene #ifndef IMAGESCENE_H #define IMAGESCENE_H #include <iostream> #include <cocos2d.h> USING_NS_CC; class ImageScene : public Layer { public: virtual bool init() { Sprite *s = Sprite::create("HelloWorld.jpg"); Size

深入浅出Zabbix 3.0 -- 第十五章 Zabbix 协议与API

今天是六.一儿童节,祝小朋友们节日快乐!发完此文就带我家小朋友出去玩耍了. 第十五章 Zabbix 协议与API 本章将介绍和开发相关的Zabbix协议和API的内容,通过对Zabbix协议和API的深入了解,你可以利用Zabbix协议编写客户端程序并将其嵌入的产品或系统中,并将数据发送到Zabbix server,这在无法安装Zabbixagent等程序的场景(例如专用的嵌入式系统)中非常有用.你也可以利用Zabbix API开发自己的业务系统,或灵活的与现有系统整合集成. 15.1 Zabb