<?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捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
如果验证成功,我们将请求转发到"success.jsp"页面,展示登录成功的消息;反之,如果验证失败,则转发到"error.jsp"页面,显示登录失败的信息。 用户登录验证通常涉及数据库操作。这里我们假设`UserDAO.checkLogin...
Servlet请求转发、重定向和包含是Servlet中处理客户端请求的重要技术,它们都涉及到如何有效地管理用户请求和页面跳转,但各自有不同的特性和应用场景。 1. **请求转发(Request Forward)** - 请求转发是在服务器...
Servlet 转发与重定向 Servlet 转发与重定向是 Java Servlet 编程中两个重要的概念,它们都可以让浏览器获得另外一个 URL 所指向的资源,但是它们的内部运行机制有着很大的区别。 RequestDispatcher.forward 方法 ...
Java Servlet 请求转发和重定向 Java Servlet 请求转发和重定向是两种不同的页面跳转机制,它们在 Web 应用程序中扮演着重要的角色。理解这两种机制的区别和使用场景是非常重要的。 请求转发是指将请求再转发到另...
在这种情况下,我们可以利用服务器作为中介,通过Servlet服务端进行数据转发来实现通信。以下是对这个技术点的详细阐述。 首先,让我们理解基本概念。Servlet是一种Java编程语言编写的服务器端程序,主要用于扩展...
在Java Web开发中,Servlet、请求转发和过滤器是核心概念,它们构成了Web应用程序的基础架构。下面将分别详细解释这三个知识点,并结合 `${}` 符号的使用进行深入探讨。 1. Servlet: Servlet 是 Java 提供的一种...
### Servlet基础知识及应用详解 #### 一、Servlet概述 Servlet是一种服务器端的Java技术,用于扩展应用程序的功能。它主要用于Web应用程序开发,可以处理客户端发送到Web服务器的各种请求,并且能够生成动态网页。...
### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...
Web服务器如Apache Tomcat、JBoss等,负责接收HTTP请求并将它们转发给Servlet容器处理。Tomcat是广泛使用的开源Web服务器,基于Java开发,需要JVM支持。配置Tomcat包括设置JAVA_HOME和CATALINA_HOME环境变量,以及...
**JSP、Servlet与Filter详解** 在Web开发领域,Java技术是不可或缺的一部分,其中JSP(JavaServer Pages)、Servlet和Filter是三个核心概念。本文将深入探讨这些技术,帮助开发者温故知新,理解它们的功能、工作...
Servlet 转发是指将用户的请求通过一组 Servlet 来处理,每个 Servlet 都有自己特定的职责,当该 Servlet 完成自己的工作后将请求转发到下一个 Servlet 来处理,这种通过不同 Servlet 相互转发请求来完成对某个请求...
5. **Servlet的转发和重定向**:Servlet可以通过RequestDispatcher的forward()方法将请求转发到其他资源,或者通过HttpServletResponse的sendRedirect()方法重定向浏览器。两者的区别在于前者是在服务器端完成的,后...
Servlet API提供了许多工具类,如`RequestDispatcher`用于请求转发和重定向,`Cookie`用于管理客户端的持久性数据,`Session`用于跟踪用户会话。 七、Servlet与JSP的配合 Servlet通常用于处理业务逻辑,而JSP则专注...
代理转发功能注意事项 在本文中,我们将讨论如何使用 WebLogic 设置代理转发功能,包括简单代理转发功能的注意事项和集群分发的配置步骤。 设置简单代理转发功能 要设置简单代理转发功能,需要创建一个服务或集群...
2. 服务器将请求转发给 Servlet。 3. Servlet 对客户端的请求进行处理。 4. Servlet 将处理结果返回给客户端。 六、Servlet 方法 1. init() 方法:在 Servlet 生命周期中第一个被调用的方法,用于初始化 Servlet。...
在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同一个文件夹下时,则会出现路径混乱问题。 2. 绝对路径概念 相对于...
Servlet是Java Web开发中的核心...在"day02"中,你可能会遇到各种Servlet的使用场景,如请求转发、重定向、会话管理等,这些都是Servlet编程中的重要知识点。不断实践和探索,将使你在Java Web开发领域更加得心应手。
4. JSP动作标签:如`<jsp:include>`, `<jsp:forward>`, `<jsp:params>`等,它们用于动态地插入内容、转发请求或者传递参数。 总结来说,这个压缩包中的内容涵盖了Servlet API的核心概念和JSP的基本元素,对于理解和...
Servlet可以使用`RequestDispatcher`进行请求转发或重定向。转发是服务器内部操作,而重定向是客户端发起新的请求。例如: ```java RequestDispatcher dispatcher = req.getRequestDispatcher("/anotherPage.jsp...