-
post一个超过java的String长度限制的xml,有哪些方式呢?5
一个发布在web的响应post的xml请求的xml,(就是用一个xml作为内容响应发过来的xml)
由于需要返回的内容很长,超过java的String限制,有什么方式处理这样的情况呢?
问题补充:需要解决的就是 接收超长信息和回复超长信息的方式。目前是直接内存中操作,但是,再长一些就有问题了。如何解决呢?最好不要动这个框架。2012年6月02日 23:47
5个答案 按时间排序 按投票排序
-
访问XML的API有
SAX JDom等不同的API
SAX 是只 load 你需要的部分到内存。
DOM 是把整个DOM load到内存。
你要根据你的需求选择 响应的API
至于String长度的问题, 参见protected void sendToHttpServletResponse(byte[] reportContents, HttpServletResponse response, String fileName, String contentType, String extName) throws Exception { if (0 == reportContents.length) { throw new Exception("reportContents.length is 0. "); } ServletOutputStream ouputStream = null; BufferedOutputStream bs = null; response.setBufferSize(reportContents.length); // response.setContentType("application/xml"); response.setContentType(contentType); response.setContentLength(reportContents.length); response.setHeader("Content-Disposition", "attachment;filename=" + fileName + extName); response.setHeader("Expires", "0"); response .setHeader("Cache-Control", "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); try { ouputStream = response.getOutputStream(); bs = new BufferedOutputStream(ouputStream); bs.write(reportContents); bs.flush(); } catch (Exception e) { // TODO: handle exception throw e; } finally { if (null != bs) try { bs.close(); } catch (IOException e) { e.printStackTrace(); } if (null != ouputStream) try { ouputStream.close(); } catch (IOException e) { e.printStackTrace(); } } LOG.info("generateReport-> clint.executeMethod success "); }
2012年6月07日 06:18
-
个人建议 和 socket一样,你接收或者传信息的时候 有一个开始标记 和一个结束标记!
单次传递 不要太对信息咯! 最后一起处理!
如果你的XML 太大了!也需要分次接收!2012年6月03日 19:20
相关推荐
例如,要从一个网页获取数据,我们可以构造如下的URL: ```java String url = "http://example.com/data?id=123"; ``` 在Java中,我们可以使用`java.net.URL`和`java.net.HttpURLConnection`类来发送GET请求: ``...
例如,如果你有一个名为`HelloWorld`的Web服务方法,参数为`name`,那么XML可能如下所示: ```xml <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <name>John Doe `...
Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,...
这种方式限制了URL长度,不适合传递大量数据或敏感信息。 - POST:请求参数放在请求体中,不受URL长度限制,可以传输大量数据和敏感信息。 2. 安全性: - GET:因为参数显示在URL上,所以易于被缓存、记录,相对...
- 受到URL长度限制(大多数浏览器限制为2048个字符),因此不适合传输大量数据。 - **POST**: - 没有明确的数据大小限制,理论上可以传输非常大的数据量。 #### 5. 编码格式 - **GET**: - 默认使用ASCII编码...
结束 `session` 的主要方式包括关闭浏览器、两次访问之间的间隔时间超过非活动时间限制,或者显式地调用 `HttpSession` 的 `invalidate()` 方法。 --- #### 20. `Properties` 类的 `load()` 方法 **知识点**: `...
Get将参数附加在URL后面,可见且有长度限制,适合获取数据;Post将数据放在请求体中,安全且能传输大量数据,适合修改或提交数据。 三、Java多态的具体体现: 多态是面向对象的三大特性之一,体现在子类对象可以被...
这种方式适合传输大量或复杂的参数,避免了URL长度限制。 3. **HttpSoap调用**: 对于SOAP协议,数据以XML格式封装在HTTP请求正文中。SOAP消息通常包含`<soap:Envelope>`标签,用于定义消息结构。Apache CXF库可以...
GET是在URL中显式传递参数,适合获取数据,但对数据长度有限制,且不安全;POST则将参数隐藏在请求体中,可以传输大量数据,更安全,但可能导致缓存问题。 三、Java多态 多态是面向对象编程的重要特性,允许一个父...
- **GET**:将表单数据附加在URL后面进行传递,数据可见且长度有限制。 - 例子:`/servlet/examples.HelloServlet?name=2p&password=123` - **POST**:将表单数据放置在HTTP请求的消息主体中进行传递,数据不可见且...
Java多态是指在编程中可以使用同一个方法名,但根据不同的参数类型或对象类型来执行不同的操作。具体体现为: * 方法重载(Overload):同名方法可以根据参数类型的不同来执行不同的操作 * 方法重写(Override):...
- Java虚拟机(JVM)是一个可以执行Java字节码的虚拟机环境。 - Java被称为“平台无关”的原因在于,Java程序在任何安装了JVM的操作系统上都能运行相同的字节码。 30. **什么是正则表达式?用途是什么?哪个包使用...
GET将参数附在URL后面,适合获取数据,但对数据长度有限制,且不安全;POST将数据放在请求体中,能处理大量数据,更安全,但可能被防火墙拦截。 3. **Java多态的具体体现** 多态性是面向对象的三大特性之一,体现...
GET请求长度有限制。 - **POST**:主要用于发送数据,数据放在HTTP消息的正文中,没有数据量限制,相对安全。 #### 4. **Set 如何判断值重复** `Set`是一种不允许元素重复的集合,它是通过调用对象的`equals()`...
19.ASP.net的身份验证方式有哪些?分别是什么原理? 答:10。Windwos(默认)用IIS...From(窗体)用帐户....Passport(密钥) 20.什么是Code-Behind技术? 答:代码后植。 21.在.net中,配件的意思是? 答:程序集。...
Struts是一个基于MVC设计模式的Java Web应用框架。它将模型、视图和控制器分离,使得开发更加结构化、易于维护。Struts的核心组件包括: - **ActionServlet**:作为控制器,负责接收用户请求,并将其分发给合适的...
- **J2EE是一个框架**:提供了多种API和技术支持,包括但不限于JDBC、JNDI、RMI、JMS、EJB、JTA等。 #### 五、编码转换示例 ```java public String translate(String str) { String tempStr = ""; try { // 将...
- **数据大小限制**:由于GET方法的数据是通过URL传递的,因此它受到URL长度的限制(虽然这个限制在不同浏览器中有所不同,但通常最大约为2KB),而POST方法没有此限制。 - **安全性**:GET方法不如POST方法安全,...