少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          實(shí)現(xiàn)servlet的跳轉(zhuǎn),以輸入流的形式來傳輸數(shù)據(jù)

          測(cè)試UnionPayServlet的httpClient測(cè)試類:
            package com.abin.lee.https;
          import java.io.IOException;
          import java.io.OutputStream;
          import java.io.OutputStreamWriter;
          import java.io.Writer;
          import junit.framework.TestCase;
          import org.apache.http.HttpEntity;
          import org.apache.http.HttpResponse;
          import org.apache.http.client.HttpClient;
          import org.apache.http.client.methods.HttpPost;
          import org.apache.http.entity.ContentProducer;
          import org.apache.http.entity.EntityTemplate;
          import org.apache.http.impl.client.DefaultHttpClient;
          import org.apache.http.util.EntityUtils;
          import org.junit.Test;
          public class HttpClientTest extends TestCase {
          private static final String Url = "http://localhost:9090/Spa/UnionPayServlet";
          @Test
          public void testHttpClient() throws Exception {
          HttpClient client = new DefaultHttpClient();
          HttpPost post = new HttpPost(Url);
          ContentProducer create = new ContentProducer() {
          public void writeTo(OutputStream outstream) throws IOException {
          Writer writer = new OutputStreamWriter(outstream, "UTF-8");
          writer.write("start");
          writer.flush();
          writer.close();
          }
          };
          HttpEntity request = new EntityTemplate(create);
          post.setEntity(request);
          HttpResponse response = client.execute(post);
          HttpEntity entity = response.getEntity();
          String result = EntityUtils.toString(entity);
          System.out.println("the last message is: "+result);
          }
          }



          //被訪問的servlet,也就是中間servlet
          package org.litsoft.air.servlet;
          import java.io.BufferedReader;
          import java.io.BufferedWriter;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.io.OutputStream;
          import java.io.OutputStreamWriter;
          import java.io.Writer;
          import javax.servlet.ServletException;
          import javax.servlet.ServletOutputStream;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import org.apache.http.HttpEntity;
          import org.apache.http.HttpResponse;
          import org.apache.http.client.HttpClient;
          import org.apache.http.client.methods.HttpPost;
          import org.apache.http.entity.ContentProducer;
          import org.apache.http.entity.EntityTemplate;
          import org.apache.http.impl.client.DefaultHttpClient;
          import org.apache.http.util.EntityUtils;
          public class UnionPayServlet extends HttpServlet {
          private static final String Url = "http://localhost:9090/Spa/changeServlet";
          @Override
          protected void doPost(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
          System.out.println("UnionPayServlet");
          String result=null;
          BufferedReader reader=new BufferedReader(new InputStreamReader(request.getInputStream()));
          int num=0;
          char[] buffer=new char[1024];
          while((num=reader.read(buffer))!=-1){
          result=new String(buffer,0,num);
          }
          System.out.println("from HttpCLient message is: ="+result);
          final String transfer=result;
          HttpClient client = new DefaultHttpClient();
          HttpPost post = new HttpPost(Url);
          ContentProducer create = new ContentProducer() {
          public void writeTo(OutputStream outstream) throws IOException {
          Writer writer = new OutputStreamWriter(outstream, "UTF-8");
          writer.write(transfer);
          writer.flush();
          writer.close();
          }
          };
          HttpEntity httpEntity = new EntityTemplate(create);
          post.setEntity(httpEntity);
          HttpResponse httpResponse = client.execute(post);
          HttpEntity entity = httpResponse.getEntity();
          String result1 = EntityUtils.toString(entity);
          // System.out.println(result1);
          ServletOutputStream out=response.getOutputStream();
          BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));
          writer.write("this message is received by UnionPayServlet is: "+result1);
          writer.flush();
          writer.close();
          }
          @Override
          public void destroy() {
          super.destroy();
          }
          }




          //最終要處理的servlet
          package org.litsoft.air.servlet;
          import java.io.BufferedReader;
          import java.io.BufferedWriter;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.io.OutputStreamWriter;
          import java.io.PrintWriter;
          import java.net.HttpURLConnection;
          import java.net.URL;
          import javax.servlet.ServletException;
          import javax.servlet.ServletOutputStream;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import org.litsoft.air.unionpay.CreateJdomOne;
          public class ChangeServlet extends HttpServlet {
          @Override
          protected void doPost(HttpServletRequest request,
          HttpServletResponse response) throws ServletException, IOException {
          // 接收Servlet傳回來的信息
          BufferedReader reader = new BufferedReader(new InputStreamReader(
          request.getInputStream()));
          String show = null;
          StringBuffer stb = new StringBuffer();
          while ((show = reader.readLine()) != null) {
          stb.append(show);
          }
          System.out.println("from UnionPayServlet message is :" + stb.toString());
          reader.close();
          ServletOutputStream out=response.getOutputStream();
          BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));
          writer.write("this message is received by ChangeServlet is :"+stb.toString());
          writer.flush();
          writer.close();
          }
          }


          //servlet的配置
          <?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>UnionPayServlet</servlet-name>
          <servlet-class>org.litsoft.air.servlet.UnionPayServlet</servlet-class>
          </servlet>
          <servlet-mapping>
          <servlet-name>UnionPayServlet</servlet-name>
          <url-pattern>/UnionPayServlet</url-pattern>
          </servlet-mapping>
          <servlet>
          <servlet-name>changeServlet</servlet-name>
          <servlet-class>org.litsoft.air.servlet.ChangeServlet</servlet-class>
          </servlet>
          <servlet-mapping>
          <servlet-name>changeServlet</servlet-name>
          <url-pattern>/changeServlet</url-pattern>
          </servlet-mapping>
          <welcome-file-list>
          <welcome-file>index.jsp</welcome-file>
          </welcome-file-list>
          </web-app>
          posted on 2012-09-27 20:31 abin 閱讀(1837) 評(píng)論(0)  編輯  收藏 所屬分類: SIPHMPASTERISKHTTPS

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 桃源县| 巩留县| 祁连县| 镇宁| 永德县| 肇源县| 东港市| 荆州市| 天峻县| 崇礼县| 阳信县| 平武县| 武陟县| 察隅县| 龙里县| 石门县| 友谊县| 乌兰浩特市| 当雄县| 清涧县| 商城县| 肥东县| 忻州市| 天柱县| 绥滨县| 深圳市| 根河市| 马尔康县| 汶上县| 洛浦县| 淅川县| 勐海县| 航空| 舒兰市| 登封市| 宾阳县| 杂多县| 会宁县| 石家庄市| 兴化市| 通化市|