`
knight_black_bob
  • 浏览: 853612 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

servlet 消息转发

阅读更多

 

 

 

 

 

<?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中实现请求转发,用户登录

    如果验证成功,我们将请求转发到"success.jsp"页面,展示登录成功的消息;反之,如果验证失败,则转发到"error.jsp"页面,显示登录失败的信息。 用户登录验证通常涉及数据库操作。这里我们假设`UserDAO.checkLogin...

    servlet请求转发、重定向、包含

    Servlet请求转发、重定向和包含是Servlet中处理客户端请求的重要技术,它们都涉及到如何有效地管理用户请求和页面跳转,但各自有不同的特性和应用场景。 1. **请求转发(Request Forward)** - 请求转发是在服务器...

    Servlet转发与重定向

    Servlet 转发与重定向 Servlet 转发与重定向是 Java Servlet 编程中两个重要的概念,它们都可以让浏览器获得另外一个 URL 所指向的资源,但是它们的内部运行机制有着很大的区别。 RequestDispatcher.forward 方法 ...

    javaServlet请求转发和重定向.pdf

    Java Servlet 请求转发和重定向 Java Servlet 请求转发和重定向是两种不同的页面跳转机制,它们在 Web 应用程序中扮演着重要的角色。理解这两种机制的区别和使用场景是非常重要的。 请求转发是指将请求再转发到另...

    android利用servlet服务端转发数据实现内网两个android设备通信

    在这种情况下,我们可以利用服务器作为中介,通过Servlet服务端进行数据转发来实现通信。以下是对这个技术点的详细阐述。 首先,让我们理解基本概念。Servlet是一种Java编程语言编写的服务器端程序,主要用于扩展...

    一个servlet,请求转发,过滤

    在Java Web开发中,Servlet、请求转发和过滤器是核心概念,它们构成了Web应用程序的基础架构。下面将分别详细解释这三个知识点,并结合 `${}` 符号的使用进行深入探讨。 1. Servlet: Servlet 是 Java 提供的一种...

    servlet 笔记

    ### Servlet基础知识及应用详解 #### 一、Servlet概述 Servlet是一种服务器端的Java技术,用于扩展应用程序的功能。它主要用于Web应用程序开发,可以处理客户端发送到Web服务器的各种请求,并且能够生成动态网页。...

    Servlet基础知识总结

    ### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...

    servlet笔记,servlet的总结

    Web服务器如Apache Tomcat、JBoss等,负责接收HTTP请求并将它们转发给Servlet容器处理。Tomcat是广泛使用的开源Web服务器,基于Java开发,需要JVM支持。配置Tomcat包括设置JAVA_HOME和CATALINA_HOME环境变量,以及...

    jsp,servlet,filter温故知新

    **JSP、Servlet与Filter详解** 在Web开发领域,Java技术是不可或缺的一部分,其中JSP(JavaServer Pages)、Servlet和Filter是三个核心概念。本文将深入探讨这些技术,帮助开发者温故知新,理解它们的功能、工作...

    servlet转发、包含详解(七)

    Servlet 转发是指将用户的请求通过一组 Servlet 来处理,每个 Servlet 都有自己特定的职责,当该 Servlet 完成自己的工作后将请求转发到下一个 Servlet 来处理,这种通过不同 Servlet 相互转发请求来完成对某个请求...

    servlet代码+说明文档

    5. **Servlet的转发和重定向**:Servlet可以通过RequestDispatcher的forward()方法将请求转发到其他资源,或者通过HttpServletResponse的sendRedirect()方法重定向浏览器。两者的区别在于前者是在服务器端完成的,后...

    Servlet

    Servlet API提供了许多工具类,如`RequestDispatcher`用于请求转发和重定向,`Cookie`用于管理客户端的持久性数据,`Session`用于跟踪用户会话。 七、Servlet与JSP的配合 Servlet通常用于处理业务逻辑,而JSP则专注...

    利用weblogic设置代理转发功能注意事项

    代理转发功能注意事项 在本文中,我们将讨论如何使用 WebLogic 设置代理转发功能,包括简单代理转发功能的注意事项和集群分发的配置步骤。 设置简单代理转发功能 要设置简单代理转发功能,需要创建一个服务或集群...

    Servlet实验报告.pdf

    2. 服务器将请求转发给 Servlet。 3. Servlet 对客户端的请求进行处理。 4. Servlet 将处理结果返回给客户端。 六、Servlet 方法 1. init() 方法:在 Servlet 生命周期中第一个被调用的方法,用于初始化 Servlet。...

    浅谈Servlet转发到JSP页面的路径问题(必看)

    在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同一个文件夹下时,则会出现路径混乱问题。 2. 绝对路径概念 相对于...

    servlet 心的练习

    Servlet是Java Web开发中的核心...在"day02"中,你可能会遇到各种Servlet的使用场景,如请求转发、重定向、会话管理等,这些都是Servlet编程中的重要知识点。不断实践和探索,将使你在Java Web开发领域更加得心应手。

    servlet-api中文文档

    4. JSP动作标签:如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:params&gt;`等,它们用于动态地插入内容、转发请求或者传递参数。 总结来说,这个压缩包中的内容涵盖了Servlet API的核心概念和JSP的基本元素,对于理解和...

    java web servlet实例

    Servlet可以使用`RequestDispatcher`进行请求转发或重定向。转发是服务器内部操作,而重定向是客户端发起新的请求。例如: ```java RequestDispatcher dispatcher = req.getRequestDispatcher("/anotherPage.jsp...

Global site tag (gtag.js) - Google Analytics