开发者社区> curiousby> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

servlet 消息转发

简介:           reportServlet servlet.ReportServlet reportServlet /report               import java.
+关注继续查看

 

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp"
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
	<display-name></display-name>
	 
	 
	<servlet>   
    <servlet-name>reportServlet</servlet-name>   
    <servlet-class>servlet.ReportServlet</servlet-class>   
</servlet>   
<servlet-mapping>   
    <servlet-name>reportServlet</servlet-name>    
    <url-pattern>/report</url-pattern>   
</servlet-mapping>

 
	 
</web-app>

 

 

 

 

 

 

 

import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

 
@SuppressWarnings("serial")
public class ReportServlet extends HttpServlet{

	static final String  DOMAINURL="http://localhost:80/xxx/xxx/xxx";
	
	@Override  
	 protected void doGet(HttpServletRequest req, HttpServletResponse resp)   
	            throws ServletException, IOException {  
    	super.doPost(req, resp);
	 }   
	    

	 @Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException { 
		 
		   InputStream is = null;
		   ByteArrayOutputStream baos =null;
			try
			{
				is = req.getInputStream();
				baos = new ByteArrayOutputStream();
				int readBytes = 0;
				byte[] bs = new byte[1024];
				while ((readBytes = is.read(bs)) > 0)
					baos.write(bs, 0, readBytes);
			}	catch (IOException e)
			{ 
				e.printStackTrace();
				resp.getWriter().write("{\"errorCode\":401}");
			}
			finally
			{
				if (is != null)
					try
					{
						is.close();
					}
					catch (IOException e)
					{
						e.printStackTrace();
						resp.getWriter().write("{\"errorCode\":401}");
					}
			}
		 
		  
			InputStream in = null;
			HttpURLConnection conn = null;
			String setCookie = null;
			try
			{
				System.out.println("SendTo: " + DOMAINURL);
				URL send_url = new URL(DOMAINURL);

				conn = (HttpURLConnection) send_url.openConnection();
				conn.setConnectTimeout(10000);
				conn.setDoOutput(true);
				conn.setUseCaches(false);
				conn.setRequestProperty("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
				conn.setRequestMethod("POST");
				conn.connect();

				OutputStream raw = conn.getOutputStream();
				OutputStream buf = new BufferedOutputStream(raw);
				OutputStreamWriter out = new OutputStreamWriter(buf, "UTF-8");
				
				out.write(baos.toString());
				out.flush();
				out.close();

				in = conn.getInputStream();
				setCookie = conn.getHeaderField("Set-Cookie");
				// 采用byte流读取

				ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
				byte[] bytes = new byte[1];
				while (in.read(bytes) != -1)
				{
					baos2.write(bytes);
				}
				in.close();
				String ouputData = new String(baos2.toByteArray());
				System.out.println("ouputData = " + ouputData);

				resp.getWriter().write(ouputData); 
			}
			catch (Exception e)
			{ 
				e.printStackTrace();
				resp.getWriter().write("{\"errorCode\":401}");
			}
			finally
			{
				try
				{
					if (in != null)
						in.close();
					if (conn != null)
						conn.disconnect();
				}
				catch (IOException e)
				{
					e.printStackTrace();
					resp.getWriter().write("{\"errorCode\":401}");
				}
			}
		 
		 
		 
		 /*ServletContext application = getServletContext(); 
         RequestDispatcher dispatcher = application.getRequestDispatcher(DOMAINURL); 
         dispatcher.forward(req,resp);*/
	}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Servlet基础
Servlet基础知识介绍
20 0
Servlet入门
Servlet入门
33 0
Servlet(一)
关于Servlet的相关介绍
87 0
Servlet(二)
关于Servlet的相关介绍
47 0
2.Servlet(一)
1.Servlet的编写、访问过程:      (1)编写部署Servlet程序:     编写源文件->编译类文件->部署程序->运行->Servlet处理请求,返回响应。    (2)Eclipse开发Servlet程序      新建类,实现Servlet接口      新建Servlet(继承HttpServlet)      部署位置 2.Servlet中的请求与响应     接收请求:           Tomcat启动后Web容器首先做的工作:Servlet与URL对应->完成Servlet名称注册->创建Servlet实例。
757 0
Servlet
一、servlet的概述 servlet是采用java编写的运行在服务器上的程序,用于接受用户的请求,并针对请求产生响应。javax.servlet.Servlet是servlet的顶层接口,主要方法有init和destory,service三个方法。
1008 0
Servlet入门
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.
642 0
Servlet - 基础
Servlet 标签 : Java与Web HTTP协议 HTTP(hypertext transport protocol),即超文本传输协议.
800 0
+关注
curiousby
echo
428
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载