web服务器获取服务器信息,Java:获取客户端信息的Web服务服务器

使用一些在线示例(复制/粘贴)我创建了Web服务器和连接到它的客户端。工作正常。客户端发送请求(一切都在同一台PC上运行),服务器响应。现在我试图添加一段代码(在服务器端),标识谁连接并发送请求(基本上获取客户端信息)做了一些研究并找到了代码。我将代码添加到我认为应该去的地方,但是我得到了NullPointerException。我显然缺少一些东西。

下面的代码显示了Web服务方法的实现。我为addPerson方法添加了新的“客户端识别码”。

执行时,客户端调用addPerson和服务器崩溃

HttpExchange exchange =(HttpExchange)msgx.get(“com.sun.xml.ws.http.exchange”);

我知道这很简单(代码在错误的位置?)但我对这个结婚服务概念完全不熟悉。任何帮助将不胜感激。

@WebService(endpointInterface = "tests.PersonService")

public class PersonServiceImplementation implements PersonService {

@Resource

WebServiceContext wsContext;

private static Map persons = new HashMap();

@Override

@WebMethod

public boolean addPerson(Person p) {

idetify who poked us

MessageContext msgx = wsContext.getMessageContext();

HttpExchange exchange = (HttpExchange)msgx.get("com.sun.xml.ws.http.exchange");

InetSocketAddress remoteAddress = exchange.getRemoteAddress();

String remoteHost = remoteAddress.getHostName();

System.out.println("Who poked us: " + remoteHost);

//

if(persons.get(p.getId()) != null) return false;

persons.put(p.getId(), p);

return true;

}

@Override

public boolean deletePerson(int id) {

if(persons.get(id) == null) return false;

persons.remove(id);

return true;

}

@Override

public Person getPerson(int id) {

return persons.get(id);

}

@Override

public Person[] getAllPersons() {

Set ids = persons.keySet();

Person[] p = new Person[ids.size()];

int i=0;

for(Integer id : ids){

p[i] = persons.get(id);

i++;

}

return p;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
甘肃政法学院 本科生实验报告 (一) 姓名: 学院:计算机科学学院 专业: 计算机科学与技术 班级 实验课程名称: 实验日期:2012 年 04 月 9 日 指导教师及职称 实验成绩: 开课时间:2012 学年 二 学期 甘肃政法学院实验管理中心印制 实验题目 Java Web 项目开发环境搭建于简单开发 Jsp 指令标记与动作标记 Jsp 内置对象 小组合作 否 姓名 班级 学 号 一、实验目的 1、 熟悉 Java Web 开发环境 JDK1.6+Tomcat6.0+MyEclipse8.5 开发环境的搭建方法。 2、 能够从实际问题出发,编写出简单的 JSP 程序,并将其正确发布和测试。 3、熟练掌握怎样在 JSP 页面中使用 page 指令设置 contentType 的值。 4、使用 include 指令在 JSP 页面中静态插入一个文件的内容。 5、掌握怎样在 JSP 页面中使用 include 标记动态加载文件。 6、使用 forward 实现页面的转向。 7、熟练掌握怎样在 JSP 页面中使用 request 内置对象。 8、熟练掌握怎样在 JSP 页面中使用 response 对象动态响应用户的请求。 8、熟练掌握怎样在 JSP 页面中使用 session 对象存储和用户有关的数据。 9、进一步熟悉其它 JSP 内置对象的用法。 二.实验环境 装有 Myeclipse 8.5,Tomcat6.0 的计算机一台 三、实验内容与步骤 《一》简单 Java Web 项目的开发与环境搭建 1.JDK1.6,Tomcat6.0,MyEclipse8.5 的安装和配置。 2. 编写一个求解 1—1000 内是"完数"的正整数的 JSP 代码,要求将其发布在 Tomcat 服务器中 3. 试在 Myeclipse 环境下重复开发前一个项目。 4. 编写两个 JSP 页面,名字分别为 inputName 和 people.jsp。 (1)inputName.jsp 的具体要求 该页面有一个表单,用户通过该表单输入自己的姓名并提交给 people.jsp 页面。 (2)people.jsp 的具体要求 JSP 页面有名字为 person、类型是 StringBuffer 以及名字是 count,类型为 int 的成 员变量。 JSP 有 public void judge ()方法。 该方法负责创建 person 对象, 当 count 的值是 0 时, judge ()方法创建 person 对象。 JSP 有 public void addPerson(String p)的方法,该方法将参数 p 指定的字符串尾加 到操作成员变量 person,同时将 count 作自增运算。 JSP 页面在程序片中获取 inputName.jsp 页面提交的姓名,然后调用 judge ()创建 person 对象、调用 addPerson 方法将用户的姓名尾加到成员变量 person。 如果 inputName.jsp 页面没有提交姓名,或姓名含有的字符个数大于 10,就使用 <jsp:forward page="要转向的页面" />标记将将用户转到 inputName.jsp 页面。 通过 Java 表达式输出 person 和 count 的值。 《二》Jsp 指令标记与动作标记 1. 编写三个 JSP 页面:first.jsp 、second.jsp 和 third.jsp。另外,要求用"记事本"编 写一个 txt 文件 hello.txt。hello.txt 的每行有若干个英文单词,单词之间用空格分隔,每行之 间用"<BR>"分隔, first.jsp 的具体要求 first.jsp 使用 page 指令设置 contentType 属性的值是"text/plain",使用 include 指令静态 插入 hello.txt 文件。 second.jsp 的具体要求 second.sp 使用 page 指令设置 contentType 属性的值是"application/vnd.ms-powerpoint", 使用 include 指令静态插入 hello.txt 文件。 third.jsp 的具体要求 third.jsp 使用 page 指令设置 contentType 属性的值是"application/msword", 使用 include 指令静态插入 hello.txt 文件。 2. 编写四个 JSP 页面:one.jsp 、two.jsp 和 three.jsp 和 error.jsp。one.jsp 、two.jsp 和 three.jsp 页面都含有一个一个导航条,以便让用户方便地单击超链接访问这三个页面,要求 这

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值