ResquestInfoServlet类通过访问HttpServletRequest对象的各种方法来读取HTTP请求中的特定信息,并且把它们写入到HTML中

ResquestInfoServlet.java

package com.demo.servlet;

import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

/**
 * Created by 谭雪娇 on 2017/4/5.
 */
public class RequestInfoServlet extends HttpServlet {
    /*响应客户请求*/
    public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException,ServletException {
        //设置HTTP响应的正文的类型
        response.setContentType("text/html;charset=GB2312");
        /*输出html文档*/
        PrintWriter out=response.getWriter();
        out.println("<html><head><title>RequestInfo</title></head>");
        out.println("<body>");
        out.println("<br>LocalAddr:"+request.getLocalAddr());
        out.println("<br>LocalName:"+request.getLocalName());
        out.println("<br>LocalPort:"+request.getLocalPort());
        out.println("<br>Protocol:"+request.getProtocol());
        out.println("<br>RemoteAddr:"+request.getRemoteAddr());
        out.println("<br>RemoteHost:"+request.getRemoteHost());
        out.println("<br>RemotePort:"+request.getRemotePort());
        out.println("<br>Method:"+request.getMethod());
        out.println("<br>URI:"+request.getRequestURI());
        out.println("<br>ContextPath:"+request.getContextPath());
        out.println("<br>QueryString:"+request.getQueryString());
        /*打印HTTP请求头*/
        out.println("<br>***打印HTTP请求头***");
        Enumeration eu=request.getHeaderNames();
        while(eu.hasMoreElements()){
            String headerName=(String)eu.nextElement();
            out.println("<br>"+headerName+":"+request.getHeader(headerName));
        }
        out.println("<br>***打印请求头结束***<br>");
        out.println("<br>username :"+request.getParameter("username"));
        out.println("</body></html>");
        //关闭输入流
        out.close();

}
}

web.xml

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>com.demo.servlet.RequestInfoServlet</servlet-class>

</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/info</url-pattern>
</servlet-mapping>

ResquestInfoServlet生成的HTML页面

ResquestInfoServlet类通过访问HttpServletRequest对象的各种方法来读取HTTP请求中的特定信息,并且把它们写入到HTML中的更多相关文章

  1. FileReader对象的readAsDataURL方法来读取图像文件

     FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放到外部文件.使用Dat ...

  2. 使用FileReader对象的readAsDataURL方法来读取图像文件

    使用FileReader对象的readAsDataURL方法来读取图像文件   FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项 ...

  3. 转载:使用FileReader对象的readAsDataURL方法来读取图像文件

    文章转载自:http://blog.okbase.net/jquery2000/archive/1296.html: FileReader对象的readAsDataURL方法可以将读取到的文件编码成D ...

  4. 通过RequestContextHolder直接获取HttpServletRequest对象

    问题 朋友遇到一个问题:他想在Service方法中使用HttpServletRequest的API,但是又不想把HttpServletRequest对象当作这个Service方法的参数传过来,原因是这 ...

  5. Java中两个线程是否可以同时访问同一个对象的两个不同的synchronized方法?

    不可以!!! 多个线程访问同一个类的synchronized方法时, 都是串行执行的 ! 就算有多个cpu也不例外 ! synchronized方法使用了类java的内置锁, 即锁住的是方法所属对象本 ...

  6. servlet中的HttpServletRequest对象

    HttpServletRequest对象表示客户端浏览器发起的请求,当客户端浏览器通过HTTP协议访问服务器时,Tomcat会将HTTP请求中的所有信息解析并封装在HttpServletRequest ...

  7. C 和 C++ 的标准库分别有自己的 locale 操作方法,C 标准库的 locale 设定函数是 setlocale(),而 C++ 标准库有 locale 类和流对象的 imbue() 方法(gcc使用zh_CN.GBK,或者zh_CN.UTF-8,VC++使用Chinese_People's Republic of China.936或者65001.)

    转自:http://zyxhome.org/wp/cc-prog-lang/c-stdlib-setlocale-usage-note/ [在此向原文作者说声谢谢!若有读者看到文章转载时请写该转载地址 ...

  8. request表示HttpServletRequest对象?

    request表示HttpServletRequest对象.它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法. response表示 ...

  9. 【Java面试题】26 多线程有几种实现方法?同步有几种实现方法? 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

    问题一:多线程有几种实现方法?同步有几种实现方法? 多线程有两种实现方法,分别是继承Thread类与实现Runnable接口   同步的实现方面有两种,分别是synchronized,wait与not ...

随机推荐

  1. GMSSL学习总结1

    接触GMSSL一段时间了,总结一点点想法 证书:DER格式.PEM格式 .DER = DER扩展用于二进制DER编码证书. .PEM = PEM扩展用于不同类型的X.509v3文件,是以“ - BEG ...

  2. Python 使用openpyxl导出Excel表格的时候,使用save()保存到指定路径

    在使用openpyxl导出Excel表格的使用,如何指定导出的路径呢. 使用sava(filename),会保存到当前执行文件的路径下. 使用sava("/tmp/{}.xlsx" ...

  3. 【FICO系列】SAP 关于SAP中的记账码的解释

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP 关于SAP中的记账码的解 ...

  4. 如何判断一段程序是由C 编译程序还是由C++编译程序编译的

    以下是在论坛中看到的两种解释: (1)如果是要你的代码在编译时发现编译器类型,就判断_cplusplus或_STDC_宏,通常许多编译器还有其他编译标志宏, #ifdef __cplusplus co ...

  5. vmware 中标麒麟系统安装VM tools

    打开虚拟机系统,选择菜单虚拟机->安装VMware TOOLs,下载后找到文件. 我的文件名称是 VMwareTools-10.2.5-8068393.tar.gz, 在终端里输入:tar xv ...

  6. HDU 5945 题解(DP)(单调队列)

    题面: Fxx and game Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) T ...

  7. python学习shutil模块的文件压缩和解压用法

    shutil模块可以创建压缩包并返回文件路径,例如 zip,tar,下面详细其用法 base_name 压缩包的文件名,也可以是压缩包的路径,只是文件名时,则保存至当前目录,否则保存指定路径 data ...

  8. Python之路-Python中的模块与包

    一.模块简介 在实际开发中我们不可能不用到系统的标准模块,或第三方模块. 如果想实现与时间有关的功能,就需要调用系统的time模块.如果想实现与文件和文件夹有关的操作,就需要要用到os模块. 每一个 ...

  9. HBase构架原理

    HBase的概念: HBase在生态圈位置 HBase与HDFS对比 HBase与关系型数据库的比较 HBase表的特点: 4)任意模式:每一行都有一个可排序的主键和任意多的列,列可以根据自己的需要动 ...

  10. JFreeChart与struts2整合实例

    1. 3个jar包 jcommon,jfreechart,strust2-jfreechart-plugin 2 <?xml version="1.0" encoding=& ...