少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          實現servlet的跳轉,以輸入流的形式來傳輸數據

          測試UnionPayServlet的httpClient測試類:
            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) 評論(0)  編輯  收藏 所屬分類: SIPHMPASTERISKHTTPS

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 隆回县| 阿拉尔市| 长沙市| 南通市| 贵德县| 和静县| 霍林郭勒市| 商丘市| 石渠县| 策勒县| 芦溪县| 南澳县| 全州县| 成都市| 腾冲县| 东丰县| 鞍山市| 台东县| 当雄县| 从江县| 扶绥县| 潢川县| 静安区| 浪卡子县| 绥宁县| 辽阳市| 志丹县| 西华县| 两当县| 老河口市| 宝坻区| 远安县| 甘德县| 克山县| 柳州市| 宣汉县| 合作市| 东乡族自治县| 青田县| 西峡县| 昌乐县|