`

Servlet接收URL类请求做出响应

    博客分类:
  • JAVA
阅读更多
package com.yl.servlet;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class ForeignServlet extends HttpServlet {

	public ForeignServlet() {
		super();
	}

	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		requestXML(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		requestXML(request, response);
	}

	public void init() throws ServletException {
	}

	public void requestXML(HttpServletRequest request, HttpServletResponse response) throws IOException
	{
		/**********************************读取传进来的xml字符流**********************************************/
        BufferedReader bfreader=request.getReader();
        StringBuffer sb=new StringBuffer();
        String oneLine=null;
        
        while((oneLine=bfreader.readLine())!=null)
        {
            sb.append(oneLine);
            sb.append("\r\n");
        }        
        bfreader.close();
        String str=new String(sb.toString().getBytes("iso8859_1"),"GB2312");//避免字符串中有中文所以做一次编码转换       
        
       // NumDeptDataForeignService service=new NumDeptDataForeignService();
        
        /*将读取到的XML格式字符进行解析并执行相关的操作要求*/
        System.out.println("#####输入的字符串:\n"+str);
        
        //Document doc=service.proccessRequest(str);
        
        Document rootdoc = DocumentHelper.createDocument();
        Element myElement = rootdoc.addElement("student");
        Element andy = myElement.addElement("andy");
        andy.setText("andy");
        
        Element Jane = myElement.addElement("Jane");
        Jane.setText("Jane");
        
        
       // byte[] xmlByte=doc.asXML().getBytes("GB2312");
        System.out.println("#####开始输出字符串");
        /**********************************输出xml字符流**********************************************/
        OutputStream out=response.getOutputStream();
        if(rootdoc!=null)
        {
           
            //-------------------------------------
            //将返回的文档对象写入到字节数组中去
            //-------------------------------------
            ByteArrayOutputStream bOut=new ByteArrayOutputStream();
            OutputFormat format=OutputFormat.createPrettyPrint();            
            format.setEncoding("GB2312"); //设置XML文档的编码类型
            format.setSuppressDeclaration(false);//设置是否打印文档头,即:<?xml version="1.0" encoding="GB2312"?>
            format.setIndent(true); //设置是否缩进
            format.setIndent("   "); //以空格方式实现缩进
            format.setNewlines(true); //设置是否换行           
           
            XMLWriter writer=new XMLWriter(bOut,format);        
            writer.write(rootdoc);  //将doc写入到字节数组流中去
            
            String xmlstr=bOut.toString();
            
            System.out.println(xmlstr);
            
            writer.close();
            bOut.close();
            //-------------------------------------
            //将字节数组写到输出流中去
            //-------------------------------------
            byte[] xmlByte=xmlstr.getBytes("GB2312");  //转码
            System.out.println("返回数据的字节数:"+xmlByte.length); 
            BufferedOutputStream bufferOut=new BufferedOutputStream(out,1024*1024); //将缓冲区设置为1M
            bufferOut.write(xmlByte);
            bufferOut.close();
        }
        out.close();
        System.out.println("#####写入输出流完成");
	}
}
分享到:
评论

相关推荐

    servlet技术初步入门

    2. 服务器接收到请求后,通过Servlet容器查找对应的Servlet实例。 3. 如果Servlet尚未初始化,容器会创建Servlet实例并调用init()方法进行初始化。 4. 容器将请求封装成ServletRequest对象,将响应封装成Servlet...

    servlet接收form表单提交的数据

    在Web开发中,Servlet是一种Java类,用于处理HTTP请求并生成动态内容。当我们需要从HTML表单(form)中获取用户输入的数据并在网页上显示时,Servlet扮演着关键角色。本篇将详细介绍如何使用Servlet来接收form表单提交...

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

    当Servlet接收到请求后,可以通过`RequestDispatcher`对象的`forward()`方法将请求转发给其他资源,如另一个Servlet、JSP页面等。 - 请求转发共享相同的请求环境,也就是说,请求参数和对象在转发过程中保持不变,...

    基于Servlet发送、接收SOAP消息的java源程序

    在web.xml文件中配置Servlet,指定服务的URL映射和对应的JAX-WS服务实现类。 3. **部署Web应用** 将项目打包为WAR文件,部署到支持Servlet的Web服务器,如Tomcat。 4. **编写SOAP客户端** 创建Servlet,负责...

    Flex使用HttpService以键值对的形式发送请求,Java使用Servlet接收

    然后,Java端需要一个Servlet来接收和处理这些请求。Servlet是Java EE的一部分,它是一个特殊的Java类,可以响应来自HTTP客户端的请求。对于Flex发送的键值对数据,Servlet可以通过`HttpServletRequest`对象获取它们...

    Servlet请求响应的特殊处理.rar

    下面,我们将详细探讨Servlet请求响应的特殊处理。 1. **错误处理**: - ` ServletException` 和 `IOException`:Servlet在处理请求时,可能由于配置错误或网络问题抛出异常。开发者应该妥善捕获并处理这些异常,...

    jsp传参 servlet接收中文乱码问题的解决方法.docx

    jsp 传参 servlet 接收中文乱码...在解决 jsp 传参 servlet 接收中文乱码问题需要我们了解 HTTP 请求和响应的编码机制,并且掌握正确的编码转换方法。只有这样,我们才能正确地传递中文字符,并且避免乱码问题的出现。

    Servlet详解与应用.pptx.pptx

    Servlet的定义 Servlet是运行在服务器端的Java程序,能够接收和响应客户端的请求,主要...Servlet通过监听特定的URL请求进行工作,当有请求到达时,服务器会调用相应的Servlet来处理请求并生成响应,然后返回给客户端。

    servlet api servlet api

    - 加载与实例化:当服务器接收到对Servlet的首次请求时,会加载Servlet类并创建其实例。 - 初始化:创建实例后,调用`init()`方法进行初始化,通常用来配置Servlet。 - 服务:每当服务器接收到对Servlet的新请求...

    Java+servlet+jsp页面ajax请求

    在Java Web应用中,Servlet接收客户端(如浏览器)发送的请求,处理业务逻辑,并返回响应。在AJAX请求中,Servlet负责处理来自客户端的AJAX请求,执行相关操作并返回JSON或XML格式的数据。 2. **JSP**:JSP是Java的...

    Java_Servlet教程(繁体)

    当Web服务器接收到客户端的请求时,它会调用相应的Servlet实例来处理请求并返回响应。 二、Servlet生命周期 Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。加载时,Servlet容器创建Servlet实例;初始化...

    ajax异步文件上传,servlet处理

    在服务器端,我们需要一个Servlet来接收并处理这些文件。在Java中,我们可以使用`HttpServletRequest`的`getPart`方法获取上传的文件: ```java @WebServlet("/upload") public class FileUploadServlet extends ...

    servlet初级基础知识入门笔记

    Servlet规范定义了服务器端程序如何接收和响应客户端(通常是浏览器)的请求。在这个初级基础知识入门笔记中,我们将深入理解Servlet的基本概念、开发过程、运行机制以及与HTTP协议的关系。 1. **Servlet基础** - ...

    servlet代码+说明文档

    在Java中,Servlet是一个实现了javax.servlet.Servlet接口的类,可以接收和响应来自Web客户端的请求。通过继承HttpServlet类,我们可以覆盖doGet()和doPost()等方法来处理GET和POST请求。 1. **Servlet生命周期**:...

    servlet调用的几种方式

    当用户点击这个链接时,浏览器发起GET请求,Servlet接收到请求并返回响应。 4. **通过JavaScript函数** 使用JavaScript,可以在前端代码中动态地触发对Servlet的请求。例如,在HTML文件中定义一个JavaScript函数`...

    Servlet-api setvlet文档

    Servlet是一种Java程序,它可以接收并响应来自Web客户端(如浏览器)的请求。在Servlet-api文档中,包含了Servlet规范、接口和类的详细说明,是学习和理解Servlet技术的基础。 Servlet-api的核心知识点包括: 1. *...

    serlvet 源码 servlet-src 源文件

    - **加载与实例化**:当Web服务器启动或第一次接收到对Servlet的请求时,会加载Servlet类并创建其实例。 - **初始化**:Servlet实例被创建后,会调用`init()`方法进行初始化,一般用于设置Servlet的内部状态。 - ...

    servlet入门小例子

    通过解压并运行此项目,我们可以实际体验到Servlet接收和处理表单数据的过程。 总结,Servlet是Java Web开发中的关键组成部分,它通过处理HTTP请求和构建响应来实现动态网页。通过学习和实践"Servlet入门小例子",...

    servlet 心的练习

    1. 加载:当服务器启动或第一次接收到对Servlet的请求时,会加载Servlet类并创建一个Servlet实例。 2. 初始化:加载后,Servlet实例会调用`init()`方法进行初始化,例如设置配置参数或打开数据库连接等。 3. 服务:...

    ava Servlet API中文说明文档

    Servlet通过Servlet引擎接收HTTP请求,处理数据,然后生成响应。客户端(通常是Web浏览器)向服务器发送请求,Servlet引擎接收到请求后,调用相应的Servlet来处理,Servlet再将处理结果返回给引擎,最终由引擎转发回...

Global site tag (gtag.js) - Google Analytics