[Day 7] Request & Response

前言

今天主要来记录一下
HttpServletRequest 和 HttpServlerResponse
是HttpServlet 的doGet()和doPost()所接受的参数
分别继承了ServlerRequest及ServlerResponse的interface


HttpServlerRequest

较常使用到的method

  • getParameter(“name”)
    取出form的的参数

  • gerParameterValues()
    和getParameter相同,只是回传的是string array

  • getHeader(“User-Agent”)
    client 的browser资讯以字串回传)

  • getIntHeader(“User-Agent”)
    client 的browser资讯(以整数回传)

  • getCookies()
    取出cookies相关资讯

  • getSession()
    取出cilent的session

  • getMethod()
    request的HTTP方法

  • getInputStream()
    request的InputStream
    通常如果只是取参数值会使用getParameter或是gerParameterValues
    但若是当资料内容很大的时候,资料内容包含文字或二进位的的内容
    就会使用该方法取得InputStream物件
    可运用在upload的时候
    和他很像的方法为getReader(),如果两个同时呼叫会抛出IllegalStateException例外

  • getRemotePort()
    取得cilent的port

  • getServerPort()
    request要被送往的port

  • getLocalPort()
    request最后送出的port

其中除了getParameter,gerParameterValues,getInputStream
以及getRemotePort,getServerPort,getLocalPort是ServletRequest所提供的之外
其他部分都是由HttpServletRequest提供

API:
ServletRequest
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html

HttpServletRequest
http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

另外关于getParameter
还有一个跟他很像的method叫做getAttribute
但差别在于getAttribute是取一个物件(同时也有setAttribute这个method)
而getParameter是接收字串格式的资料

HttpServlerResponse

较常使用到的method

  • setContentType()
    通常使用在呼叫getOutputStream()或getWrite()之前
    设定所response所回传的内容形式(mime types)

  • getOutputStream()
    写入非字元资料,使用write输出

  • getWriter()
    处理字元资料用,使用println()输出

  • setHeader()
    override既有的head值

  • addHeader()
    添加额外的head值

  • setIntHeader()
    以整数取代现有的head值,或在response增加新的head值

以上setContentType,getOutputStream和getWriter都是ServlerResponse所提供的
其余为HttpServlerResponse提供

API:
ServlerResponse
https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletResponse.html

HttpServlerResponse
http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html


参考资料:

http://informationgrocery.blogspot.tw/2009/11/javagetparametergetattribute.html

http://openhome.cc/Gossip/ServletJSP/GetReaderInputStream.html