一、什么是 TCP/IP Monitor

TCP/IP monitor 是可以监控在某个端口上通过 TCP/IP 协议传送的通信数据的一个工具软件。 TCP/IP monitor 工具,通过一些配置,这个工具可以用简单明了的形式将客户端和服务器端之间传输的数据呈现给开发者。

二、TCP/IP monitor工作原理

TCP/IP monitor 类似一个代理服务器或者转发器。其工作原理如下:

1.客户端向"本地监听端口"发起请求,TCP/IP Monitor 获取客户端发送的数据,并显示该数据。

2.TCP/IP Monitor 将在 1 步骤得到的数据转发给"服务器端口", 服务器端接收数据。

3.TCP/IP Monitor 从接收服务器端返回的数据 , 并显示该数据。

4.TCP/IP Monitor 将在 3 步骤得到的数据返回客户端,客户端接收到数据。

三、打开TCP/IP Monitor步骤

打开 TCP/IP Monitor,创建一个本地代理端口监听服务器 Http 端口就行了。具体步骤如下:

1.打开 WebSphere Commerce 开发环境 , 选择 Windows->Show View->TCP/IP Monitor。

点击ok即可。

2.在 TCP/IP Monitor 中点击右键,选择 Properties, 点击 Add 添加一个新的本地代理端口,各设置项的含义如下:

local monitoring port: 指定本地代理端口,用于监听服务器端口

Host name: 指定要监听的主机

Port: 指定要监听的服务器端口

Type: 指定监听的协议类型

把它修改为:

3.进行设置并保存,选定该本地代理端口并点击 Start 以打开端口开始监听。

效果:

小结:只要进行 Web 开发,有 Client 和 Server 端的 TCP/IP 请求的开发,都可以利用 TCP/IP Monitor 来监控客户端和服务端交互的内容,从而精确定位问题原因。

五、测试 TCP/IP Monitor

1.新建一个java web工程:

HelloWorld.html 源码:

 <html>
<head>
</head>
<body style="font-size:24px">
<form action="hello" method="get">
Name:<input name="name"><br>
Contact Me:<Br>
QQ<input type="checkbox" name="contact"
value="qq"/>
Tel<input type="checkbox" name="contact"
value="tel"/>
WeChat<input type="checkbox" name="contact"
value="wechat"/>
<br>
<input type="submit" value="OK">
</form>
</body>
</html>

HelloWorld源码:

 package web;

 import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorld extends HttpServlet {
/**
* 获取请求中的name、contact两组参数值
* 分别使用getParameter和getParameterValues方法获取
*/
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
//获取提交的name的值
String name = req.getParameter("name");
out.println("Hello," + name);
//获取提交的contact的值
String[] contacts = req.getParameterValues("contact");
if(contacts!=null){
out.print("Contact Information:");
for(String info :contacts){
out.print(info+",");
}
}
out.close();
}
}

xml源码:

 <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>web.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

最后部署项目到Tomcat,在浏览器中输入访问地址:

http://localhost:8888/TCP/HelloWorld.html

通过输入名字和选择相应的选项。

然后观察TCP控制台这边,可以获得以下的信息。

同时通过变换HelloWorld.html 中的表单方式get,post会得出的不同的效果。具体请参看以下post和get的区别。

原文作者:daliu_it
博文出处:http://www.cnblogs.com/liuhongfeng/p/4187572.html

本文版权归作者和博客园共有,但未经作者同意转载必须保留以上的声明且在放在文章页面明显位置。谢谢合作。

如何在MyEclipse中建立一个代理服务器的更多相关文章

  1. 如何在Apache中建立一个新端口

    环境: Windows server 2008 R2, Apache, PHP5 步骤: 建立一个目录,里面放置一个index.php. 打开Apache\conf\httpd.conf 文件,做如下 ...

  2. 如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法

    最近学习了下如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法,虽然MyEclipse中自带了连接数据库的方法,我也尝试了下其他方法,如有不当之处请指 ...

  3. 如何在JAVA中实现一个固定最大size的hashMap

    如何在JAVA中实现一个固定最大size的hashMap 利用LinkedHashMap的removeEldestEntry方法,重载此方法使得这个map可以增长到最大size,之后每插入一条新的记录 ...

  4. 如何在idea中引入一个新maven项目

    如何在idea中引入一个新的maven项目,请参见如下操作:      

  5. 【Tomcat-原】如何在Myeclipse中添加本地的Tomcat

    2014-10-27 16-24-09  liulin 说明: Myeclipse中自带Tomcat,如果不想用Myeclipse自带的Tomcat,可以使用本地的Tomcat, 下面将介绍如何在My ...

  6. 如何在html中把一个图片或者表格覆盖在一张已有图片上的任意位置

    如何在html中把一个图片或者表格覆盖在一张已有图片上的任意位置   <div style="position:relative;"> <img src=&quo ...

  7. (转)如何在Linux中统计一个进程的线程数

    如何在Linux中统计一个进程的线程数 原文:http://os.51cto.com/art/201509/491728.htm 我正在运行一个程序,它在运行时会派生出多个线程.我想知道程序在运行时会 ...

  8. 在Myeclipse中拷贝一个web项目,但是tomcat文件夹中没有更新,需要进行修改才能更新。

    1.在Myeclipse中拷贝一个web项目,但是tocat文件夹中没有更新,需要进行修改才能更新. 2.方法:右键这个工程,然后Properties->MyEclipse->Projec ...

  9. Kubernetes入门(四)——如何在Kubernetes中部署一个可对外服务的Tensorflow机器学习模型

    机器学习模型常用Docker部署,而如何对Docker部署的模型进行管理呢?工业界的解决方案是使用Kubernetes来管理.编排容器.Kubernetes的理论知识不是本文讨论的重点,这里不再赘述, ...

随机推荐

  1. java多台

    多 态★★★★★(面向对象特征之一):函数本身就具备多态性,某一种事物有不同的具体的体现. 体现:父类引用或者接口的引用指向了自己的子类对象.//Animal a = new Cat();父类可以调用 ...

  2. 将数据处理逻辑集中到一处进行管理,逐步实现真正有效的 MVC 分层结构

    将数据处理逻辑集中到一处进行管理,逐步实现真正有效的 MVC 分层结构.

  3. UITextView 详解

    UITextView 边框的设置   设置光标的位置   导入QuartzCote框架: #import <QuartzCore/QuartzCore.h> textView.layer. ...

  4. ORACLE 修改已有存储过程(plsql工具修改)

    pl/sql 修改包下存储过程步骤: 假定有如下过程:pkg_ypgl_query.PROC_KCZQUERY; 1. pl/sql 右侧objects面板中选择Package bodies>P ...

  5. tomcat配置manager

    tomcat-users.xml配置 <role rolename="manager-gui"/><user username="tomcat" ...

  6. 【BZOJ】【1419】Red is good

    数学期望/期望DP 还是戳<浅析竞赛中一类数学期望问题的解决方法>这篇论文…… $$ f[i][j]= \begin{cases} 0 &, &i==0 \\ f[i-1] ...

  7. UVA 10026 Shoemaker&#39;s Problem

    Shoemaker's Problem Shoemaker has N jobs (orders from customers) which he must make. Shoemaker can w ...

  8. Centos下运行cp命令式提示略过目录

    今天在复制一个目录到还有一个目录的时候cp ./res /usr 的时候出现了问题,提示我的是: cp略过了目录 后来我找了一下 在网上search了一下CP命令的使用方法: CP命令 该命令的功能是 ...

  9. scala编程第18章学习笔记——有状态的对象

    银行账号的简化实现: scala> class BankAccount{ | private var bal: Int = 0 | def balance: Int = bal | def de ...

  10. tomcat怎么运行servlet程序

    新建一个web project 取名 myproject 在myproject 新建一个继承了HttpServlet 的类 MyServlet 重写HttpServlet 的 dopost doget ...