Request

个我总结:只要记住 只要是有关于客户端请求的信息,都可以藉由它来取得,例如请求标头、请求方法、请求参数、使用者IP等等信息。

3.什么情况下为响应?什么情况下为请求?
简单一句话,请求就是好像你向某个为借东西,响应就是他把这个东西借给你!!!

 

[JSP] JSP中的隐藏对象 -- request- -

  request告,就可以在JSP网页中使用,在转
译为Servlet之后,它会转换为javax.servlet.http.HttpServletRequest型态的对
象,HttpServletRequest对象是有关于客户端所发出的请求之对象,只要是有关于客户端请求的信息,都可以藉由它来取得,例如请求标头、请
求方法、请求参数、使用者IP等等信息。
  request的主要方法:
  getParameterNames():取得客户端所发出的请求参数名称.
  getParameter():可以让您指定请求参数名称,以取得对应的设定值.
  getServerName():请求的服务器.
  getProtocol():使用协议.
  getMethod():请求方法.
  getServerPort():请求端口号.
  getContextPath():Context路径. context理解为上下文比较好(也就是一个项目)
  getServletPath(): Servlet路径.
  getRequestURI():URI路径.
  getQueryString():查询字符串.
  getRemoteAddr():使用者主机IP.
  getRemotePort():使用者使用端口号.
  例子:
  http://localhost:8080/myjsp/requestdemo.jsp?name=john&nick=johncn
  对应的信息为:
  请求的服务器: localhost
  使用协议: HTTP/1.1
  请求方法: GET
  请求的端口号: 8080
  Context路径: /myjsp
  Servlet路径: /requestdemo.jsp
  URI路径: /myjsp/requestdemo.jsp
  查询字符串: name=john&nick=johncn
  使用者主机IP: 127.0.0.1
  使用者使用端口号: 1060

response

  [JSP] JSP中的隐藏对象 -- response- -
  JSP的response隐藏对象在转换为Servlet之后,对应于HttpServletResponse型态对象,HttpServletResponse对象是有关于对客户端请求之响应,您可以利用它来设定一些要响应的讯息,例如标题信息、响应状态码等.
  response的常用方法:
  setHeader():是一个通用的标头设定方法,您可以用它来设定任何「名称/值」的标头.
  setIntHeader():是专门用来设定整数值标头的版本.
  setDateHeader():是setHeader()的Date设定版本,第二个参数是设定Date的Long数值,0表示GMT 1970/1/1 00:00。
  (Note:以上3个函数用来设置HTTP协议的表头,必须对HTTP协议有些了解才能正确使用,我现在也不清楚).
  setStatus():是用来设定回应的状态码,例如404 Not Found,HttpServletResponse类中提供了一些助忆常数设定,例如SC_NOT_FOUND就是表示404状态码(可以在Servlet API文件中查询相关的助忆常数).
  sendError():会根据服务器的预设错误网页回报方式显示错误讯息.
  sendRedirect():设置重定向页面.
  getWriter():取得PrintWriter对象,由它来写出响应至服务器的本体信息.

1.输出文本和HTML代码
利用的是response提供的Write()方法
Response.Write("peterbbs");
Response.Write("< br />");输出换行符号
string table ="<table border=1>........";
Response.Write(table);//Output html

2.输出图像
Response输出图像是通过输出该图像的二进制数据实现的实现方法BinaryWrite();
具体方法:
(1) 将图像的虚拟地址转换为物理地址
(2) 定义文件流 读取二进制数据 并保存
(3) 调用方法BinaryWrite();
(4) 设置当前的Web窗体页的输出格式为“image/pjpeg”,此格式只能输出文件后缀名".jpg"的图像
(5) 调用Response对象的End()方法,中止页面的其他输出。

string path = Request.MapPath("~/image.gif");
        FileStream fs = new FileStream(path,FileMode.Open,FileAccess.Read);
        byte[] imageData = new byte[(int)fs.Length];
        fs.Read(imageData, 0, (int)fs.Length);
        Response.BinaryWrite(imageData);
        Response.End();//使用这个东西的时候,你会发现你再response的任何write方法都失效了

3.页面间的跳转
这里我就不写了,在我的BAIDU空间里有关于新窗口的response.redirect的方法

4.页面间的参数传递
直接就response.redirect("######.aspx ? id =10"); 就可以了,需要记住这个格式,很固定的。
获取传递过来参数就直接调用Request.Param 就可以获取这个值了


其它问题:
1.JSP中,request是不是HttpServletRequest的一个实例?  
                      response是不是HttpServletResponse的一个实例?  
        若是,我就不理解了,HttpServletRequest不是接口吗?接口怎么会有实例呢?  
        若不是,request/response它是哪个类的实例呢?
request是HttpServletRequest的一个子类的实例,这么说很含糊,事实上这个具体类根据不同的服务器是不同的,但是这些
具体类都implement了HttpServletRequest接口。因为无法确定具体是哪个类,所以request只能说与
javax.servlet.http.HttpServletRequest对应。你可以在不同的服务器下使用相同的Jsp页面,在其中嵌
入<%=request.getClass()%>看看
request对象与javax.servlet.http.HttpServletRequest类对应,  
  response对象与javax.servlet.http.HttpServletResponse类对应
2.当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。解决方法是在需要接收request对象内容的页面加一句
request.setCharacterEncoding("GB18030");
这里的GB18030是根据你自己的页面编码来决定的。
3.什么情况下为响应?什么情况下为请求?
简单一句话,请求就是好像你向某个为借东西,响应就是他把这个东西借给你!!!

Request和response的用法总结的更多相关文章

  1. request 和response

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  2. java web(四):request、response一些用法和文件的上传和下载

    上一篇讲了ServletContent.ServletCOnfig.HTTPSession.request.response几个对象的生命周期.作用范围和一些用法.今天通过一个小项目运用这些知识.简单 ...

  3. java web(三):ServletContext、session、ServletConfig、request、response对象

    上一篇讲了Servlet: 1)什么是Servlet[servlet本身就是一种Java类,这种Java类提供了web形式的方法,只要实现了servlet接口的类,都是一种servlet资源.] 2) ...

  4. #HTTP协议学习# (一)request 和response 解析

    注:本文转自:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html , 粉字[]内内容为个人笔记 当今web程序的开发技术真是 ...

  5. JSP Servlet中Request与Response所有成员方法的研究

    HttpServletRequest与HttpServletResponse作为Servlet中doGet.doPost等方法中传递的参数,承接了Http请求与响应中的大部分功能,请求的解析与响应的返 ...

  6. 转 #HTTP协议学习# (一)request 和response 解析

    http://www.cnblogs.com/bukudekong/p/3834020.html #HTTP协议学习# (一)request 和response 解析   注:本文转自:http:// ...

  7. javaweb入门-----request与response的作用

    request对象和request对象的原理 1.request和response对象request对象和request对象的原理时由服务器创建的,我们来使用它们 2.request对象是来获取请求消 ...

  8. python的scrapy框架的使用 和xpath的使用 && scrapy中request和response的函数参数 && parse()函数运行机制

    这篇博客主要是讲一下scrapy框架的使用,对于糗事百科爬取数据并未去专门处理 最后爬取的数据保存为json格式 一.先说一下pyharm怎么去看一些函数在源码中的代码实现 按着ctrl然后点击函数就 ...

  9. Request 和 Response 原理

    * Request 和 Response 原理:     * request对象和response对象由服务器创建,我们只需要在service方法中使用这两个对象即可        * 继承体系结构: ...

随机推荐

  1. mac上eclipse用gdb调试(转)

    mac上eclipse用gdb调试 With its new OS release, Apple has discontinued the use of GDB in OS X. Since 2005 ...

  2. Oracle 截取字符串

    如下有一个创建函数的代码,是将一穿字符串按照逗号‘,’分割成若干段 create or replace function SplitStringByComma(aName in varchar2) r ...

  3. List中存储同一个对象(内容不同)

    List中存储同一个对象,前面的会被后存入的对象覆盖,解决方法:每次存入新的对象

  4. 两个平行div之间有间隙

    两个平行的div使用 display: inline-block 会导致元素之间有空隙解决方法: 父元素设置 font-size: 0;

  5. android线程登录

    主入口代码: package com.tp.soft.app; import java.io.IOException; import java.util.HashMap; import java.ut ...

  6. (转)pymysql 连接mysql数据库---不支持中文解决

    往数据库里插入中文时出现异常:UnicodeEncodeError: 'latin-1' codec can't encode characters 就是编码的问题,pymysql默认的编码是lati ...

  7. socket.io 中文手册 中文文档

    服务端 io.on('connection',function(socket));//监听客户端连接,回调函数会传递本次连接的socket io.sockets.emit('String',data) ...

  8. 解决redhat 没注册的情况下yum无法使用的问题

       官网下载的rhel,安装后是没有配置yum源的,需要自己配置yum源.网络上的很难找到rhel的yum源,但是在ISO镜像里面有很多redhat提供的软件包,也是正版软件,我们可以把这个拷贝出来 ...

  9. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第一组(转)

    两个PPT结合起来--一些基础介绍--每一步的详细细节还要去研读文档 EMV-全球标准PBOC-国内标准 ----------------------一:必选:应用选择应用选择的方法:目录选择法.AI ...

  10. Dev Express 动态生成XRTable使用总结

    1. XRTableCell常见属性  XRTableCell xrTableCell = new XRTableCell(); A. 字体及字体大小 xrTableCell.Font = new S ...