`
m635674608
  • 浏览: 4932868 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

从服务器获取或设置Header的值

    博客分类:
  • js
 
阅读更多

Servlet代码:

package com.demo.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Services")
public class Services extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public Services() {
		super();
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setHeader("SID""sid_" + Math.round(Math.random() * 1000));

		// 客户端无法获取此值
		response.setHeader("Set-Cookie""WQERQWITQRUWORE");

		response.getWriter().print("{\"msg\":\"ok\",\"code\":0}");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
			IOException {
		String sid = request.getHeader("SID");
		System.out.println("SID:" + sid);

		String xxx = request.getHeader("XXX");
		System.out.println("XXX:" + xxx);

		response.getWriter().print("{\"msg\":\"ok\",\"code\":0}");
	}
}

HTML及JavaScript代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>从服务器获取或设置Header的值</title>
    <script type="text/javascript" src="lib/jquery-1.7.2.min.js"></script>
</head>
<body>
<h3>Header中会话参数(SID)的获取和设置</h3>
<br/>
<button type="button" onclick="get()">GET SID</button>
<br/>
<br/>
<button type="button" onclick="set()">SET SID</button>
<br/>
<br/>
<div style="border:1px solid #ccc;padding:20px;">
	<span id="data"></span><br/>
	<span id="status"></span><br/>
	<strong><span id="sid"></span></strong>
</div>
<script type="text/javascript">
	//获取服务器上的Header值
    function get() {
        $.get('Services', { },
                function (data, textStatus,resObj{
                    $('#data').html(data);
                    $('#status').html(textStatus);
                    
                    //获取自定义header值
                    $('#sid').html(resObj.getResponseHeader('SID'));
                    
                    //无法获取Set-Cookie的值
                    //alert(resObj.getResponseHeader("Set-Cookie"));
                    
                    //获取所有header值
                    //console.log(resObj.getAllResponseHeaders());
                    /*
                     * erver: Apache-Coyote/1.1
                     * SID: sid_786
                     * Content-Length: 21
                     * Date: Tue, 15 Apr 2014 14:23:48 GMT
                     */
                },'text');
    }
	
	//-----------------------------------------------------------
    
	//设置Header值,并发送到服务器
   	function set(){
	  	$.ajax({
	        url: "Services",
	        type: "POST",
	        //1-参数模式
	        headers: {
	            "SID" : "10086"
	        },
	        beforeSend: function(reqObj, settings{
	        	//2-动态设置
	        	reqObj.setRequestHeader('XXX''VVV');
	        },
	        data: {},
	        error: function(resObj, textStatus, errorThrown{
	           //TODO
	        },
	        success: function(data, textStatus, resObj{
	        	alert(resObj.responseText);
	        }
	    });
   	}
</script>
</body>
</html>

注:Set-Cookie:为JavaEE里面设置HttpOnly的形式,JavaScript无法获取,更多参见:http://en.wikipedia.org/wiki/HTTP_cookie#HttpOnly_cookie

 

 

http://my.oschina.net/tsai/blog/222865

分享到:
评论

相关推荐

    java获取http请求的Header和Body的简单方法

    下面小编就为大家带来一篇java获取http请求的Header和Body的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    获得请求头的各种参数信息jsp代码

    获得请求头的各种参数信息jsp代码: ...获取接受客户提交信息的页面: /004.jsp 接受客户提交信息的长度: -1 ...获取头文件中指定头名字的全部值的一个枚举: JSESSIONID=7278C051AADA7370A6DB7492CDD13984

    浅析get和post两种提交方式

    html表单的两种提交方式get是从服务器上获取数据,post是向服务器传送数据。 get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将...

    第6章 ASP.NET 2.0内置对象.ppt

    单的提交有两种方式:...对于get方式,服务器端用Request.QueryString获取变量的值(送的数据量较小 ,安全性低,效率高)。 对于post方式,服务器端用Request.Form获取提交的数据(传送的数据量较大 ,安全性高)。

    JAVA程序员面试题

    setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name):返回由name指定的属性值 getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例 get...

    Nginx作为反向代理时传递客户端IP的设置方法

    因为架构的需要采用多级 Nginx 反向代理,但是后端的程序获取到的客户端 IP 都是前端 Nginx 的 IP,问题的根源在于后端的 Nginx 在 HTTP Header 中取客户端 IP 时没有取对正确的值。 同样适用于前端是 Squid 或者...

    StockExchange:与股票交易所基本相关的服务器应用程序

    StockExchangeDao由StockExchangeDaoImpl实现,以提供对该操作采取的实际操作StockExchangeData用于从StockExchangeAPI获取输入,然后将其转换为值对象(StockExchangeVO),以进行编组和解组(如果使用)。

    asp教程中get post提交表单有5点区别

    get是从服务器上获取数据,post是向服务器传送数据。 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其...

    request的使用.txt

    在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、...

    PHP程序开发范例宝典III

    实例031 不提交表单获取单选按钮的值 43 实例032 选中单选按钮后显示其他表单元素 44 实例033 根据数据表结构自动生成数据录入页面 45 实例034 投票系统中单选按钮与复选框的应用 47 2.3 下拉列表的应用 ...

    超级有影响力霸气的Java面试题大全文档

     forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。...

    xml浅学笔记

    XML可以保存成独立的 ***.xml 的文件,也可以以字符串的形式出现(服务器端生产) 1、XML的最顶端是XML的声明 &lt;?xml version="1.0" encoding="utf-8" ?&gt; 2、XML标记的语法 1、XML标记必须成对出现 2、...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例172 不提交表单获取单选按钮的值 207 实例173 实现复选框中的全选、反选和不选 208 实例174 隐藏域提交用户的ID值 210 实例175 图像域替代提交按钮 211 实例176 跳转菜单实现页面跳转 213 实例177 上传图片预览 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例172 不提交表单获取单选按钮的值 207 实例173 实现复选框中的全选、反选和不选 208 实例174 隐藏域提交用户的ID值 210 实例175 图像域替代提交按钮 211 实例176 跳转菜单实现页面跳转 213 实例177 上传图片预览 ...

    java 面试题 总结

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect...

    powerbuilder案例开发集锦(源码光盘)1

    &lt;br&gt; 光盘中例程出现的问题: &lt;br&gt;FAQ: 第2章 案例2 无图, 运行前必须重新设置路径 第5章 案例1 Ping不了 只有单独连接因特网正常运行,通过局域网、宽带等连接因特网(或曾经连接过局域网)...

    IIS发布以后handle文件找不到404错误的解决方法

    get是从服务器上获取数据,post是向服务器传送数据。 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其...

    actix-covid19

    启动http服务器cargo run单元测试和集成测试cargo test公共路径GET /health是公共路径,将返回OK受保护的路径will need basic authentication header with default (username: user, password: user123)to access ...

    C#中HttpWebRequest的用法详解

    HttpWebRequest类主要利用HTTP 协议和服务器交互,通常是通过 GET 和 POST 两种方式来对数据进行获取和提交。下面对这两种方式进行一下说明: GET 方式: GET 方式通过在网络地址附加参数来完成数据的提交,比如在...

    KODExplorer 芒果云-资源管理器

    [如何使用] 下载程序,解压上传到你的服务器路径下,data目录设置777权限。访问体验超便捷的服务吧! (data目录没有写权限会导致配置修改不能保存、不能新建用户等) [关于上传问题] 程序没有做任何限制,如果需要...

Global site tag (gtag.js) - Google Analytics