- 浏览: 204778 次
- 性别:
- 来自: 青岛
最新评论
-
sunysh005:
界面太丑了,功能没有问题
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
liwh1989 写道
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
...
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
SWFUpload+commons-fileupload 上传文件 -
貌似掉线:
已用上。多谢!
native2ascii的 java实现
1. 压缩 Filter
// GZIPFilter.java
package org.demo.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Filter that compress output with gzip. * Code from http://www.onjava.com/pub/a/onjava/2003/11/19/filters.html * @author dycc * */ public class GZIPFilter implements Filter{ @Override public void init(FilterConfig arg0) throws ServletException { // No operation. } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { if (req instanceof HttpServletRequest){ HttpServletRequest request = (HttpServletRequest)req; HttpServletResponse response = (HttpServletResponse)resp; // check for gzip capability String ac = request.getHeader("accept-encoding"); if (ac == null || ac.indexOf("gzip") == -1){ // not support gzip. chain.doFilter(request, response); } else { // support gzip. GZIPResponseWrapper wrappedResp = new GZIPResponseWrapper(response); chain.doFilter(request, wrappedResp); wrappedResp.finish(); } } } @Override public void destroy() { // No operation. } }
// GZIPResponseWrapper.java
package org.demo.filter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; /** * Wrap for GZIPFilter * @author dycc * */ public class GZIPResponseWrapper extends HttpServletResponseWrapper{ protected HttpServletResponse original_resp = null; protected ServletOutputStream stream = null; protected PrintWriter writer = null; public GZIPResponseWrapper(HttpServletResponse response) { super(response); this.original_resp = response; } @Override public ServletOutputStream getOutputStream() throws IOException { if (writer != null){ throw new IllegalStateException("getWriter() has already been called."); } if (stream == null){ stream = new GZIPResponseStream(original_resp); } return stream; } @Override public PrintWriter getWriter() throws IOException { if (stream != null){ throw new IllegalStateException("getOutputStream() has already been called."); } if (writer == null){ writer = new PrintWriter( new OutputStreamWriter( new GZIPResponseStream(original_resp),"UTF-8")); } return writer; } @Override public void flushBuffer() throws IOException { if (stream != null){ stream.flush(); } else if (writer != null){ writer.flush(); } } public void finish(){ try { if (stream != null){ stream.close(); } else if (writer != null){ writer.close(); } } catch (IOException e){ // Ignore. } } }
// GZIPResponseStream.java
package org.demo.filter; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.GZIPOutputStream; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; /** * Wrap response stream for GZIPFilter * @author dycc * */ public class GZIPResponseStream extends ServletOutputStream{ protected HttpServletResponse response = null; protected ServletOutputStream out = null; protected ByteArrayOutputStream baos = null; protected GZIPOutputStream gzipos = null; protected boolean closed = false; public GZIPResponseStream(HttpServletResponse response)throws IOException{ super(); this.response = response; this.out = response.getOutputStream(); this.baos = new ByteArrayOutputStream(); this.gzipos = new GZIPOutputStream(this.baos); this.closed = false; } @Override public void write(int b) throws IOException { if (closed){ throw new IOException("Cannot write to a closed output stream."); } gzipos.write(b); } @Override public void write(byte[] b) throws IOException { write(b,0,b.length); } @Override public void write(byte[] buf, int off, int len) throws IOException { if (closed){ throw new IOException("Cannot write to a closed output stream."); } gzipos.write(buf, off, len); } @Override public void flush() throws IOException { if (closed){ throw new IOException("Cannot flush a closed output stream."); } gzipos.flush(); } @Override public void close() throws IOException { if (closed){ return; } gzipos.finish(); byte[] buf = this.baos.toByteArray(); response.addHeader("Content-Length", Integer.toString(buf.length)); response.addHeader("Content-Encoding", "gzip"); out.write(buf); out.flush(); out.close(); closed = true; } }
2. END
发表评论
-
ubuntu 里安装 db2
2011-04-11 16:17 5300# 下载 http://www-01.ibm.com ... -
几个小算法题
2011-04-03 13:40 1145/** * 数字三角 * 当 n == 7 时输 ... -
获取 SkyDrive 的文件外链固定地址
2011-04-03 11:47 1461javascript: var id = window.se ... -
常用知识记录
2011-04-02 17:25 1632sql 部分 1. 查询已创建的数据库 // ... -
Java 与 C++ 在表达式运算上的一点异同
2010-12-25 00:24 12931. java public class Main{ ... -
SWFUpload+commons-fileupload 上传文件
2010-12-17 19:20 11012说明:使用SWFUpload 上传文件,可在客户端校验文件大小 ... -
在 ubuntu 下搭建 ftp 服务端 [ vsftpd ]
2010-11-16 20:11 1903vsftpd 1. 安装 ftp 服务端 ... -
Tomcat 常用操作
2010-11-16 13:47 2679tomcat 常用操作 1. 安装 tomcat 1.1 ... -
在 ubuntu 下搭建 svn 服务端
2010-11-13 20:43 3011参考: http://wiki.ubunt ... -
正则表达式常用功能代码
2010-11-02 19:37 13351. 校验 /** * 校验 email * @pa ... -
三种常见的排序方法[选择,冒泡,快速]
2010-10-17 17:51 1120public class Main{ public ... -
log4j 常用配置代码
2010-10-12 14:35 1399Reference library: commons-log ... -
计算组合数并输出
2010-09-14 09:35 5616问题描述:计算一组数据的组合数并输出 例如:输入1,2,3 ... -
native2ascii的 java实现
2010-09-13 13:49 3893描述:简单模拟JDK自带的 native2ascii.exe ... -
计算全排列
2010-09-13 09:04 1608问题描述:计算一组数 ... -
apache commons dbcp 学习与使用
2010-06-18 20:37 1604类结构 org |_demo |_d ... -
Java常用功能代码
2010-06-10 14:33 59121. 屏幕截图 public static ... -
一个关于组合数的问题
2010-05-03 20:09 11811. 题目来源 未解之谜俱 ... -
Java常用功能代码[ 2 ]
2010-04-27 17:35 14091. 加载所有 jar 包中同名的配置文件 /** * ... -
程序员学习之路
2010-04-14 20:59 14991. JavaScript 1.1 全方位、多角度学习Jav ...
相关推荐
Lucene常用代码详解 Lucene是一款功能强大且高效的搜索引擎,广泛应用于各种搜索应用程序中。为了更好地使用Lucene,需要了解其核心API和常用代码。本文将对Lucene部分常用代码进行详细解释,包括多字段搜索、多...
这个“js常用代码总汇”包含了开发者在日常工作中可能频繁使用的JavaScript代码片段,旨在提高开发效率并提供参考。 1. **变量声明与数据类型** - `var`, `let`, `const`:JavaScript 提供了三种声明变量的方式,`...
这个“Unity3D常用代码总结”压缩包文件显然是一个集合了开发者在实践中积累的实用代码示例和技巧的资源。下面,我们将深入探讨Unity3D中的一些关键知识点,包括组件的使用和功能实现。 1. **组件系统**: Unity3D...
在本文中,我们将探讨一些常用的网页设计代码及其应用,以及如何保护网页代码和内容不被他人轻易获取。 首先,我们来看一个实现表格半透明显示效果的技巧。在网页中,可以使用CSS样式来控制元素的透明度。通过在`...
7. **遍历和过滤**:`each()`函数用于遍历集合中的每个元素,`filter()`和`not()`则用于筛选元素。此外,还有`first()`, `last()`, `next()`, `prev()`等用于选取特定位置的元素。 8. **插件扩展**:jQuery的生态...
### EXCEL VBA 常用代码集:利用Dos命令搜索文件 #### 一、概述 在Excel VBA编程中,经常需要处理大量的文件操作任务,例如搜索特定类型的文件、整理文件列表等。本篇文章将深入探讨如何通过VBA调用DOS命令`dir`来...
"unity3d 常用代码库"包含了大量预设的、经过验证的代码片段,覆盖了各种常见功能和模块,为开发者提供了一个方便的工具集。 1. **C#编程基础**:Unity3D主要使用C#作为脚本语言。了解C#的基础语法,如变量、数据...
"php后台常用代码"这个主题涵盖了多种PHP后端编程的技术,包括但不限于数据处理、数据库操作、用户认证、错误处理、会话管理等。 1. 数据处理:在PHP中,我们经常需要对用户提交的数据进行处理,例如使用`...
### 常用HTML代码解释 本篇将详细介绍在给定描述中的HTML代码与部分文本内容中提及到的各类HTML标签及其用法。HTML(HyperText Markup Language)是构成网页结构的标准标记语言,通过这些标签我们可以创建、组织并...
本资源“经典网页常用代码直接粘贴就可以用”提供了一系列可以直接应用于网页设计的代码片段,帮助开发者快速实现特定功能,无需从零开始编写。下面将详细介绍这些代码类型及其应用。 1. 不间断滚动代码:这种代码...
"javascript常用代码及汇总"这个资源集合了JavaScript编程中的一些常见用法和实用技巧,是开发者学习和工作中的一大助力。 首先,JavaScript的核心概念包括变量、数据类型、控制结构、函数、数组、对象等。变量是...
在给定的文件信息中,详细列出了多种常用的滤波器属性及其参数设置方法,让我们深入探讨这些滤波器的具体功能与应用场景。 ### 1. Alpha(透明度) Alpha滤波器主要用于调整图像的透明度。参数`Opacity`用于设定...
【安卓常用代码集合】是一个针对初级安卓开发者整理的代码片段集合,旨在帮助初学者快速理解和掌握安卓开发中的常见操作。这个集合包括了调用浏览器、接收系统广播等方面的示例代码,下面将对这些知识点进行详细的...
### Android 常用代码集合知识点详解 #### 一、调用浏览器载入某网址 在Android开发过程中,经常需要让应用打开一个网页链接。这可以通过`Intent`对象实现。 **代码示例:** ```java Uri uri = Uri.parse(...
6. **常用函数**:如数组操作函数(map、filter、reduce、splice等),字符串处理(trim、substring、indexOf等),日期处理(Date对象的方法)以及数学运算(Math对象的方法)。 7. **面向对象编程**:JS支持面向...
在“ARCGIS_ENGINE二次开发常用代码 - 副本.doc”文档中,可能包含了以下内容: 1. 地图控件的创建和配置:如何在Windows Forms或WPF应用中添加地图控件,设置地图的基本属性如比例尺、坐标系统等。 2. 图层的管理...
"站长常用的200个js代码"集合可能是为了帮助网站管理员、开发者和站长解决日常工作中遇到的各种问题,提升工作效率而整理的实用代码片段。 1. **DOM操作**:JavaScript通过Document Object Model (DOM) API可以动态...
### CSS代码片段详解 #### 1. 居中布局 **功能:** 该段代码实现了将一个指定宽度的元素(如容器、区块等)水平居中显示。 **HTML结构:** ```html <div class="wrap"></div> ``` **CSS样式:** ```css .wrap { ...
`stdafx.cpp`和`stdafx.h`包含预编译头文件,它们通常包含常用库的包含语句和宏定义,可以提高编译速度。在DirectShow项目中,它们可能包含了对`windows.h`,`dshow.h`和`uuid.lib`等DirectShow相关的头文件和库的...