java  HttpServletRequest和HttpServletResponse详解

java  HttpServletRequest和HttpServletResponse详解

最近由于CAS相关的JAR包的重新封装,所以想尽量做到0配置,而这个过程中大量使

用HttpServletRequest,现在整理如下,以便以后查阅。(表格为从别的地方复制的,排版渣了点,酬和看吧。)

请求与响应相关的类和接口非常多,下表是主要的与请求和接口相关的类以及接口。

主要的与请求和接口相关的类及接口


方    法


说    明


ServletInputStream


Servlet的输入流


ServletOutputStream


Servlet的输出流


ServletRequest


代表Servlet请求的一个接口


ServletResponse


代表Servlet响应的一个接口


ServletRequestWrapper


该类实现ServletRequest接口


ServletResponseWrapper


该类实现ServletResponse接口


HttpServletRequest


继承了ServletRequest接口,表示HTTP请求


HttpServletResponse


继承了ServletResponse接口,表示HTTP请求


HttpServletRequestWrapper


HttpServletRequest的实现


HttpServletResponseWrapper


HttpServletResponse的实现

在上面给出的类和接口中,最主要的是HttpServletRequest和HttpServletResponse接口,下面将详细介绍这两个接口。

1.HttpServletRequest

HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据。同时,HttpServletRequest接口可以获取由客户端传送的名称,也可以获取产生请求并且接收请求的服务器端主机名及IP地址,还可以获取客户端正在使用的通信协议等信息。下表是接口HttpServletRequest的常用方法。

说明:HttpServletRequest接口提供了很多的方法。

接口HttpServletRequest的常用方法


方    法


说    明


getAttributeNames()


返回当前请求的所有属性的名字集合


getAttribute(String name)


返回name指定的属性值


getCookies()


返回客户端发送的Cookie


getsession()


返回和客户端相关的session,如果没有给客户端分配session,则返回null


getsession(boolean create)


返回和客户端相关的session,如果没有给客户端分配session,则创建一个session并返回


getParameter(String name)


获取请求中的参数,该参数是由name指定的


getParameterValues(String name)


返回请求中的参数值,该参数值是由name指定的


getCharacterEncoding()


返回请求的字符编码方式


getContentLength()


返回请求体的有效长度


getInputStream()


获取请求的输入流中的数据


getMethod()


获取发送请求的方式,如get、post


getParameterNames()


获取请求中所有参数的名字


getProtocol()


获取请求所使用的协议名称


getReader()


获取请求体的数据流


getRemoteAddr()


获取客户端的IP地址


getRemoteHost()


获取客户端的名字


getServerName()


返回接受请求的服务器的名字


getServerPath()


获取请求的文件的路径

2.HttpServletResponse

在Servlet中,当服务器响应客户端的一个请求时,就要用到HttpServletResponse接口。设置响应的类型可以使用setContentType()方法。发送字符数据,可以使用getWriter()返回一个对象。下表是接口HttpServletResponse的常用方法。

接口HttpServletResponse的常用方法


方    法


说    明


addCookie(Cookie cookie)


将指定的Cookie加入到当前的响应中


addHeader(String name,String value)


将指定的名字和值加入到响应的头信息中


containsHeader(String name)


返回一个布尔值,判断响应的头部是否被设置


encodeURL(String url)


编码指定的URL


sendError(int sc)


使用指定状态码发送一个错误到客户端


sendRedirect(String location)


发送一个临时的响应到客户端


setDateHeader(String name,long date)


将给出的名字和日期设置响应的头部


setHeader(String name,String value)


将给出的名字和值设置响应的头部


setStatus(int sc)


给当前响应设置状态码


setContentType(String ContentType)


设置响应的MIME类型

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Java HttpServletResponse响应实现过程详解

    用户在客户端输入网址(虚拟路径)时,开始发送一个HTTP请求(请求行.请求头.请求体)至服务器.服务器内的Tomcat引擎会解析请求的地址,去找XML文件,然后根据虚拟路径找Servlet的真实路径,真实的Servlet会将请求的信息封装成request(请求)对象,然后再创建一个response(响应)对象,(此时的response内是空的)同时创建servlet对象,并调用service方法(或doGet和doPost方法). 这样就是把两个对象传给了服务器内的某个servlet的servi

  • Java Servlet响应httpServletResponse过程详解

    目录 一.核心方法 1.setStatus 2.setHeader(Stringname,Stringvalue) 3.addHeader(Stringname,Stringvalue) 4.setContentType(Stringtype) 二.响应一个网页 三.返回一个文件 四.返回json数据 一.核心方法 1.setStatus 设置响应状态码 如果没有调用这个方法,默认返回200状态码(前提:正常执行,没有异常) 如果出现异常,返回500 前端代码: <body> <h3&g

  • HttpServletResponse乱码问题_动力节点Java学院整理

    一个完整的http响应包括响应行,若干响应头和响应数据主体三部分构成.如果我们能用响应对象来进行这三部分的处理,就能向客户发送特定的响应数据包. 先从HttpServletResponse对象的方法中可以看到有如下方法(部分): 这只是一部分,但是我们却可以看出,通过响应对象的方法,我们就能设置响应客户端数据的一些信息.比如setStatus(int sc)方法,我们从HttpServletResponse的API中的字段定义可找到已经设置好的响应码(部分): 我们通过setHeader或者ad

  • Java中HttpServletResponse响应中文出现乱码问题

    以字符串的形式输出. 1.response.getWriter().write("您好中国hello"); 如果这样输出的话.则浏览器结果为: 2.加上代码 response.setCharacterEncoding("UTF-8"); response.getWriter().write("您好中国hello"); 则浏览器结果为: 这是因为浏览器解析问题. 加上代码: response.setHeader("Content-type

  • java HttpServletRequest和HttpServletResponse详解

    java  HttpServletRequest和HttpServletResponse详解 最近由于CAS相关的JAR包的重新封装,所以想尽量做到0配置,而这个过程中大量使 用HttpServletRequest,现在整理如下,以便以后查阅.(表格为从别的地方复制的,排版渣了点,酬和看吧.) 请求与响应相关的类和接口非常多,下表是主要的与请求和接口相关的类以及接口. 主要的与请求和接口相关的类及接口 方    法 说    明 ServletInputStream Servlet的输入流 Se

  • java  HttpServletRequest和HttpServletResponse详解

    java  HttpServletRequest和HttpServletResponse详解 最近由于CAS相关的JAR包的重新封装,所以想尽量做到0配置,而这个过程中大量使 用HttpServletRequest,现在整理如下,以便以后查阅.(表格为从别的地方复制的,排版渣了点,酬和看吧.) 请求与响应相关的类和接口非常多,下表是主要的与请求和接口相关的类以及接口. 主要的与请求和接口相关的类及接口 方    法 说    明 ServletInputStream Servlet的输入流 Se

  • java 中cookie的详解及简单实例

    java 中cookie的详解 Java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题. 建立一个无生命周期的cookie,即随着浏览器的关闭即消失的cookie,代码如下 HttpServletRequest request HttpServletResponse response Cookie cookie = new Cookie("cookiename","cookievalue&

  • Java Structs框架原理案例详解

    1 Struts2框架内部执行过程 Structs请求过程源码分析参考链接http://www.cnblogs.com/liuling/p/2013-8-10-01.html 从上图来看,整个框架的运行过程是围绕着核心过滤器StrutsPrepareAndExecuteFilter展开工作,深入到filter的源码会对理解有所帮助. 一个请求在Struts的处理中大概有以下几个步骤: 客户端初始化一个指向Servlet容器(Tomcat)的请求: 这个请求经过一系列的过滤器(Filter)例如A

  • Java中的静态内部类详解及代码示例

    1. 什么是静态内部类 在Java中有静态代码块.静态变量.静态方法,当然也有静态类,但Java中的静态类只能是Java的内部类,也称为静态嵌套类.静态内部类的定义如下: public class OuterClass { static class StaticInnerClass { ... } } 在介绍静态内部类之前,首先要弄清楚静态内部类与Java其它内部类的区别. 2. 内部类 什么是内部类?将一个类的定义放在另一个类的内部,就是内部类.Java的内部类主要分为成员内部类.局部内部类.

  • Java多线程ForkJoinPool实例详解

    引言 java 7提供了另外一个很有用的线程池框架,Fork/Join框架 理论 Fork/Join框架主要有以下两个类组成. * ForkJoinPool 这个类实现了ExecutorService接口和工作窃取算法(Work-Stealing Algorithm).它管理工作者线程,并提供任务的状态信息,以及任务的执行信息 * ForkJoinTask 这个类是一个将在ForkJoinPool执行的任务的基类. Fork/Join框架提供了在一个任务里执行fork()和join()操作的机制

  • java 抽象类的实例详解

    java 抽象类的实例详解 前言: 什么是抽象类?这名字听着就挺抽象的,第一次听到这个名字还真有可能被唬住.但是,就像老人家所说的,一切反动派都是纸老虎,一切有着装x名字的概念也是纸老虎.好吧,我们已经从战略上做到了藐视它,现在就要战术上重视它,如同要解决纸老虎,就要一个牙齿一个牙齿地敲,一个爪子一个爪子地拔:解决这种抽象概念也一样,先要把它具体化,细分化,然后一个一个地来. 我一般遇到新的概念都会问三个问题: 1.这个东西有什么用?用来干什么的?它的意义在哪里?(显然,如果是没用的东西,就没必

  • Java 多线程优先级实例详解

    Java 多线程优先级实例详解 线程的优先级将该线程的重要性传递给调度器.尽管CPU处理现有线程集的顺序是不确定的,但是调度器将倾向于让优先权最高的线程先执行. 你可以用getPriority()来读取现有线程的优先级,并且在任何时刻都可以通过setPriority()来修改优先级. import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class SimplePrio

  • Java NumberFormat 类的详解及实例

     Java NumberFormat 类的详解及实例 概要: NumberFormat 表示数字的格式化类, 即:可以按照本地的风格习惯进行数字的显示. 此类的定义如下: public abstract class NumberFormat extends Format MessageFormat .DateFormat .NumberFormat 是 Format 三个常用的子类,如果要想进一步完成一个好的国际化程序,则肯定需要同时使用这样三个类完成,根据不同的国家显示贷币的形式. 此类还是在

  • java LinkedList的实例详解

    java LinkedList的实例详解 站在Java的角度看,玩队列不就是玩对象引用对象嘛! 实例代码: public class LinkedList<E> implements List<E>, Deque<E> { Node<E> first; Node<E> last; int size; public boolean add(E e) { final Node<E> l = last; final Node<E>

随机推荐