所有HTTP请求参数及报文查看SERVLET
HttpRequestServlet.java
说明:
用于接受所有http形式的请求,并把接受到的request中param及getInputStream全打印出来.
package king.server; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
import java.util.UUID; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* 用于接受所有http形式的请求,并把接受到的request中param及getInputStream全打印出来
* @author King
*
*/
public class HttpRequestServlet extends HttpServlet{
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
System.err.println("我是服务器,通过request.getParameter()获取的参数:");
StringBuilder paramSB = new StringBuilder();
Enumeration<?> paramNames=request.getParameterNames();
while(paramNames.hasMoreElements()){
String name=(String)paramNames.nextElement();
String valueNotDecode=request.getParameter(name);
String valueDecode=new String(valueNotDecode.getBytes("UTF-8"),"UTF-8");
paramSB.append(name + "==" + valueDecode+"\n");
}
System.out.println("我是服务器,通过param读取的参数如下:\n"+paramSB.toString());
PrintWriter writer = response.getWriter();
writer.write("通过param读取的参数如下:\n"+paramSB.toString());
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public void doPost(HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
// 如果"您的文本内容" 用UTF-8编码后,再以conn.setRequestProperty("content-type", "text/xml;charset=iso-8859-1");发送到本服务端,那么需要对参数内容进行如下解码
// String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"UTF-8");
// System.out.println("name : "+ name); System.err.println("我是服务器,通过request.getParameter()获取的参数:");
StringBuilder paramSB = new StringBuilder();
Enumeration<?> paramNames=request.getParameterNames();
while(paramNames.hasMoreElements()){
String name=(String)paramNames.nextElement();
String valueNotDecode=request.getParameter(name);
String valueDecode=new String(valueNotDecode.getBytes("iso-8859-1"),"UTF-8");
System.out.println(name + "==" + valueDecode);
paramSB.append(name + "==" + valueDecode+"\n");
} //使用apache的httpcomponents 的post请求时:formparams.add(new BasicNameValuePair("key","value")); 也只能从这里获取到!
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
String line = null;
StringBuilder streamSB = new StringBuilder();
while ((line = br.readLine()) != null) {
streamSB.append(line);
}
String decode = URLDecoder.decode(streamSB.toString(), "UTF-8");
System.out.println("我是服务器,通过request.getInputStream()读取的参数:\n" + decode); response.setCharacterEncoding("UTF-8");//第一优先级高于第二优先级,只能用来设置out输出流中所采用的编码
// response.setContentType("text/html;charset=UTF-8");//第二优先级,不仅能用来设置out输出流中所采用的编码,也可以设置浏览器接收到这些字符后以什么编码方式来解码
PrintWriter writer = response.getWriter();
writer.write("通过param读取的参数如下:\n"+paramSB.toString());
writer.write("通过stream读取的参数如下:\n"+decode);
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 客户端通过conn.setRequestProperty(key,value),
* 即可在服务端通过request.getHeader(key)获取到对应的head协议头值
* @param request
* @param response
* @throws Exception
*/
public void tip(HttpServletRequest request, HttpServletResponse response) throws Exception{
//在客户端用
HttpURLConnection conn = (HttpURLConnection) new URL("http://localhost:8080/httpserver").openConnection();
conn.setRequestProperty("Accept", "application/soap+xml, application/dime, multipart/related, text/*");
//就能在本服务端用
request.getHeader("Accept");//获取到Head协议头中的值.
}
}
所有HTTP请求参数及报文查看SERVLET的更多相关文章
- 所有HTTP请求参数及报文查看SERVLET【原】
HttpRequestServlet.java 说明: 用于接受所有http形式的请求,并把接受到的request中param及getInputStream全打印出来. package king.se ...
- jmeter将上一个接口返回值作为下一个接口的请求参数
在jmeter中有时候会用到,将上一个接口的返回值作为下一个接口的请求参数 具体操作如下: 1.首先新建一个http请求(右键线程组--添加Sampler--http请求),同时添加好接口相应的请求参 ...
- 修改request请求参数
本质上来讲,request请求当中的参数是无法更改的,也不能添加或者删除: 但在后台程序中,一般对request的参数的操作,都是通过request的getParameter.getParameter ...
- jsp连接数据库的乱码问题 servlet请求参数编码处理get post
1.在所有需要读取数据的地方用下面的方式.同时jsp必须统一编码,如我都是UTF-8 String userName= new String(request.getParameter("us ...
- Servlet请求参数的方式
今天整理了以下几种常用的Servlet请求参数的方式,下面简单地介绍 1)getParameter(String key)返回一个字符串,获得name和key 一样的表单控件的数据,如果有重复的nam ...
- Spring MVC请求参数绑定 自定义类型转化 和获取原声带额servlet request response信息
首先还在我们的框架的基础上建立文件 在domian下建立Account实体类 import org.springframework.stereotype.Controller; import org. ...
- 4、处理方法中获取请求参数、请求头、Cookie及原生的servlet API等
1.请求参数和请求头 使用@RequestParam绑定请求参数,在处理方法的入参处使用该注解可以把请求参数传递给请求方法 —— value :参数名 —— required : 是否必须,默认为tr ...
- 入门servlet:request获取请求参数通用方式
一.获取请求参数通用方式 1. String getParameter(String name):根据参数名称获取参数值 例:username=flypig&password=2343 2. ...
- web基础---->request的请求参数分析
当contentType为application/json的时候,在servlet中通过request.getParameter得到的数据为空.今天我们就java的请求,分析一下request得到参数 ...
随机推荐
- 深入研究js构造函数和原型
很快就要从新浪离职了,最近心情比较轻松,抽点空整理一下构造函数和原型的机理. 我们都知道,在经典设计模式中我们最常用的就是工厂模式.构造函数模式.原型模式这几种,听起来‘模式’好像很高大上的样子,实际 ...
- W5200移植W5500驱动教程
说明,移植例程为我按照这个教程移植的例程,测试通过.工程模板为我经常使用的一个w5500模板,可以在里面直接添加文件编程.1. 将driver文件夹中W5500文件夹和所有.c文件复制到工程/sour ...
- 简约的ASP.NET 系统框架,提供源码。
好东西,好东西就要分享. 其实谈不上什么好东西,但很实用,应用起来也很简单,我自己用它构建了多套ASP .NET系统,原理也很简单: 1.用XML文件编辑系统的菜单和Toolbar: 2.读取XML节 ...
- C#利用WIN32实现按键注册
using System.Runtime.InteropServices; using System.Collections.Generic; using System; using System.W ...
- iisnode托管node
1.官方下载iisnode https://github.com/tjanczuk/iisnode 2.安装完成后在IIS中可见
- CodeSmith7代码生成器针对PostgreSQL数据库无法使用的Bug修复全过程
前言 最近公司需要将原来使用的MSSQL数据库整体迁移至pgsql,需要使用CodeSmith生成IBatisNet的配置文件.按照提示安装了Npgsql.dll后依然无法使用.引发了本次通过反编译修 ...
- Android四大组件及activity的四大启动模式
Android四大组件 1. 广播接收者的两种类型: (1)系统广播接收者,就是继承BroadcastReceiver这个类,然后还要在清单文件中注册,注册之后给他一个action.当系统发生了这个a ...
- sql server2008安装说明 详细完整版
SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本. 在现今数据的世界里,公司要获得成功和不断发展,他们 ...
- win7配置SMTP服务
有人说WIN7系统没有SMTP服务 怎么可能呢??? 具体安装步骤如下: 控制面板\程序>打开和关闭Windows功能 Internet信息服务 将 万维网服务>应用程序开发功能> ...
- shell 脚本杀死后台由php脚本控制运行的所有php脚本和java程序
效果: 运行命令: ./killallphpjavarm.sh java 源码: #!/bin/sh#根据进程名杀死进程#FileName: killjavaphprm.sh pgrep php ki ...