java中Request和Response常用方法及举例

Request的常用方法:

    setAttribute()              在Request域中存储数据
    setCharacterEncoding()      设置请求参数的编码方式,只对post请求有效
    getAttribute()              获取域中存储的数据
    getAttributeNames()         获取域中所有数据,返回一个Enumeration枚举类
    getMethod()                 获取请求方法
    getParameter()              获取指定请求参数名称
    getParameterNames()         获取所有请求参数,返回一个Enumeration枚举类
    getServerName()             获取请求的服务器
    getServletPath()            Servlet路径
    getRequestURI()             URI路径
    getProtocol()               使用协议
    getContextPath()            返回上下文(项目)路径
    getQueryString()            查询字符串
    getRemoteAddr()             使用者主机IP
    getRemotePort()             使用者使用端口号.
    getCookies()                获取所有Cookie,返回一个Cookie数组
    getRequestDispatcher()      获取转发器,参数路径以/打头,代表WebRoot(当前WEB项目根目录)
    getSession()                获取Session对象

 举例:http://localhost:8080/test/request.do?name=john&age=20

  请求的服务器: localhost

  使用协议: HTTP1.1

  请求方法: GET

  请求的端口号: 8080

  Context路径: test

  Servlet路径: request.do

  URI路径: /test/request.do

  查询字符串: name=john&age=20

  使用者主机IP: 127.0.0.1

  使用者使用端口号: ****

Response的常用方法:

    setContentType()                告知浏览器数据类型
    setCharacterEncoding()          设置Response的编码方式
    setHeader()                     设置消息头
    setIntHeader()                  通知浏览器在给定的时间后刷新,时间以秒为单位
    setDateHeader()                 处理页面缓存,防止JSP或者Servlet中的输出被浏览器保存在缓冲区中。
                                    java中一般设置为response.setDateHeader("Expires", 0)
                                    与jsp中response.setDateHeader("Expires", -1)效果一致
    setStatus()                     设置相应状态码
    sendError()                     返回服务器的预设错误网页并显示错误信息。
                                    response.sendError(404)返回的Content-Type:text/html                     
    sendRedirect()                  重定向页面
    getOutputStream()               获取通向浏览器的字节流(同一次请求处理中,字节流和字符流不能同时存在)
    getWriter()                     获取通向浏览器的字符流(同一次请求处理中,字节流和字符流不能同时存在)
    addCookie()                     添加Cookie

    encodeURL()                     对给定的url进行编码,以用于sendRedirect方法;
                                    如果不需要编码,则直接返回(未经修改的)url。
    encodeRedirectURL()             都对url附加上jsessionid参数进行了处理,如果需要,则在url的
                                    path后面附加上;jsessionid=xxx;如果不需要则直接返回传入的url。

HttpServletResponse的encodeRedirectURL()与encodeURL()的差别?

    共同点:
            都对url附加上jsessionid参数进行了处理,如果需要,则在url的path后面附加
        上;jsessionid=xxx;如果不需要则直接返回传入的url。
    不同点:
            encodeURL在附加jsessionid之前还对url做了判断处理:如果url为空字符串(长度为0的字符串),则将
        url转换为完整的URL(httphttps开头的);如果url是完整的URL,但不含任何路径(即只包含协议、主
        机名、端口,例如http://127.0.0.1),则在末尾加上根路径符号/。也就是encodeURL如果进行了编
        码,则返回的URL一定是完整URL而不是相对路径;而encodeRedirectURL则不对URL本身进行处理,只专
        注于添加jsessionid参数(如果需要)。

你可能感兴趣的:(java基础篇)