/********************************************************servlet页面****************************************************************/

package request;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Enumeration;
import java.util.Map;

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

import org.apache.commons.beanutils.BeanUtils;

import bean.User;

import com.sun.org.apache.regexp.internal.REUtil;
//获取请求头
//获取请求数据的时候一般都要先检查,再使用
public class RequestDemo2 extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取客户端超链接或表单提交过来的数据
        //1,直接获取
        String value = request.getParameter("username");
        //先判断value的值是否符合要求,再使用
        if(value!=null && !value.trim().equals(""))
            System.out.println(value);
        
        System.out.println("--------------");
        //通过提交数据的名称获得值
        //2,先得到所有名称,再根据名称获得值
        Enumeration e = request.getParameterNames();
        while (e.hasMoreElements()) {
            String name = (String) e.nextElement();
            value = request.getParameter(name);
            System.out.println(name +" = "+value);
        }
        
        System.out.println("--------------");
        
        //3,获取指定名称的所有值
        String[] values = request.getParameterValues("username");
        //这样写程序健壮性不够,如果客户机表单没有填写数据就提交,此时values就为空
        //执行下面的语句就会报空指针异常
//        for(String v:values){
//            System.out.println(v);
//        }
        //这样写,才不会报措
        for(int i=0;values!=null && i<values.length;i++){
            System.out.println(values[i]);
        }
        
        //4
        Map map = request.getParameterMap();
        User user = new User();
        try {
            BeanUtils.populate(user, map);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        System.out.println(user);
    }

//获取头相关的数据
    private void test1(HttpServletRequest request) {
        //获取头信息
        //1
        String headValue = request.getHeader("Accept-Encoding");
        System.out.println(headValue);
        
        System.out.println("-----------------------");
        //2
        Enumeration e = request.getHeaders("Accept-Encoding");
        while(e.hasMoreElements()){
            String value = (String) e.nextElement();
            System.out.println(value);
        }
        System.out.println("-----------------");
        //3
        e = request.getHeaderNames();
        while (e.hasMoreElements()) {
            String name = (String) e.nextElement();
            String value = request.getHeader("name");
            System.out.println(value);
            
        }
    }

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}
/********************************************************html页面**********************************************************************************/

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>提交数据</title>
</head>
<body>
    <!-- 超链接给服务端带数据 -->
    <a href="/requestandresponse/RequestDemo2?username=xxxxxx">点点</a>
    <!-- 表单给服务器带数据 -->
    <form action="/requestandresponse/RequestDemo2" method="post">
        用户名:<input type="text" name="username"/>
        <input type="submit" value="提交">
    </form>
</body>
</html>

request 获取请求头的更多相关文章

  1. request获取请求头和请求数据

    package cn.itcast.request; import java.io.IOException; import java.io.InputStream; import java.io.Pr ...

  2. 入门servlet:request获取请求头数据

    @WebServlet("/RequestDemo2") public class RequestDemo2 extends HttpServlet { protected voi ...

  3. [Java][Web]Request 获取请求头和数据

    获取方式一 InputStream in = request.getInputStream(); int len = 0; byte buffer[] = new byte[1024]; while( ...

  4. shiro 获取请求头中的 sessionId

    前言: 在前后端项目中, 前端有可能会要求, 后台返回一个 sessionId 给他, 然后他在请求后台接口时, 把这个sessionId 带给后台, 后台拿到这个sessionId , 就能识别, ...

  5. WebAPi获取请求头中对应键值

    /// <summary> /// 依据键获取请求头中值数据 /// </summary> /// <param name="request"> ...

  6. springcloud- FeginClient 调用统一拦截添加请求头 RequestInterceptor ,被调用服务获取请求头

    使用场景: 在springcloud中通过Fegin调用远端RestApi的时候,经常需要传递一些参数信息到被调用服务中去,比如从A服务调用B服务的时候, 需要将当前用户信息传递到B调用的服务中去,我 ...

  7. 5.1 Request 获取请求数据的几种方法

    //获取请求头和请求数据 //请求数据(1.通过超链接 2.通过表单) //获取请求数据的时候一般来说 都要先检查 再使用 public class RequestDemo2 extends Http ...

  8. RequestFacade对象获取请求头时忽略大小写

    也许在Controller层 在RequestFacde文件中getHeader函数逻辑实现如下所示: public String getHeader(String name) { if(this.r ...

  9. 【原创】Selenium获取请求头、响应头

    本文仅供学习交流使用,如侵立删! Selenium获取请求头.响应头 操作环境 win10 . mac Python3.9 selenium.seleniumwire selenium是没有办法直接获 ...

随机推荐

  1. NOI2001食物链

    描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A吃B,B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有人 ...

  2. jsp和java获取文件或路径

    1.如何获得当前文件路径常用:(1).Test.class.getResource("")得到的是当前类FileTest.class文件的URI目录.不包括自己!(2).Test. ...

  3. java 去html标签,去除字符串中的空格,回车,换行符,制表符

    public static String getonerow(String allLine,String myfind)     {                           Pattern ...

  4. linux下解压zip文件

    linux下解压zip文件 linux自带的unzip命令可以解压windows下的zip格式的压缩文件. unzip命令 语法:unzip [选项] 压缩文件名.zip 各选项的含义分别为: -x ...

  5. python 高阶函数和匿名函数

    #!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 2017/11/02 22:46 # @Author : lijunjiang # @Fi ...

  6. nodejs express 路由并显示html以及访问静态资源设置

    var express = require('express'); var http = require('http'); var fs = require('fs'); var app = expr ...

  7. HDU 2767.Proving Equivalences-强连通图(有向图)+缩点

    Proving Equivalences Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  8. (5)php数组

    定义数组 $arr=array('篮球','自行车','海贼王'); 打印指定数组 echo $arr[0]; 打印全部数组 print_r($arr); 改变数组的值 $arr[0]='足球'; 赋 ...

  9. 洛谷 P1865 A % B Problem[筛素数/前缀和思想/区间质数个数]

    题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...

  10. validate插件使用

    validate插件使用 官网:http://jqueryvalidation.org/ 项目实操 引入文件 add.html调用(注意顺序问题) 为form表单定义一个ID,以方便获取该元素 添加验 ...