`

filter中重写应答要素

阅读更多

java web中,重写response应答体(响应体)

/***
	 * Send http request
	 * 
	 * @param response
	 * @param bytes  :字节数组
	 * @param contentType  :if is null,default value is  "application/json"
	 * @param encoding   :  编码方式
	 * @throws IOException
	 */
	public static void sendRequestWriter(HttpServletResponse response, byte[] bytes,
			String contentType,String encoding) throws IOException {
		response.setContentLength(bytes.length);
		if (contentType == null) {
			contentType = "application/json";
		}
		response.setContentType(contentType);

		PrintWriter printer = response.getWriter();
		printer.println(new String(bytes,encoding));
		printer.flush();
		printer.close();
	}
	
	/***
	 * 
	 * @param response
	 * @param sendData   :<code>String</code>
	 * @param contentType
	 * @param encoding : such as GBK/utf-8
	 * @throws IOException
	 */
	public static void sendRequestWriter(HttpServletResponse response, String sendData,
			String contentType,String encoding) throws IOException {
//		response.setContentLength(sendData.getBytes(encoding).length);
		byte[]bytes=sendData.getBytes(encoding);
		sendRequestWriter(response, bytes, contentType, encoding);
	}

 以上方法都是使用PrintWriter来写入response的。

下面的方式是使用流的方式写入response:

/***
	 * test ok
	 * @param response
	 * @param bytes
	 * @param contentType
	 * @param encoding
	 * @throws IOException
	 */
	public static void sendRequestStream(HttpServletResponse response, byte[] bytes,
			String contentType) throws IOException {
		response.setContentLength(bytes.length);
		if (contentType == null) {
			contentType = "application/json";
		}
		response.setContentType(contentType);

		ServletOutputStream sos = response.getOutputStream();
		sos.write(bytes, 0, bytes.length);
		sos.flush();
		sos.close();
	}

 应用:用于在网关中进行请求转发和响应。

见附件中的类com.common.util.SystemUtil

1
2
分享到:
评论

相关推荐

    servlet_filter.rar_Servlet filter_重写filter

    在这个压缩包“servlet_filter.rar”中,我们聚焦于Servlet Filter的重写以及如何利用它来解决乱码问题和过滤敏感字符。 首先,让我们深入理解Servlet Filter的工作原理。Servlet Filter是一个实现了`javax.servlet...

    JavaWeb中URL重写用Forward方式并使其后filter可以拦截内部转发

    在JavaWeb开发中,URL重写和Filter是两个非常重要的概念。URL重写常用于实现友好的URL结构,提升用户体验,而Filter则是JavaWeb中的一种拦截机制,可以对请求进行预处理或后处理。本篇将详细讲解如何在JavaWeb中使用...

    java中的url重写

    在 Java 中,有多种方式可以实现 URL 重写,包括使用 WEB 服务器自身提供的组件和使用开源项目 UrlRewrite Filter。 UrlRewrite Filter 是一个基于 Java 的开源项目,它提供了一种灵活的方式来实现 URL 重写。它...

    jsp的一个url重写

    在JSP环境下,URL重写通常通过在Web应用的`web.xml`配置文件中定义过滤器(Filter)来实现。具体而言,通过使用特定的过滤器,如Tuckey的`UrlRewriteFilter`,可以对传入的请求URL进行解析和修改,使其符合预设的...

    struts2中实现URL重写

    下面我们将详细探讨如何在Struts2框架中实现URL重写。 首先,了解URL重写的基本概念。URL重写是通过改变HTTP请求URL的外观,而不会改变其实际的行为。这通常涉及到在URL中添加或修改查询字符串,或者将路径信息改写...

    ajax重写方法搭配后台filter返回status实现ajax请求跳转登录页面

    本文将详细介绍如何利用Ajax重写方法配合后台Filter来实现这种情况下的状态检测和跳转。 一、Ajax重写方法 在前端,我们需要重写Ajax请求以处理特定的HTTP状态码。通常,当我们发送一个Ajax请求时,我们关注的是...

    java filter打印请求返回参数

    3. **配置Filter**:在`web.xml`中配置自定义的Filter,确保其在请求处理链中执行。 4. **解决乱码问题**:通过设置响应输出流的字符集编码来避免乱码。 #### 三、具体实现细节 ##### 1. 封装`HttpServletRequest...

    使用urlrewrite重写struts2的action

    在这个场景中,我们将深入探讨如何使用`URL Rewrite Filter`来重写Struts2的Action。 首先,让我们理解`URL Rewrite Filter`的基本概念。这个工具提供了一种方式,通过配置XML文件(如`urlrewrite.xml`)来定义一...

    Java WEB实现URL重写

    在Java Web开发中,URL重写是一种常见的技术,它能够帮助我们优化应用程序的用户体验和搜索引擎优化(SEO)。URL重写的主要目的是将复杂的、带有多个参数的URL转化为更加友好、易于理解的形式。这样的URL更容易被...

    java 中如何使用filter过滤器

    - **Filter参数**:在`web.xml`中可以通过`init-param`为Filter提供配置参数,以便在Filter中使用。 - **异步Filter**:Java Servlet 3.0及以上版本支持异步Filter,可以在`doFilter`方法中使用异步处理,提高性能。...

    java中filter的用法(过滤器)

    ### Java中的Filter(过滤器)使用详解 #### 一、Filter概述 在Java Web开发中,`Filter`是一种非常实用的技术,它可以在请求到达目标资源(如Servlet或JSP页面)之前进行预处理,或者在响应返回客户端之前进行后...

    Servlet Filter 的单元测试

    Servlet Filter 是Java Servlet API中的一个重要组件,主要用于在Servlet处理请求之前或之后进行拦截处理,例如权限检查、日志记录、内容转换等。进行Servlet Filter的单元测试是确保Filter功能正确性和健壮性的重要...

    Struts1 ULR重写

    5. **集成第三方库**:有时候,我们可能会使用像Tuckey的URL Rewrite Filter这样的第三方库来简化URL重写的工作。这个库提供了一套配置文件(如urlrewrite.xml)来定义URL重写规则,使得管理变得更加方便。 6. **...

    delphi资源-Filter中的模糊过滤

    ### Delphi资源—Filter中的模糊过滤 #### 一、模糊过滤概述 在Delphi开发环境中,数据查询与筛选是一项常见的需求。为了满足不同场景下的数据处理需求,Delphi提供了多种方式来实现数据过滤,其中模糊过滤是较为...

    nginx源码vs工程-自定义handler处理-创建子请求处理逻辑-filter过滤器中处理应答

    在filter中获取后端服务器返回来的数据,处理完后,创建子请求转发到另外一个服务器处理,接收服务器回应数据,再发送回给客户端。 5.支持自定义变量的注册与获取,在location中解析到对应的变量时,动态获取到...

    FilterPro 安装及基本教程中英文

    在FilterPro中,用户可以通过选择MFB滤波器类型,然后调整参数来实现特定的滤波效果。MFB滤波器设计通常涉及更多的电路级细节,但FilterPro的可视化工具和自动计算功能使得这一过程变得相对简单。 为了深入了解...

    如何配置Filter过滤器处理JSP中文乱码

    在项目的`web.xml`文件中,你需要添加一个Filter来定义处理乱码的逻辑。首先,声明一个新的过滤器,给它一个唯一的名称,例如`EncodingFilter`,并指定过滤器的实现类,如`com.filters.SetCharacterEncodingFilter`...

    伪静态(url重写)

    3. **编写Filter逻辑**:在Filter的`doFilter()`方法中,我们可以获取到`HttpServletRequest`对象,然后通过修改`HttpServletRequest`的请求路径或者创建新的`HttpServletRequest`对象来实现URL重写。 4. **传递...

    Filter中文乱码问题.doc

    在这个文档中,我们将深入探讨如何使用Filter解决中文乱码问题。 首先,我们需要创建一个自定义的Filter类,继承自`javax.servlet.Filter`接口,并实现其中的`init`和`doFilter`方法。`init`方法在Filter初始化时...

Global site tag (gtag.js) - Google Analytics