注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

骇客归来

ぁ枫あ

 
 
 

日志

 
 

HttpServlet简述

2006-10-23 15:30:47|  分类: Jsp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
HttpServlet位于javax.servlet.http包下,这个包提供了用来扩展基于http协议的servlet.这个包中主

要的类三HttpServlet抽象类。这个类扩展了GenericServlet,这个类除了继承下来的service()方法外还

提供了很多方法来处理不同的任务。
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                             throws ServletException, IOException
从指定URL中取得数据
protected void doHead(HttpServletRequest req, HttpServletResponse resp)
                                           throws ServletException, IOException
和doGet类似,只是他只要求返回 HTTP header的信息
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                                           throws ServletException, IOException
从客户端向服务器端发送信息
 protected void doOptions(HttpServletRequest req, HttpServletResponse resp)
                                           throws ServletException, IOException
    protected void doTrace(HttpServletRequest req, HttpServletResponse resp)
                                           throws ServletException, IOException
这两个方法允许你重写HTTP的行为,基本上没有用到
protected void doPut(HttpServletRequest req, HttpServletResponse resp)
                                       throws ServletException, IOException
这个方法主要用来向服务器端上传文件(与使用FTP的方式类似)



HTTP Responses 和 Requests对象

HttpServletRequest
获取HTTP的header信息:
使用HttpServletRequest的下列方法:
    public String getHeader(String name)//注意这里的name的值不区分大小写
    public java.util.Enumeration getHeaders(String name)
    public long getDateHeader(String header)
    public int getIntHeader(String header)
    public java.util.Enumeration getHeaderNames()
    public String getMethod()

给定以下URL
http://localhost:8080/servletExamples/TestServlet?name=sam
public String getQueryString()//name=sam
 public String getContextPath()// servletExamples
 public String getServletPath()// /TestServlet
public String getRequestURI()// /servletExamples/TestServlet?name=sam
public String getRequestURL() // http://localhost:8080/servletExamples/TestServlet?name=sam


HttpServletResponse

设置Http Response的Header和Content Type的值
    public void addHeader(String name, String value)
    public void setDateHeader(String name, long date)
    public void addIntHeader(String name, int value)
    public void setHeader(String name, String value)
    public void setDateHeader(String name, long value)
    public void setIntHeader(String name, int value)
注意addXxx()和setXxx()的区别,add指 simply add a named header value to the response,set指设置

新值,如果name不存在则创建它.
    public void setContentLength(int length)
    public void setContentType(String type)
    //response.setContentType("text/html");

从Response得到Text Stream
public java.io.PrintWriter getWriter() throws java.io.IOException
调用这个方法的时候一般会调用Response的flushBuffer() 方法把缓冲区的内容发送到客户端,这个方法

和调用PrintWriter的flush() 方法一样.

从Response得到二进制流
    public javax.servlet.ServletOutputStream getOutputStream() throws
                                      java.io.IOException
调用这个方法的时候一般会调用Response的flushBuffer() 方法把缓冲区的内容发送到客户端,这个方法

和调用PrintWriter的flush() 方法一样.

转发请求到其他URL
public void sendRedirect(String location)
注意:这里的location可以是绝对路径(以"/"开始)和相对路径,当请求的路径不存在的时候

IllegalStateException会被抛出.

获得HTTP头信息的方法:

        Enumeration e = request.getHeaderNames();
        while (e.hasMoreElements()) {
          String headerName = (String)e.nextElement();
          String headerValue = request.getHeader(headerName);
          out.println("<tr><td>");
          out.println(headerName);
          out.println("</td><td>");
          out.println(headerValue);
          out.println("</td></tr>");
        }





  评论这张
 
阅读(806)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017