文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发JavaJBuilder2005 Servlet开发之下载型
精品推荐
特别推荐
·实例讲解:Java中的SOAP技术
·Java语言出现的背景 影响及前景
·Java精华积累:初学者都应该搞懂的问题
·Java多媒体框架设计自动播放机实例详解
·如何有效防止Java程序源码被人偷窥?
·Cell插件在J2EE系统中的应用
·初学者想学Hibernate,初级基础教程
·Java语言实现支持视频点播的WEB服务器
·关于Java编程的中文问题的几条分析原则
·确保J2ME无线移动商业应用程序的安全性
·Java开源技术:Eclipse的使用技巧详解
·新手入门:Java中的修饰词使用方法总结
·JAVA开发者应该去的20个英文网站
·使用JDBC创建数据库访问程序
·JDK的命令详解
·Java学习从入门到精通(附FAQ)
·Tomcat性能调整
·JSF:Java中面向Web开发的生旦净末丑
·对Java语言入门初学者的一些建议
·Java技术的新方向
热点TOP10
·Java图形用户界面设计
·在桌面应用中使用JAVA DB
·3D编程指南第一部分:快速进入移动JAVA 3D编程世界
·java swing的拖放例子
·用Java编写的记事本程序(1)
·用Java编写的记事本程序(3)
·JasperReport经验谈
·图解JBuilderX安装与实践
·用java编写的小游戏源代码分析
·struts+spring+ibatis轻量级J2EE开发
·单源点最短路径Dijkstra算法的JAVA实现
·实例讲解:Java中的SOAP技术
·初学者想学Hibernate,初级基础教程
·中国农历二百年算法及年历程序分析一
·用Java实现SMTP服务器
·Java语言出现的背景 影响及前景
·Java Applet 入门第三天
·用Java编写的记事本程序(2)
·Java学习从入门到精通(附FAQ)
·通过JCA实现企业级应用程序的“即插即用”

JBuilder2005 Servlet开发之下载型

日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]


在这节里,我们对welcome.jsp页面进行改造,在页面中添加一个链接,这个链接调用Servlet下载上节所记录的系统日志文件。

通过向导创建ExcelFileServlet

1、File->New...->Web->双击Standard Servlet图标,启动创建标准Servlet的向导。

指定Servlet类名为ExcelFileServlet,将包名设为bookstore.servlet,按Next到下一步。

2、选择覆盖doGet()处理方法。

JBuilder2005 Servlet开发之下载型
图 11 覆盖Servlet方法

·Servlet:creates content type:unspecified,设定Servlet的生成文档的类型,由于这个Servlet作为一个Excel文件并以附件的形式下载,需要我们手工设定Servlet的响应内容类型。

·implements methods:doGet(),这样向导将生成一个doGet()方法框架。

按Next到下一步。

3、定义Servlet的URL参数。

JBuilder2005 Servlet开发之下载型
图 12 定义Servlet的URL参数

点击Add Parameter在参数列表出现一个新行,在新行中定义Servlet的URL参数,其中Name为URL所带的参数名,而Variable为Servlet中对应的变量名,此外还可以通过Desc和Default为变量指定注释和默认值,在Type栏中指定变量的类型。

我们定义了两个URL参数,分别是year和month,指定需要下载日志的年份和月份。按Next到下一步。

4.指定servlet的访问路径

接受第4步向导所设定的Servlet的名字和访问路径,它们分别是:

·Name:excelfileservlet

·URL pattern:/excelfileservlet

直接按Finish创建ExcelFileServlet,其代码如下所示:

  代码清单 8 ExcelFileServlet.java

1. package bookstore.servlet;
2. import javax.servlet.*;
3. import javax.servlet.http.*;
4. import java.io.*;
5. import java.util.*;
6.
7. public class ExcelFileServlet
8. extends HttpServlet
9. {
10.  //Initialize global variables
11.  public void init()
12.  throws ServletException
13.  {
14.  }
15.
16.  //Process the HTTP Get request
17.  public void doGet(HttpServletRequest request, HttpServletResponse response)
18.  throws ServletException, IOException
19.  {
20.   //年份
21.   String year = request.getParameter("year");
22.   if (year == null)
23.   {
24.    year = "2005";
25.   }
26.
27.   //月份
28.   String month = request.getParameter("month");
29.   if (month == null)
30.   {
31.    month = "1";
32.   }
33.   PrintWriter out = response.getWriter();
34.   //@todo implement GET
35.  }

36.
37.  //Clean up resources
38.  public void destroy()
39.  {
40.  }
41. }

   第17~35行的doGet()方法是ExcelFileServlet的主体部分,其中第20~32是获取URL参数的代码。

   在web.xml中将生成对应这个Servlet的部署描述信息,如下所示:

   代码清单 9 ExcelFileServlet的部署描述配置信息

1. <web-app>
2.  …
3.  <servlet>
4.   <servlet-name>excelfileservlet</servlet-name>
5.   <servlet-class>bookstore.servlet.ExcelFileServlet</servlet-class>
6.  </servlet>
7.  <servlet-mapping>
8.   <servlet-name>excelfileservlet</servlet-name>
9.   <url-pattern>/excelfileservlet</url-pattern>
10.  </servlet-mapping>

11.  …
12. </web-app>

  下载日志文件代码

   在这一小节里,我们需要更改Servlet的doGet()方法,指定响应的格式并从日志目录中读取相应的日志文件内容写到Servlet的输出流中。

   由于文件内容以二进制流形式输出,Servlet向导在代码清单 8第33行所生成代码:

   PrintWriter out = response.getWriter();是多余的,我们将其删除。加入以下粗体的代码:

   代码清单 10 下载日志文件代码

1. package bookstore.servlet;
2. import javax.servlet.*;
3. import javax.servlet.http.*;
4. import java.io.*;
5.
6. public class ExcelFileServlet
7. extends HttpServlet
8. {
9.  …
10.  public void doGet(HttpServletRequest request, HttpServletResponse response)
11.  throws ServletException, IOException
12.  {
13.   //年份
14.   int year;
15.   try
16.   {
17.    year = Integer.parseInt(request.getParameter("year"));
18.   } catch (NumberFormatException e)
19.   {
20.    year = 2005;
21.   }
22.
23.   //月份
24.   int month;
25.   try
26.   {
27.    month = Integer.parseInt(request.getParameter("month"));
28.   } catch (NumberFormatException e)
29.   {
30.    month = 1;
31.   }
32.   String fileName = "log_" + year + "_" + month +".xls";
33.   File file = new File("D:\\serverLog\\"+fileName);
34.   response.setContentType("application/x-msdownload");
35.   response.setContentLength( (int) file.length());
36.   response.setHeader("Content-Disposition", "attachment;filename="+fileName);
37.
38.   FileInputStream fis = new FileInputStream(file);
39.   BufferedInputStream fbis = new BufferedInputStream(fis);
40.   byte abyte0[] = new byte[1024];
41.   int k = 0;
42.   OutputStream out = response.getOutputStream();
43.   while ( (long) k < file.length())
44.   {
45.    int j = fbis.read(abyte0, 0, 1024);
46.    k += j;
47.    out.write(abyte0, 0, j);
48.   }
49.   out.flush();

50.  }
51.  …
52. }

   第32行通过URL参数的值得到日志文件名,34~36行指定响应头信息,以便客户端以弹出对话框的形式下载日志文件,38~49行将日志文件的内容写到响应输出流中。

  改造welcome.jsp

   至此,下载日志文件的Servlet已经开发完毕,现在,我们需要在welcome.jsp页面中添加一个访问ExcelFileServlet的链接。

   在welcome.jsp中添加以下粗体的代码,如下所示:

   代码清单 11 添加下载日志链接后的welcome.jsp

1. <%@page contentType="text/html; charset=GBK"%>
2. <%@taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt"%>
3. …
4. 现在的时间是<dt:format pattern="MM/dd/yyyy hh:mm"><dt:currentTime/></dt:format>
5.
<a href="/webModule/excelfileservlet?year=2005&month=1">下载系统启动日志</a>

6.
点击<a href="quit.jsp">这里</a>退出系统
7.
[1] [2] 下一页 




上一篇:JBuilder2005 Servlet开发之过滤器

下一篇:Java技术的新方向

JBuilder2005 Servlet开发之下载型 相关文章:
·全部DLL下载
·卡巴斯基6.0下载卡巴斯基6.0key激活码
·电子书籍下载大放送
·Windows Vista Ultimate中文旗舰版下载+简单破解(支持迅雷HTTP & BT)
·DirectX 10 for Windows XP修改版下载
·设好eMule电驴两项关键配置 提高下载速度
·jsp Smart Upload上传下载全攻略
·推荐:漂亮的手机上使用的墙纸图片分享下载
·极速下载《色戒》 新版迅雷5全面评测
·官方下载:Office 2003 SP3简体中文版
JBuilder2005 Servlet开发之下载型 相关软件:
·万能声卡驱动下载适用于VIA芯片声卡
·瑞星杀毒软件2008下载版(完全免费)V20.36.32
·海量免费毕业论文打包下载
·各大MP3搜索网站前十名下载曲目
·瑞星个人防火墙2008下载版(完全免费)v20.35
·QQ显IP 显隐身超级版 2款不同功能最新QQ版本 友情下载
·Dubbing 情歌教父(周传雄)1987-2003 新歌+经典专辑全部MP3下载!
·电影美女海报下载
·acca教材下载
·《东邪西毒》电影音乐原声下载

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot