Serlect的笔记二(request 、 ersponse)

Web服务器收到客户端的http请求,会针对每一次请求,
分别创建一个用于代表请求的request对象、和代表响应的response对象。

下面这两个对象的基本理解:

一、HttpServletRequest

  1、请求行
      Get http://localhost:8080/day09/servlet/req1?username=zs http/1.1
        getMethod(); 获得请求方式
        * getRequestURL(); 返回客户端发出请求时的完整URL。
        * getRequestURI(); 返回请求行中的资源名部分。
        **getContextPath(); 当前应用的虚拟目录 /day09_01_request
        getQueryString() ; 返回请求行中的参数部分。

  2、请求消息头
      * String getHeader(String name) 根据头名称得到头信息值
         Enumeration getHeaderNames() 得到所有头信息name
         Enumeration getHeaders(String name) 根据头名称得到相同名称头信息值

  3、请求正文(重要)

    与获取表单数据相关的方法:
      *** getParameter(name) 根据表单中name属性的名,获取value属性的值方法
      *** getParameterValues(String name)专业为复选框取取提供的方法
         getParameterNames() 得到表单提交的所有name的方法
      *** getParameterMap 得到表单提交的所有值的方法 //做框架用,非常实用
         getInputStream 以字节流的方式得到所有表单数据

    与操作非表单数据相关的方法(request也是一个域对象,即内部管理一个Set集合):
      *** void setAttribute(String name, Object value); 向request的Set集合中存入一个键值对
      *** Object getAttribute(String name); 从request集合中取出一个键值对
         Void removeAttribute(String name); 从request集合中移除一个键值对

    与请求转发相关的方法:
         RequestDispatcher getRequestDispatcher(String path) //得到请求转发或请求包含的协助对象
      *** forward(ServletRequest request, ServletResponse response) //转发的方法
         include(ServletRequest request, ServletResponse response) //请求包含

    与请求编码相关的方法:
      (1)解决post方式编码:
        *****request.setCharacterEncoding("UTF-8"); //告诉服务器客户端是什么编码,只能处理post请求方式
        (2)解决get方式编码:
        String name = new String(name.getBytes(“iso-8859-1”),"UTF-8");

二、HttpServletResponse
  1、响应行 HTTP/1.1 200 OK
     setStatus(int sc) 设置响应状态码
  2、响应头
    ***** sendRedirect(String location) 请求重定向(是两行代码的结合)
           setHeader(String name, String value) 设置响应头信息

        response.setHeader("content-type", "text/html;charset=UTF-8");
          告知浏览器使用什么码表

    //告知客户端不缓存
        response.setHeader("pragma", "no-cache");
        response.setHeader("cache-control", "no-cache");
        response.setDateHeader("expires", 0);

    Referesh刷新

  3、响应正文(主体)
    *** getWrite(); 字符输出流
       getOutputStream(); 字节输出流
       setCharacterEncoding(String charset) 告知服务器使用什么编码
    ***** setContentType(String type) 告之服务器和客户端使用什么编码

时间: 2024-12-21 02:55:25

Serlect的笔记二(request 、 ersponse)的相关文章

webpy使用笔记(二) session/sessionid的使用

webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶着重复的基本工作,从在学校时候就养成了追究原理的习惯,从而有了这篇session的使用和说明. PS:其实有些总结的东西挺好的,想分享给大家看,而不是枯燥的代码,这东西说实话对其他人用处不大,但都被移除首页了~~ webpy中的session 下面为官方的例子,用session来存储页面访问的次数,

《How Tomcat Works》读书笔记(二)

<How Tomcat Works>读书笔记(二) 这是<How Tomcat Works>第一二章的读书笔记.第一张主要写了一个静态资源处理的web服务器,第二章加了对servlet的处理. 1. 概述 1.1 架构 HttpServer:表示Http服务器,与客户端通信,处理Http请求. StaticResourceProcessor:对静态资源请求进行处理. ServletProcessor:对Servlet资源请求进行处理. Request:表示Http请求,实现了Ser

Ajax学习笔记(二)

二.prototype库详解 1.prototype库的使用 //导入下载好的prototype.js文件 <script type="text/javascript" src="prototype.js"></script> //在自己的js中直接使用Prototype对象 <script type="text/javascript"> document.writeln("Prototype库的版本

Cookie学习笔记二:Cookie实例

今天说说刚刚学到的两个Cookie的最经典应用:自动登录和购物车设置 一:自动登录 需要两个页面:login.jsp与index.jsp,login.jsp用来输出登录信息,index.jsp处理登录信息:如果有Cookie,则自动登录,否则创建输入信息的对象的Cookie,下次登录可以直接登录,但是我们在这里给Cookie设置一个最大保存时间30s,即登录30s后会自动退回到登陆页面,具体代码如下: login.jsp: <%@ page language="java" con

spidering hacks 学习笔记(二)

看过去很乱,学习的记录东西而已,等我读完这本书,就把笔记给整理下!嘿嘿 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

Linux System Programming 学习笔记(二) 文件I/O

1.每个Linux进程都有一个最大打开文件数,默认情况下,最大值是1024 文件描述符不仅可以引用普通文件,也可以引用套接字socket,目录,管道(everything is a file) 默认情况下,子进程会获得其父进程文件表的完整拷贝 2.打开文件 open系统调用必须包含 O_RDONLY,O_WRONLY,O_RDWR 三种存取模式之一 注意 O_NONBLOCK模式 int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644

python 3.5 django 笔记(二)Tmeplates与models

回顾上节课的三条经典命令 django-admin startproject 项目名称 #建立项目 python manage.py startapp blog #建立项目内站点 python manage.py runserver #启动服务 #runserver后面可以带端口号,表示运行是的端口 Tmeplates: (图片转载至幕课) 在昨天的myblog\blog下简历templates文件夹 结构树 myblog | |-----blog |    | |    |-----templ

AJax 学习笔记二(onreadystatechange的作用)

AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了onreadyStateChange事件实现这一功能.这类似于回调函数的做法.onreadyStateChange事件可指定一个事件处理函数来处理XMLHttpRequest对象的执行结果,如: 复制代码 代码如下: ajaxObj=createAjaxObject(); var url="/MyTod

laravel3学习笔记(二)

原作者博客:ieqi.net ==================================================================================================== 路由 对于web框架而言,路由系统无疑是其中最关键的部分,Laravel3为用户提供了丰富的路由机制,极大的提高了编码效率.laravel3中,路由可以像一般框架那样绑定到controller类上,也可以直接在路由注册函数中利用回调函数实现访问逻辑.路由注册和配置代码