所有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得到参数 ...
随机推荐
- 通过seekBar改变图片的透明度
作者:堕落的天使 对应的图片 activity_main.xml(代码) <RelativeLayout xmlns:android="http://schemas.android.c ...
- Nice Validator(Form验证)及Juery zTree控件
http://niceue.com/validator/demo/match.php http://www.ztree.me/v3/demo.php#_603
- tomcat8和7关于自定义tag的处理区别
今天将一直运行在tomcat-7.0.29(jdk1.6)上的应用迁移到tomcat-8.0.26(jdk1.7)上面,老显示如下错误: org.apache.jasper.JasperExcepti ...
- 微信公众平台实现pc端网站登录
亲测通过 1,pc端生成带有当前会话的sessionid的url(通过微信来扫描) 2,扫描后,微信浏览器将访问url,将微信浏览器中的sessionid改成通过url传过来的session(pc端) ...
- 64位系统装oracle(ora-12154 )
装了n次的oracle,昨下午装服务器的oracle,结果遇到了一个问题,让我百思不得其解,但最终在大家的帮助下终于解决了. 我装的服务器是windows server 2007 64位的,装完ora ...
- python平台跨平台开发
有助于跨平台开发的 os 模块属性: linesep 用于在文件中分隔行的字符串 sep 用来分隔文件路径名的字符串 pathsep 用于分隔文件路径的字符串 curdir 当前工作目录的字符串 ...
- 数据库—SQL语句
下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DEL ...
- JVM 内存的那些事
转自:http://blog.jobbole.com/104863/ 对于Java程序员你来说,在虚拟机内存管理的帮助下,不需要为每个new对象都匹配free操作,内存泄露和内存溢出等问题也不太容易出 ...
- 移动端网页fixed布局问题解决方案
问题说明 移动端web的footer常常设计为fixed布局,但是在页面键盘被拉起时fixed的布局会出现问题,自己试了下,在较低版本ios和部分安卓机上会有此问题.具体问题看图示: <body ...
- dedecms讲解-arc.listview.class.php分析,列表页展示
./plus/list.php - 动态展示栏目列表页(也可能是频道封面)arc.listview.class.php 是dedecms的列表页的相关处理类__construct() ...