`
cfan_haifeng
  • 浏览: 122410 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

javaee-HttpServletResponse 类相关源代码

阅读更多

ServletAPI 2.5的源代码

 

1.ServletResponse类的源代码如下:

 

package javax.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;

public abstract interface ServletResponse
{
  public abstract String getCharacterEncoding();

  public abstract String getContentType();

  public abstract ServletOutputStream getOutputStream()
    throws IOException;

  public abstract PrintWriter getWriter()
    throws IOException;

  public abstract void setCharacterEncoding(String paramString);

  public abstract void setContentLength(int paramInt);

  public abstract void setContentType(String paramString);

  public abstract void setBufferSize(int paramInt);

  public abstract int getBufferSize();

  public abstract void flushBuffer()
    throws IOException;

  public abstract void resetBuffer();

  public abstract boolean isCommitted();

  public abstract void reset();

  public abstract void setLocale(Locale paramLocale);

  public abstract Locale getLocale();
}
 

 

 

2.HttpServletResponse 类的源代码如下:

 

 

package javax.servlet.http;

import java.io.IOException;
import javax.servlet.ServletResponse;

public abstract interface HttpServletResponse extends ServletResponse
{
  public static final int SC_CONTINUE = 100;//SC是 status code的简写
  public static final int SC_SWITCHING_PROTOCOLS = 101;
  public static final int SC_OK = 200;
  public static final int SC_CREATED = 201;
  public static final int SC_ACCEPTED = 202;
  public static final int SC_NON_AUTHORITATIVE_INFORMATION = 203;
  public static final int SC_NO_CONTENT = 204;
  public static final int SC_RESET_CONTENT = 205;
  public static final int SC_PARTIAL_CONTENT = 206;
  public static final int SC_MULTIPLE_CHOICES = 300;
  public static final int SC_MOVED_PERMANENTLY = 301;
  public static final int SC_MOVED_TEMPORARILY = 302;
  public static final int SC_FOUND = 302;
  public static final int SC_SEE_OTHER = 303;
  public static final int SC_NOT_MODIFIED = 304;
  public static final int SC_USE_PROXY = 305;
  public static final int SC_TEMPORARY_REDIRECT = 307;
  public static final int SC_BAD_REQUEST = 400;
  public static final int SC_UNAUTHORIZED = 401;
  public static final int SC_PAYMENT_REQUIRED = 402;
  public static final int SC_FORBIDDEN = 403;
  public static final int SC_NOT_FOUND = 404;
  public static final int SC_METHOD_NOT_ALLOWED = 405;
  public static final int SC_NOT_ACCEPTABLE = 406;
  public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
  public static final int SC_REQUEST_TIMEOUT = 408;
  public static final int SC_CONFLICT = 409;
  public static final int SC_GONE = 410;
  public static final int SC_LENGTH_REQUIRED = 411;
  public static final int SC_PRECONDITION_FAILED = 412;
  public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413;
  public static final int SC_REQUEST_URI_TOO_LONG = 414;
  public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;
  public static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
  public static final int SC_EXPECTATION_FAILED = 417;
  public static final int SC_INTERNAL_SERVER_ERROR = 500;
  public static final int SC_NOT_IMPLEMENTED = 501;
  public static final int SC_BAD_GATEWAY = 502;
  public static final int SC_SERVICE_UNAVAILABLE = 503;
  public static final int SC_GATEWAY_TIMEOUT = 504;
  public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;

  public abstract void addCookie(Cookie paramCookie);

  public abstract boolean containsHeader(String paramString);

  public abstract String encodeURL(String paramString);

  public abstract String encodeRedirectURL(String paramString);

  /**
   * @deprecated
   */
  public abstract String encodeUrl(String paramString);

  /**
   * @deprecated
   */
  public abstract String encodeRedirectUrl(String paramString);

  public abstract void sendError(int paramInt, String paramString)
    throws IOException;

  public abstract void sendError(int paramInt)
    throws IOException;

  public abstract void sendRedirect(String paramString)
    throws IOException;

  public abstract void setDateHeader(String paramString, long paramLong);

  public abstract void addDateHeader(String paramString, long paramLong);

  public abstract void setHeader(String paramString1, String paramString2);

  public abstract void addHeader(String paramString1, String paramString2);

  public abstract void setIntHeader(String paramString, int paramInt);

  public abstract void addIntHeader(String paramString, int paramInt);

  public abstract void setStatus(int paramInt);

  /**
   * @deprecated
   */
  public abstract void setStatus(int paramInt, String paramString);
}
 

 

2.1HttpServletResponse 对象所想描述的结构如下(http响应格式图):

 

 

 

 

 

 

其中,消息头,可以通过“meta ”标签equiv属性来模拟,如下

 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
……
 

但是其优先级没有相应头高。

 

 

 

另外,如果页面本身编码为utf-8,浏览器将会识别出来,并强制设置为utf-8编码。"Content-Type""将不起作用。

 

 

3.ServletOutputStream和PrintWriter

 

ServletResponse类提供了如下两个方法:

 

 

public abstract ServletOutputStream getOutputStream()
    throws IOException;

  public abstract PrintWriter getWriter()
    throws IOException;
 

 

 

 

      Servlet程序向ServletOutputStreamPrintWriter对象中写入的数据将被Servlet引擎获取,Servlet引擎,将这些数据当作响应消息的正文,然后再与响应状态行,响应头组合输出到客户端(通常为IEChrome等浏览器)。

 

       ServletOutputStream主要针对字节,而PrintWriter针对字符串。另外getOutputStreamgetWriter在一个service方法中不能同时调用。

 

 

参考:《深入体验Java_Web开发内幕-核心基础\》

  • 大小: 10.5 KB
分享到:
评论

相关推荐

    javaee源代码

    标题"javaee源代码"表明这是JavaEE相关的源码集合,可能包含了实现JavaEE规范的各种组件的源文件。这对于学习和理解JavaEE的工作原理非常有价值,因为通常在实际开发中我们使用的是预编译好的库文件,而源代码可以让...

    JAVAEE_api_中英文对照版

    此压缩包“JAVAEE_api_中英文对照版”提供了一个宝贵的资源,帮助开发者理解和使用Java EE中的各种组件和接口。 在Java EE API中,最重要的部分包括: 1. **Servlet**:Servlet是Java编程语言中的一个接口,用于...

    javaee.jar的源代码

    源代码对于学习和理解其工作原理至关重要,特别是对于调试和定制功能时。 在描述中提到,有些在线提供的`javaee.jar`版本可能不包含`javax.servlet`的源码。`javax.servlet`是Java Servlet API的一部分,它是JavaEE...

    javaEE复习题

    给顶一个JSP程序源代码,如下:** ```jsp ``` - **问题描述:**在two.jsp中可以输出参数location值的代码片段是什么? - **答案解析:** - D、("location")%&gt; 正确答案。`request.getParameter`方法用于获取...

    javaee中核心jar包

    `javax.servlet`和`javax.servlet.http`这两个包提供了Servlet和Filter接口,以及HttpServletRequest和HttpServletResponse等类,使得开发者能够构建动态Web应用程序。 2. **JSP API**:JavaServer Pages(JSP)是...

    servlet3.0新特性源代码

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); Part part=req.getPart("file"); //获取页面的name /...

    3.5javaEE_原生servlet_人力资源管理系统.zip

    【描述】:这个压缩包文件包含了一个基于JavaEE平台的人力资源管理系统的源代码。系统利用了原生的Servlet技术进行开发,旨在提供一套全面的人力资源管理解决方案。通过这个项目,开发者可以学习到如何使用Servlet来...

    JavaEE实验,javaee实验心得体会,Java源码.zip

    在JavaEE实验中,我们深入理解了JDBC连接池的概念,学习了如何配置数据源,以及如何使用PreparedStatement和ResultSet来执行SQL查询和处理结果。 EJB则是JavaEE中用于构建业务逻辑组件的高级框架,提供了实体Bean...

    JavaEE API中英文对照

    Servlet API包括`javax.servlet`和`javax.servlet.http`包,其中`HttpServletRequest`和`HttpServletResponse`接口是处理HTTP请求和响应的核心类。 2. **JSP(JavaServer Pages)**:JSP是一种视图技术,用于创建...

    专题资料(2021-2022年)JavaEE轻量级解决方案S2SH试卷A和标准答案1.doc

    选项D表示添加HttpServletRequest和HttpServletResponse参数到execute()方法可以直接访问,这是正确的做法。 3. **Struts2动态方法调用**:Struts2允许动态方法调用来直接调用Action的特定方法。选项A配置启用动态...

    java教程我们上课用的

    - `&lt;%-- --%&gt;`:只在源代码中可见的注释。 - **3.4.5 动作标识** - `&lt;jsp:include&gt;`:包含动态文件。 - `&lt;jsp:forward&gt;`:转发到另一个资源。 - `&lt;jsp:param&gt;`:传递参数。 - **3.4.6 内置对象** - `out`:输出...

    韩顺平javaEE之servlet部分的源码文件.rar

    这个压缩包"韩顺平javaEE之servlet部分的源码文件.rar"包含了他在讲解servlet部分时使用的源代码,这些源码不仅有助于理解servlet的工作原理,还能帮助我们学习如何实际应用。 首先,让我们来了解一下Servlet。...

    JavaEE航空订票系统课程设计论文jsp实验报告.pdf

    它将数据访问逻辑从应用逻辑中分离出来,有助于简化、标准化对数据源的操作,并提高代码的可复用性。 5. 过滤器(Filter):在Java EE中,Filter是用于对Web请求进行过滤处理的一种组件。在提供的文件中,...

    j2ee试题集(附答案)及重点总结

    本资源包含了一份详细的J2EE试题集,涵盖了从基础到进阶的各种知识点,并附有答案,非常适合进行J2EE相关考试的复习。以下是对这些知识点的详细阐述: 1. **Java基础** - Java是一种面向对象的编程语言,具有平台...

    Java最简单的maven版helloword

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().println("Hello, World!"); } } ``` 然后,我们需要在`src/...

    配置weblogic11

    - **Servlet源代码**(部分): ```java package myservlets; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class SampleServlet extends ...

    Servlet示例

    标签"源码"暗示我们可以通过查看ServletDemo的源代码来学习如何编写和配置Servlet。"工具"可能指的是用于开发和调试Servlet的应用,如Eclipse、IntelliJ IDEA等集成开发环境,以及Tomcat、Jetty等Servlet容器。 ...

    eclipse+maven创建web项目

    之后,我们可以创建源代码目录结构。在项目根目录下,新建`src/main/java`用于存放Java源代码,`src/main/resources`存放资源文件,`src/main/webapp`存放Web应用的静态文件,如HTML、CSS、JavaScript,以及WEB-INF...

    sevletDemo

    1. **Servlet类**:这是Java源代码文件,扩展名为.java,实现了javax.servlet.Servlet或javax.servlet.http.HttpServlet接口。例如,可能有一个名为`MyServlet`的类,它重写了`service()`方法来处理HTTP请求。 2. *...

Global site tag (gtag.js) - Google Analytics