浅谈servlet中的request与response

在b/s架构中,有request浏览器的请求,也有response的服务器反馈。底层是tcp/ip协议,应用层是http协议。在tomcat服务器中,版本6使用的http1.1版本协议。服务器发出request请求,在请求中有可能加载get和post请求(doget请求,是放在URL中可以使用getparmeter进行解析,因为tomcat把每一个网页请求看做一个对象,所以是面向对象(HttpServletRequest)进行封装,并有doget和dopost进行 对应的解析。主要的API如下:

核心的API:

请求行:

request.getMethod();   请求方式

request.getRequetURI()   / request.getRequetURL()   请求资源

request.getProtocol()   请求http协议版本

请求头:

request.getHeader("名称")   根据请求头获取请求值

request.getHeaderNames()    获取所有的请求头名称

实体内容:

request.getInputStream()获取实体内容数据

在request请求中牵涉到编码问题,setenconding 可以,字节码强制转换也可以,xml配置也可以。

对于,httpservletresponse服务器反馈,也要牵涉到编码问题,可以在响应头中进行声明。其他的也可以字节码强制转换(好像socket编程,什么base64加密啥的记忆尤新呐)。浏览器的各种反馈码,比如404,500等也得到了大致学习。

常见的响应头 (response)  

Location: http://www.jb51.net  -表示重定向的地址,该头和302的状态码一起使用。
Server:apache tomcat         ---表示服务器的类型
Content-Encoding: gzip         -- 表示服务器发送给浏览器的数据压缩类型
Content-Length: 80          --表示服务器发送给浏览器的数据长度
Content-Language: zh-cn        --表示服务器支持的语言
Content-Type: text/html; charset=GB2312  --表示服务器发送给浏览器的数据类型及内容编码
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --表示服务器资源的最后修改时间
Refresh: 1;url=http://www.jb51.net   --表示定时刷新
Content-Disposition: attachment; filename=aaa.zip --表示告诉浏览器以下载方式打开资源(下载文件时用到)
Transfer-Encoding: chunked
Set-Cookie:SS=Q0=5Lb_nQ; path=/search  --表示服务器发送给浏览器的cookie信息(会话管理用到)
Expires: -1              --表示通知浏览器不进行缓存
Cache-Control: no-cache
Pragma: no-cache
Connection: close/Keep-Alive      --表示服务器和浏览器的连接状态。close:关闭连接 keep-alive:保存连接

以上这篇浅谈servlet中的request与response就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2016-07-21

java中request常用方法小结

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. request常用方法: 一.获取客户机环境信息常见方法: 1.getRequestURL方法返回客户端发出请求时的完整URL. 2.getRequestURI方法返回请求行中的资源名部分. 3.getQueryString方法返回请求行的参数部分. 4.getRemoteAddr方法返回发出请求的客户机

java web学习_浅谈request对象中get和post的差异

阅读目录(Content) •1.get与post的区别 •1.1 get方法 jsp中的代码form表单代码 •1.2 action包中servlet的doGet方法中的代码 •2.运行结果 •2.1 输入数据 •2.2 打印出数据 •3.post方法 •4.对比 •4.1 在输出页面按下F12查看 •5.分析 1.get与post的区别 Get和Post方法都是对服务器的请求方式,只是他们传输表单的方式不一样. 下面我们就以传输一个表单的数据为例,来分析get与Post的区别 1.1 get

HttpServletRequest对象方法的用法小结

深入体验JavaWeb开发内幕--关于HttpServletRequestRequest对象 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的相关方法,即可以获得客户的这些信息. 一.通过request常用方法获得相关信息: 1.通过request常用方法获得客户机信息 getRequestURL方法返回客户端发出请求时的完整URL. getRequestURI方法返回请求行中的资

java发送http get请求的两种方法(总结)

长话短说,废话不说 一.第一种方式,通过HttpClient方式,代码如下: public static String httpGet(String url, String charset) throws HttpException, IOException { String json = null; HttpGet httpGet = new HttpGet(); // 设置参数 try { httpGet.setURI(new URI(url)); } catch (URISyntaxExc

java发送http get请求的两种方式

长话短说,废话不说 一.第一种方式,通过HttpClient方式,代码如下: public static String httpGet(String url, String charset) throws HttpException, IOException { String json = null; HttpGet httpGet = new HttpGet(); // 设置参数 try { httpGet.setURI(new URI(url)); } catch (URISyntaxExc

Vue 利用指令实现禁止反复发送请求的两种方法

前端做后台管控系统,在某些接口请求时间过长的场景下,需要防止用户反复发起请求. 假设某场景下用户点击查询按钮后,后端响应需要长时间才能返回数据.那么要规避用户返回点击查询按钮无外乎是让用户无法在合理时间内再次点击按钮.实现方式也有好几种: 1.在按钮点击发起请求后,弹个蒙层,显示个loading,等请求数据返回了将蒙层隐藏掉. 2.在按钮点击发起请求后,将按钮禁用掉,同样等数据返回了将按钮禁用解除. 以上是比较常见的2种方案. 实现上最简单的肯定是在需要的页面种在请求前和拿到数据后,单独处理.这

django ajax发送post请求的两种方法

django ajax发送post请求的两种方法,具体内容如下所述: 第一种:将csrf_token放在from表单里 <script> function add_competion_goods() { $.ajax({ url: "{% url 'add_competition_goods' %}", type: "POST", dataType: "json", data: $('#add_competition_goods_fr

Java动态验证码单线设计的两种方法

1.java的动态验证码我这里将介绍两种方法: 一:根据java本身提供的一种验证码的写法,这种呢只限于大家了解就可以了,因为java自带的模式编写的在实际开发中是没有意义的,所以只供学习一下就可以了,待会讲解的第二种呢就是我们需要掌握的一种模式了: 第一种的代码如下: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import

Java编程求二叉树的镜像两种方法介绍

给出一棵二叉树,求它的镜像,如下图:右边是二叉树是左边二叉树的镜像. 仔细分析这两棵树的特点,看看能不能总结出求镜像的步骤.这两棵树的根节点相同,但他们的左右两个子节点交换了位置.因此我们不妨先在树中交换根节点的两个子节点,就得到了下面一幅图中的第二颗树 解法1(递归) 思路1:如果当前节点为空,返回,否则交换该节点的左右节点,递归的对其左右节点进行交换处理. /*class TreeNode{ int val; TreeNode left=null; TreeNode right=null;

基于Java数组实现循环队列的两种方法小结

用java实现循环队列的方法: 1.添加一个属性size用来记录眼下的元素个数. 目的是当head=rear的时候.通过size=0还是size=数组长度.来区分队列为空,或者队列已满. 2.数组中仅仅存储数组大小-1个元素,保证rear转一圈之后不会和head相等.也就是队列满的时候.rear+1=head,中间刚好空一个元素. 当rear=head的时候.一定是队列空了. 队列(Queue)两端同意操作的类型不一样: 能够进行删除的一端称为队头,这样的操作也叫出队dequeue: 能够进行插

Java实现文件上传的两种方法(uploadify和Spring)

最近项目中用到的两种文件上传方式做一下总结: 一. uploadify: uploadify控件的scripts和styles在这里:图片上传 JSP: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ include file="../jsp/include/taglibs.jsp"%> <!DOCTYPE HTML PUBL

在DWR中实现直接获取一个JAVA类的返回值的两种方法

第一种实现(来源网上转贴): js 代码 function Test() { var _data = ""; this.getString = function() { //设置成同步 DWREngine.setAsync(false); //调用Java类Test的getString方法,callBackFun为回调函数 JTest.getString(function(data){_data = data;} //重新设置为异步方式 DWREngine.setAsync(true)

java创建线程的两种方法区别

在Java中创建一个线程有两种方法:继承Thread类和实现Runnable接口. 下面通过两个例子来分析两者的区别: 1)继承Thread类 public class TestThread extends Thread { int count = 3; public TestThread(String ThreadName) { super(ThreadName); } @Override public void run() { for (int i = 0; i < 10; i++) if