- 浏览: 93669 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
grhglj:
能详细一点吗?都加到哪儿呀。
struts2.0中使用图形验证码 -
shingo7:
jotm哪来的2.3版
Spring引用Tomcat的 JTA事务 -
blogaaa:
这样配置完后,事务不能正常回滚,在同一个action中插入记录 ...
Spring引用Tomcat的 JTA事务
原文:http://javatar.iteye.com/blog/72265
package com.xxx.servlet;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 下载处理Servlet
* @author liangfei0201@163.com
*
*/
public class DownloadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String DEFAULT_ENCODING = "UTF-8";
private static final int DEFAULT_BUFFER_SIZE = 4096;
private String encoding = DEFAULT_ENCODING;
private int bufferSize = DEFAULT_BUFFER_SIZE;
public void init(ServletConfig sc) throws ServletException {
super.init(sc);
String paramEncoding = sc.getInitParameter("encoding");
if (paramEncoding != null && paramEncoding.trim().length() > 0) {
encoding = paramEncoding.trim();
}
String paramSize = sc.getInitParameter("bufferSize");
if (paramSize != null && paramSize.matches("^[0-9]+$")) {
bufferSize = Integer.parseInt(paramSize);
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 查找文件
File file = new File(getServletContext().getRealPath("/") + request.getServletPath());
if (! file.exists()) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
return ;
}
// 设置response
response.setContentType("application/x-msdownload; charset=" + encoding);
response.addHeader("content-type", "application/x-msdownload;");
response.addHeader("content-disposition", "attachment; filename="+ response.encodeURL(file.getName()));
response.setContentLength((int)file.length());
// 输出
InputStream in = new FileInputStream(file);
OutputStream out = response.getOutputStream();
try {
int length = 0;
byte[] buffer = new byte[bufferSize];
while ((length = in.read(buffer)) != -1) {
out.write(buffer, 0, length);
}
out.flush();
} finally {
if (in != null) {
in.close();
}
}
}
}
<servlet>
<servlet-name>download</servlet-name>
<servlet-class>com.xxx.servlet.DownloadServlet</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>bufferSize</param-name>
<param-value>8192</param-value>
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>download</servlet-name>
<url-pattern>/download/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>download</servlet-name>
<url-pattern>*.csv</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>download</servlet-name>
<url-pattern>*.txt</url-pattern>
</servlet-mapping>
package com.xxx.servlet;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 下载处理Servlet
* @author liangfei0201@163.com
*
*/
public class DownloadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String DEFAULT_ENCODING = "UTF-8";
private static final int DEFAULT_BUFFER_SIZE = 4096;
private String encoding = DEFAULT_ENCODING;
private int bufferSize = DEFAULT_BUFFER_SIZE;
public void init(ServletConfig sc) throws ServletException {
super.init(sc);
String paramEncoding = sc.getInitParameter("encoding");
if (paramEncoding != null && paramEncoding.trim().length() > 0) {
encoding = paramEncoding.trim();
}
String paramSize = sc.getInitParameter("bufferSize");
if (paramSize != null && paramSize.matches("^[0-9]+$")) {
bufferSize = Integer.parseInt(paramSize);
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 查找文件
File file = new File(getServletContext().getRealPath("/") + request.getServletPath());
if (! file.exists()) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
return ;
}
// 设置response
response.setContentType("application/x-msdownload; charset=" + encoding);
response.addHeader("content-type", "application/x-msdownload;");
response.addHeader("content-disposition", "attachment; filename="+ response.encodeURL(file.getName()));
response.setContentLength((int)file.length());
// 输出
InputStream in = new FileInputStream(file);
OutputStream out = response.getOutputStream();
try {
int length = 0;
byte[] buffer = new byte[bufferSize];
while ((length = in.read(buffer)) != -1) {
out.write(buffer, 0, length);
}
out.flush();
} finally {
if (in != null) {
in.close();
}
}
}
}
<servlet>
<servlet-name>download</servlet-name>
<servlet-class>com.xxx.servlet.DownloadServlet</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>bufferSize</param-name>
<param-value>8192</param-value>
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>download</servlet-name>
<url-pattern>/download/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>download</servlet-name>
<url-pattern>*.csv</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>download</servlet-name>
<url-pattern>*.txt</url-pattern>
</servlet-mapping>
发表评论
-
Drools与Spring集成 登录测试
2013-07-12 15:27 0转至: http://justsee.iteye.com/b ... -
Drools入门-----------环境搭建,分析Helloworld
2013-07-12 15:20 0转至: http://justsee.iteye.com/b ... -
H2学习
2013-07-12 15:11 0package test.h2; import ja ... -
BlockingQueue队列学习
2013-10-17 10:16 762package test; import java ... -
一个多线程计算器的实现
2013-07-12 14:56 0package test; import java.util ... -
JRobin Core学习
2012-12-04 14:29 4046原文地址: http://www.micmiu.com/ent ... -
Memcached学习——(四)
2012-11-28 17:11 0原文地址: http://snowolf.iteye.com/ ... -
Memcached学习——(三)
2012-11-28 17:10 0原文地址: http://snowolf ... -
Memcached学习——(二)
2012-11-28 17:08 977原文地址: http://snowolf.iteye.com/ ... -
Memcached学习——(一)
2012-11-28 17:07 1036原文地址: http://snowolf.iteye.com/ ... -
redis学习
2012-11-28 17:03 933原文地址:http://snowolf.iteye.com/b ... -
基于Spring可扩展Schema提供自定义配置支持(spring配置文件中 配置标签支持)
2012-11-28 16:55 788原文地址:http://www.cnblogs.com/jif ... -
JAI处理TIFF格式图片
2012-09-17 17:48 13295懒得多说,直接代码了。。。。 import java.awt. ... -
全面掌握Java的异常处理机制
2009-03-05 17:17 968你觉得自己是一个Java专 ... -
java.lang包概述
2009-03-05 17:02 132174.1. 接口 java.lang.Appendab ... -
select下拉列表动态显示选择公司及部门信息——级联
2008-11-25 12:29 1282//=================公司类方法======= ... -
人民币大小写转
2008-11-25 12:26 1080String HanDigiStr[] = new Strin ... -
身份证号转换15位与18位
2008-11-25 12:24 1612//开始 15位到18位的身份证号转换 //身份证号码由 ... -
使ApplicationResources.properties支持中文
2008-11-25 12:15 1311使ApplicationResources.propertie ... -
利用XMLBean轻轻松松读写XML
2008-11-25 12:11 942一、关于XML解析 XML在Java应用程序里变得越来越 ...
相关推荐
一个工具类将servlet所有的东西全部整合进了,包括过滤器(处理乱码问题),反射技术,c3p0技术,类型转换 jdbc的封装,这个例子绝对是放血的下载,
在Java Web程序开发中,由于Web容器内部使用编码格式并不支持中文字符集,所以,处理浏览器请求中的中文数据就会出现乱码的现象。由于Web容器使用了ISO-8859-1的编码格式,所以在Web应用的业务处理中也会使用ISO-...
可从sun公司的Web站点下载 Java Servlet 开发工具。 下面主要介绍javax.servlet.http提供的HTTP Servlet应用编程接口。 HTTP Servlet 使用一个 HTML 表格来发送和接收数据。要创建一个 HTTP Servlet,请扩展 ...
Servlet引擎利用Java类载入工具载入一个Servlet,Servlet引擎可以从一个本地的文件系统、一个远程的文件系统以及网络载入Servlet。 Servlet的初始化 Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化...
Servlet 注解是通过 @WebServlet 注解来实现的,该注解可以应用于 Servlet 类上。@WebServlet 注解有多个属性,包括 name、value、urlPatterns、loadOnStartup、initParams、asyncSupported、smallIcon、largeIcon、...
验证码工具类可以返回验证码图片和验证码内容,数据库连接工具类可以返回一个数据库连接和关闭数据库连接的方法,还有一个工具类借助gson将request的数据转换为json串; Dao层都是单表的CURD,没有复杂的业务所以也...
9.2 标签处理类的开发 9.2.1 接口和基类 9.2.2 开发 9.3 标签库文件 9.3.1 taglib 9.3.2 tag 9.4 定位一个tld文件 9.4.1 在Web.xml中定位一个tld文件 9.4.2 直接在JSP文件中定位tld文件 9.5 扩展标签实例 ...
6.1.2 servlet相关接口与实现类 197 6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 ...
import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUploadServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) ...
6.1.2 servlet相关接口与实现类 197 6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 ...
封装从 普通对象的结果集 到 包含集合属性对象的结果集 的转换工具类 例如不使用框架的情况下,连表查询teacher与course的属性,外键teac_id,Teacher类中包含List属性 如何人工处理结果集合,可以建一个扩展类用来...
6.1.2 servlet相关接口与实现类 197 6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 ...
6.1.2 servlet相关接口与实现类 197 6.2 几个实例 205 6.2.1 实例一:simplehello 205 6.2.2 实例二:welcomeyou 210 6.2.3 实例三:outputinfo 216 6.2.4 实例四:loginservlet 220 6.3 servlet异常 223 ...
Java类的设计:父类Person,子类Teacher,Student,Manager,课程Course,试卷Paper,操作数据库的工具类,处理请求的Servlet类 前端页面的设计: 系统共用的top.jsp和tail.jsp,html标签布局 管理员模块:添加、删除和...
使用PageUtils分页工具类 **2021/10/8 更新** 1. dao层和service层部分采用单例模式(懒汉式-不支持多线程) 2. service层部门采用工厂模式 ## 源码 [v1.0 - servlet-v1.0]...
控制转发层采用Servlet,数据访问层采用Hibernate(bean和dao是由Hibernate逆向工程自动生成)。 系统采用分层架构,由上到下分为视图层、控制转发层、业务层、服务层、数据库访问层。运用了一些基本设计模式,系统...
自己写的Web开发工具包。具体包含下面4个部分: <br> 1. 一个简单的servlet+javabean+view的框架,并支持了Freemarker模板;... 对jakarta commons-fileupload封装便于上传下载的工具类。 <br>
注释:dao类主要负责完成与数据库相关的逻辑处理的方法,等待被控制器创建实体并调用需要的方法,其中实现与数据库连接并不是由它完成,dao类仅import该类实现数据库连接。 该小项目需要用到的工具: Idea(java...
props 更强大的Java Properties替代jodd-email 更简单易用的e-mail收发jodd-upload 处理HTTP上传jodd-servlets 一些Servlet相关的工具类, 附带一套漂亮的JSP标签库jodd-http 轻巧的HTTP客户端小型框架模块有:...
4、tomcat 容器是如何创建 servlet 类实例?用到了什么原理? 5.tomcat 如何优化? 6.内存调优 7.垃圾回收策略调优 8.共享 session 处理 8.添加 JMS 远程监控 9.专业点的分析工具有哪些 10.关于 Tomcat 的 session ...