浅谈J2EE中的Service(二)

原创 2006年06月12日 09:32:00

文章在我的QQ空间里面

http://43990246.qzone.qq.com/?url=http%3A//imgcache.qq.com/qzone/blog/blog.html%23blogId%3D94936

  第一步建立Service,先建立一个WEB工程名字叫excel,然后在建立一个叫testservice的servelet
servelet中的代码如下:




package serverlet;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URI;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class testservice extends HttpServlet {
public testservice() {
super();
}
public void destroy() {
super.destroy();
}


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setCharacterEncoding("UTF-8");
InputStream in=request.getInputStream();  ///读取客户端请求的字节流
String sp ="";
byte[] b1=null;

while(in.read(b1 = new byte[1]) != -1 )
{
sp += new String(b1,"UTF-8");

}

System.out.println("Service中接收到的客户端请求"+sp+"========");///以上是打印在TOMCAT中的。
in.close();
///////以上的代码实际应用中可以用DOM4J等方法解析这个XML然后可以做如判断用户身份,
/////和得知用户请求的类型和条件。
OutputStream Out=response.getOutputStream();
String strxml="" +
               "<?xml version=/"1.0/" encoding=/"UTF-8/" ?>"+
                 "<Response>"+
            "<ResponseHotel>"+
            "<Country Code=/"China/" />"+
            "<City Code=/"Shanghai/" />"+
                "<Hotels>"+
                 "<Hotel>金茂凯悦</Hotel><Hotel>喜来登</Hotel>"+
                 "</Hotels>"+
            "</ResponseHotel>"+
                "</Response>";
byte[] b=strxml.getBytes("UTF-8");
Out.write(b);
///////以上的代码实际应用中根据解析用户请求的XML到数据库中拿需要的数据再组装成XML返回给用户

}


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    doGet(request,response);
}
public void init() throws ServletException {}

}


      第二步建立客户端,建立一个叫TestUrl的CLASS
TestUrl中的代码如下:

package Test;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

public class TestUrl {

public static String strURL = "http://localhost:8080/excel/testservce";
////strURL 中http://localhost:8080/是服务器的地址excel是应用的名字
         ////testservce是具体实现Service的servlet名字


 public static void main(String[] args)throw* **ception{ 
 String strxml="" +
     "<?xml version=/"1.0/" encoding=/"UTF-8/" ?>"+
                 "<Request>"+
                 "<Source>"+
                 "<RequestorID userid=/"shtour/"  password=/"962020/" />"+
                 "</Source>"+
                 "<SearchHotel>"+
                 "<Country Code=/"中国/" />"+
                 "<City Code=/"上海/" />"+
                 "</SearchHotel>"+
                 "</Request>";
URL uConn= new URL(strURL);
URLConnection uc = uConn.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
byte[] b=strxml.getBytes("UTF-8");
OutputStream oso = null;
oso = uc.getOutputStream();
oso.write(b);
///以上代码是建立和Service的连接并且将请求的XML提交给Service。
////以上的代码实际应用中可以用DOM4J等方法根据自己的需求生成XML。
InputStream iso = null;
iso = uc.getInputStream();
String sp ="";
byte[] b1=null;
while(iso.read(b1 = new byte[1]) != -1 )
{
sp += new String(b1,"UTF-8");

}
   System.out.println("客户接收到Service的返回信息"+sp+"====");
  ///以上是打印在控制台的。
      iso.close();
///以上代码是接收Service 返回 的XML
         ////以上的代码实际应用中可以用DOM4J等方法解析这个XML然后格式化的显示在HTML或jsp,asp
         ///页面上或防如数据库中。
     } 
}


     第三步把WEB工程部署到象TOMCAT这样的服务器上,然后运行服务器,这样一个Service就建立了。

      第四步执行TestUrl的MAIN方法看看结果吧。 
如果想这样执行的话注意客户端和Service端打印是在不同的地方。
好了一个Service就这样建立好了。当然用.net平台下的程序也可以来访问这个Service。
具体代码我就不写了。写的不好,如果你要写类似的东西而又没写过的话,可以参考一下ǒ
顺便设想一下EJB中的某写功能是不是也可以用这个代替,如SESSION,RMI 。
 
本blog所发表的[原创]文章,作者保留一切权利。必须经过作者本人同意后方可转载,并注名作者和出处。

浅谈J2EE,servlet的几个定义

1.什么是j2ee   Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterprie...
  • ccecwg
  • ccecwg
  • 2015年01月29日 10:12
  • 284

浅谈J2EE

Java版本      J2ME:功能非常有限,用于嵌入式设备      J2SE:包含原始的核心类库,用于桌面应用程序和浏览器中的Applet      J2EE:功能非常全面,用于数据处...

浅谈J2EE是否适合做核心业务系统

J2EE包含了四部分:Web客户端(Applet),Web服务端(JSP+Serverlet),AP客户端(JAVA APPLICATION),AP服务端(EJB),全面覆盖了计算机系统的各个层次...

浅谈如何学习J2EE、JAVA

我个人是从14年5月份接触到编程,到现在手下带了几个徒弟,并且和他们一起合作搭建了几个项目。近一年的时间,搭建了一个最高负载可以达到千万级别的短信平台,架构后台框架Spring + mybatis,数...

GOF and J2EE 浅谈

看到一篇很有深度的文章讲述GOF和J2ee,分享一下GOF的设计模式是一座"桥"就Java语言体系来说,GOF的设计模式是Java基础知识和J2EE框架知识之间一座隐性的"桥"。会Java的人越来越多...
  • sain615
  • sain615
  • 2011年05月31日 16:12
  • 280

浅谈基于Struts和Hibernate的J2EE应用

  • 2010年04月03日 10:24
  • 347KB
  • 下载

浅谈基于Struts和Hibernate的J2EE应用

  • 2007年08月29日 17:09
  • 349KB
  • 下载

j2ee中在service层开启事务的思路

分析: 1.jdbc的conn对象提供了setAutoCommit方法可以关闭自动提交,在Dao层增删改查时可以方便的开事务 2.有些业务需求,如平台充值程序,需要先更新一个资金表表示支付资金,然...

J2EE之servlet.service

原文地址:http://wuhenjia.blog.163.com/blog/static/93469449201112281120803/ 在学习Servlet的过程中,我们大多时...

Service层在J2EE分层结构中的作用

在通用的J2EE应用分层结构中,经常发现有一个叫Service的分层,那么这个Service层到底是用来做什么的呢 ?简单地就字面理解来说, Service,即服务,那我们可以叫它为服务层。既然作为服...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈J2EE中的Service(二)
举报原因:
原因补充:

(最多只允许输入30个字)