2009-09-24 31 views
0

我有一个servlet托管在glassfish服务器上。我想使用telnet与它沟通,以了解使用html表单get方法时幕后发生的事情。如何使用telnet与运行在glassfish上的java servlet进行交互?

我应该在HTTP请求的主机字段中给出什么?

Get /WebApplication1/NServlet HTTP/1.1 
Host: localhost 

如果我想在HTTP请求中发送自定义属性如下,是否可以使用request.getAttribute()方法提取它们的值。

Get /WebApplication1/NServlet HTTP/1.1 
Host: localhost 
Custom-Attribute: xyz 

另一个疑问就是javax.servlet包不是java SE sdk的一部分。我不得不安装java ee才能运行它。

+1

为什么你想要使用telnet,这是坚果。如果你想知道发生了什么,然后使用Python和httplib编写一个简单的客户端,或者Apache HttpClient库将帮助你... – Jon 2009-09-24 18:04:53

+0

该学习HTTP了:http://www.w3.org/Protocols/rfc2616/ rfc2616.html – BalusC 2010-01-17 21:41:09

+0

我在电话中(支持大型软件公司名称编辑)支持代表,他要求我做同样的事情,以证明我的Tomcat服务器没有错误配置。所以我会说,这不完全是疯了。 – KeithL 2014-06-12 16:27:31

回答

0

如果您想使用HTTP协议(如您在评论中所建议的那样),请查看HttpClient。顾名思义,它就是客户端/服务器HTTP实现的客户端,应该相对容易地确定在客户端设置的内容,以便在服务器上看到它。

有一个很好的教程here。我可能会首先在servlet中获得一个简单的页面,然后通过浏览器进行检查,然后实现客户端。

0

根据你的问题,我没有足够的信息给任何人回答你。 Tomcat/Jetty /等基本上是包含servlet(并因此包含JSP/JSF/Wicket等)处理器的Web服务器,用于动态生成内容。 那么,你试图弄清楚什么是什么,为什么?

+0

我想为我的应用程序使用HTTP协议。就像HTTP具有内容长度一样,我计划从客户端向服务器发送配置参数。所以我可以做request.getParameter(“parameter-name”);它是我的应用程序使用http协议的正确方式,还是应该将我的配置参数发送到http请求的内容部分。 – 2009-09-24 18:58:03

+0

所以你试图通过http配置和管理一个应用程序?如果它是一个Java应用程序,那么JMX可以更轻松地完成它。如果它不是.HttpClient。 你试图做的事听起来像是这样做的困难。 – 2009-09-24 22:01:48

1

Host字段只是URL的主机名部分,例如, Host: google.comhttp://google.com/

Custom-Attribute: xyz将在HttpServletRequest使用getHeader()露出,不getAttribute()。