打印本文 打印本文 关闭窗口 关闭窗口
JBuilder2005 Servlet开发之下载型
作者:武汉SEO闵涛  文章来源:敏韬网  点击数690  更新时间:2009/4/22 23:29:33  文章录入:mintao  责任编辑:mintao
  在这节里,我们对welcome.jsp页面进行改造,在页面中添加一个链接,这个链接调用Servlet下载上节所记录的系统日志文件。

  通过向导创建ExcelFileServlet

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

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

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


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

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

  3、定义Servlet的URL参数。


图 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>

打印本文 打印本文 关闭窗口 关闭窗口