简介

获取客户端请求头及参数

获取提交给服务器的中文数据


简介

这个对象封装了客户端提交过来的一切数据。

获取客户端请求头及参数

package com.zhujunwei.httpServletRequest;

import java.io.IOException;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class HttpServletRequest01 extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //打印请求头
printRequestHeader(request);
System.out.println("-----------------------------");
//打印参数
printParameter(request);
} //打印请求体 get中url?号后面的内容
private void printParameter(HttpServletRequest request) {
Map<String, String[]> parameterMap = request.getParameterMap();
Set<String> paramKeySet = parameterMap.keySet();
Iterator<String> iterator = paramKeySet.iterator();
while(iterator.hasNext())
{
String key = iterator.next();
String value = parameterMap.get(key)[0];
System.out.println(key+"\t"+value);
}
} //打印请求头
private void printRequestHeader(HttpServletRequest request) {
Enumeration<String> headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements())
{
String name = headerNames.nextElement();
String value = request.getHeader(name);
System.out.println(name+"\t"+value);
}
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
} }

比如在地址栏输入

http://localhost:8080/Hello/HttpServletRequest01?name=baobao&age=18

结果(FireFox)

host	localhost:8080
user-agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-language zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
accept-encoding gzip, deflate
dnt 1
connection keep-alive
upgrade-insecure-requests 1
-----------------------------
name baobao
age 18

获取提交给服务器的中文数据

login.html(post和get方式)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>请输入账号密码登录</h2>
<form action="LoginServlet" method="post">
账号:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>

LoginServlet

package com.zhujunwei.httpServletRequest;

import java.io.IOException;
import java.io.UnsupportedEncodingException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L; @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//getEncoding(req);
postEncoding(req);
} // 取得用户名和密码
//解决post请求乱码
private void postEncoding(HttpServletRequest req) throws UnsupportedEncodingException {
req.setCharacterEncoding("UTF-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("username=" + username);
System.out.println("password=" + password);
} @SuppressWarnings("unused")
private void getEncoding(HttpServletRequest req) {
// 取得用户名和密码
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("username=" + username);
System.out.println("password=" + password);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}

我们可以提交给服务器中文用户名,依然可以接收到

username=宝宝
password=123456

HttpServletRequest相关的更多相关文章

  1. 从0开始学Java——JSP&Servlet——HttpServletRequest相关的几个路径信息

    在HttpServletRequest中有几个获取路径的接口:getRequestURI/getContextPath/getServletPath/getPathInfo 这些接口互相之间有什么区别 ...

  2. SpingMVC 核心技术帮助文档

    声明:本篇文档主要是用于参考帮助文档,没有实例,但几乎包含了SpringMVC 4.2版本的所有核心技术,当前最新版本是4.3,4.2的版本已经经是很新的了,所以非常值得大家一读,对于读完这篇文档感觉 ...

  3. Spring Security(09)——Filter

    目录 1.1     Filter顺序 1.2     添加Filter到FilterChain 1.3     DelegatingFilterProxy 1.4     FilterChainPr ...

  4. Spring Security 入门(1-6-2)Spring Security - 内置的filter顺序、自定义filter、http元素和对应的filterChain

    Spring Security 的底层是通过一系列的 Filter 来管理的,每个 Filter 都有其自身的功能,而且各个 Filter 在功能上还有关联关系,所以它们的顺序也是非常重要的. 1.S ...

  5. Spring Security 梳理 - DelegatingFilterProxy

    可能你会觉得奇怪,我们在web应用中使用Spring Security时只在web.xml文件中定义了如下这样一个Filter,为什么你会说是一系列的Filter呢?    <filter> ...

  6. 嵌入式单片机STM32应用技术(课本)

    目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...

  7. listener监听器的相关知识

    从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...

  8. Struts2相关面试题

    Struts2面试题 1.struts2工作流程 Struts 2框架本身大致可以分为3个部分: 核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心 ...

  9. spring相关jar包的含义

    spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-m ...

  10. Spring 相关jar包详细介绍

    文章转自:http://blog.csdn.net/farawayhome/article/details/6623946 aspectj目录下是在Spring框架下使用aspectj的源代码和测试程 ...

随机推荐

  1. Iceberg参数调整

    1.读取参数介绍 属性   默认值   描述 read.split.target-size 134217728 (128 MB) 组合数据输入分割时的目标大小 read.split.metadata- ...

  2. hibernate的锁机制

    概述 hibernate 可以通过加锁解决并发问题. hibernate 的锁分为两种:乐观锁和悲观锁. 乐观锁(Optimistic lock):每次访问数据时,都会乐观的认为其它事务此时肯定不会同 ...

  3. 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~

    大家好,我是汤师爷! 最近,腾讯发布了一款ima产品,主打用AI来帮你搜索信息.管理知识库. 说实话,一开始用混元大模型,感觉不咋地,很鸡肋的. 不过最近腾讯把DeepSeek R1接进来了,一下子解 ...

  4. mybatis - [04] mapper文件详解

      Mybatis的Mapper文件(通常是以.xml为扩展名的文件)主要用于定义SQL语句和它们与Java接口方法之间的映射关系.以下是Mapper文件中一些常用的配置元素和属性. 一.mapper ...

  5. php服务器如何验证令牌

    在PHP中,令牌通常用于防止跨站请求伪造(CSRF)攻击.以下是一个简单的例子,展示了如何生成和验证令牌: 生成令牌: function generateToken($length = 32) { / ...

  6. 一段VUE代码:通过组件封装全局方法、自定义指令和注册组件

    index.js // 插件定义第一种方式,对象:拥有 install() 方法的对象 const myPlugin = { install(app, options) { // 配置全局方法 app ...

  7. nginx 根据 URL 参数引入不同的文件

    同步发布:https://blog.jijian.link/2020-06-30/nginx-import-file/ 编程世界中各种奇奇怪怪的需求都有,本次遇到一个需求:根据URL参数判断,包含 x ...

  8. MinIO Linux 数据迁移

    目录 安装 下载 安装Minio客户端 备份数据 数据还原 数据迁移 设置别名 迁移 从A服务器,迁移致B服务器,前提,需要两边的 Bucket 相同,如果B服务器没有A服务器里的 Bucket 需要 ...

  9. Linux下查询tomcat进程命令

    由于查询tomcat进程时将ps -ef|grep tomcat命令记错为ps -f|grep tomcat命令,因此对比两个命令进行区分. ps -f |grep tomcat执行结果: dgztc ...

  10. ArrayList的常用成员方法

    1.ArrayList常用成员方法 可以大致分为4种,增 删 改 查 1.增 1.public boolean add(E e) 将括号里的元素直接添加到集合中,添加的元素按照顺序依次排列. 其中,E ...