`

java servlet学习之监听器类

阅读更多

这个学期要学EJB了,之前的servlet学习是少不了的。其实发现我们不少人,不大重视SERVLET的学习,好象因为框架,JSP之类都把
servlet的编写减少到最低限度了,但还是要注重实质的,于是找了本台湾人写的《SCWCD学习》(SCWCD是JAVA认证的第二类考试,
比SCJP高一个级),发现还是台湾人写的书好懂,于是笔记关键之,并学习之。

      举例,有一个文本文件,存放书本的详细信息,如书本,作者,出版社等信息,每本书之间用  “|”分隔符隔开,放在一个booklist.txt文件中, 由于WEB应用程序要读取这些数据,所以WEB应用程序在初始化阶段就要初始化书籍,就是在servlet运行之前,WEB应用程序必须从booklist.txt 文件中读取书的信息,然后建立book对象,然后当servlet运行时就可以读出所有书的数据。因此,应该建立一个监听器。

监听器为:
public class InitializeBookList  implements ServletContextListener {
 
 public void contextInitialized(ServletContextEvent sce)
 {
//获得WEB应用程序的ServletContext对象
  ServletContext context=sce.getServletContext();


//通过context.getInitParameter()取得BookListFile参数值,该参数值在web.xml
  String booklist=context.getInitParameter("BookListFile");
  InputStream is=null;
  BufferedReader br=null;
  
 try
 {
  is=context.getResourceAsStream(booklist);
  br=new BufferedReader(new InputStreamReader(is));
  
  String bookDetails;   // 存放从 booklist.txt 读取的每一条数据
       GoodBooks books = new GoodBooks();

       // 依序取出“书名”、“作者”、“出版社”、“ISBN”、“售价”等数据
       while ( (bookDetails = br.readLine()) != null )
       {
         StringTokenizer tokens = new StringTokenizer(bookDetails, "|");
         String name = tokens.nextToken();
         String author = tokens.nextToken();
         String publisher = tokens.nextToken();
         String isbn = tokens.nextToken();
         String price = tokens.nextToken();
         // 建立一个 Book 对象
         Book b = new Book(name, author, publisher, isbn, price);
          // 将 Book 对象加入 books 对象(books对象将包含多本书籍数据)
         books.addBook(b);
  
   }
  
 
//将books对象存入ServletContext对象的属性(allbooks)
 context.setAttribute("allBooks",books);
 context.log("OK");
 is.close();
 br.close();
 }
  catch (Exception e)
  {
   context.log("Web 应用程序初始化发生问题!!", e);
  }
 }
 public void contextDestroyed(ServletContextEvent sce) {}
  

}
BOOK.JAVA
public class Book {
 private String name;
   private String author;
   private String publisher;
   private String isbn;
   private String price;

   public Book(String name, String author,String publisher,
                  String isbn, String price ) {
     this.name      = name;
     this.author    = author;
     this.publisher = publisher;
     this.isbn      = isbn;
     this.price     = price;
   }

   public String getName() {
     return name;
   }
   public String getAuthor() {
     return author;
   }
   public String getPublisher() {
     return publisher;
   }
   public String getIsbn() {
     return isbn;
   }
   public String getPrice() {
     return price;
   }
}
goodbooks.java
public class GoodBooks {
 private List BooksList;

   public GoodBooks() {
     BooksList = new LinkedList();
   }

   public void addBook(Book book) {
     BooksList.add(book);
   }

   public Iterator getBookList() {
     return BooksList.iterator();
   }
 }


最后显示书本列表的servlet.java
public class ShowGoodBooks extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
         throws IOException {
    ServletContext context = getServletContext();
   
    // 从 ServletContext 对象取出 allBooks 属性
    // (参考 InitializeBookList.java 第 43 行)
    GoodBooks books = (GoodBooks) context.getAttribute("allBooks");
    Iterator items = books.getBookList();

    response.setContentType("text/html;charset=GB2312");
    PrintWriter out = response.getWriter();

    out.println("<HTML>");
    out.println("<HEAD>");
    out.println("<TITLE>Java 好书推荐</TITLE>");
    out.println("</HEAD>");
    out.println("<H2>Java 好书推荐</H2>");
    out.println("<TABLE border=1  WIDTD=100%");
   
    // 跃富
    out.println("<TR>");
    out.println("<TD bgcolor=#C0C0C0>书名</TD>");
    out.println("<TD bgcolor=#C0C0C0>作者</TD>");
    out.println("<TD bgcolor=#C0C0C0>出版社</TD>");
    out.println("<TD bgcolor=#C0C0C0>ISBN</TD>");
    out.println("<TD bgcolor=#C0C0C0>售价</TD>");
    out.println("</TR>");
   
    // 显示每一条书籍数据
    while ( items.hasNext() ) {
      Book book = (Book) items.next();
      out.println("<TR>");
      out.println("<TD>" + book.getName() + "</TD>");
      out.println("<TD>" + book.getAuthor() + "</TD>");
      out.println("<TD>" + book.getPublisher() + "</TD>");
      out.println("<TD>" + book.getIsbn() + "</TD>");
      out.println("<TD>" + book.getPrice() + "</TD>");
      out.println("</TR>");
    }
    out.println("</TABLE>");
    out.println("</BODY>");
    out.println("</HTML>");
  }
}

分享到:
评论

相关推荐

    JAVA Servlet监听器listener学习资料

    Java Servlet监听器(Listener)是Java Web开发中的一个重要组件,它们允许开发者在特定事件发生时执行自定义逻辑,而无需直接修改原有的业务代码。监听器是Servlet规范的一部分,通过实现特定的接口,开发者可以...

    java Servlet学习笔记

    Java Servlet是Java编程语言中用于处理Web服务器与客户端交互的一种技术,主要应用于构建动态Web应用程序。...在实践中,还需要掌握异常处理、会话管理、过滤器、监听器等高级特性,以实现更高效、安全的Web应用。

    Java Servlet API 2.5

    Listener是Servlet API中的事件监听器,用于监听Web应用中的特定事件,如会话创建、销毁、请求参数改变等。通过实现特定的监听器接口,如HttpSessionListener、ServletRequestListener等,开发者可以实现对这些事件...

    深入 Java Servlet 网络编程

    4.1 web.xml:Web应用的部署描述符,用于配置Servlet、过滤器、监听器等,定义URL到Servlet的映射。 4.2 @WebServlet 注解:Java EE 6及以上版本,可以用注解简化Servlet的配置,直接在Servlet类上使用@WebServlet...

    java servlet 监听器

    servelt 监听器 class MyRequest extends HttpServletRequestWrapper { public MyRequest(HttpServletRequest request) { super(request); } public String MyEncoding(String value) { String value...

    JavaServlet帮助文档

    JavaServlet帮助文档中的CHM文件是一个编译过的HTML帮助文档,它包含详细的API参考、教程、示例代码和常见问题解答,是开发者学习和查阅Servlet技术的重要资源。利用其内置的搜索功能,开发者可以快速找到所需的信息...

    servlet监听器技术源码

    Servlet监听器技术是Java Servlet规范中的一项重要特性,它允许开发者在特定的Servlet容器事件发生时执行自定义的代码逻辑。这些事件可以包括Web应用程序的初始化、终止,或者是Servlet或Servlet上下文...

    JAVA培训Servlet监听器.pdf

    JAVA Servlet监听器是指在Servlet容器中,用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后做一些必要的处理。监听器可以分为多种类型,每种类型都有其特定的应用场景和用途。 ...

    Java Servlet API说明文档

    Java Servlet API是Java Web开发中的核心组件之一,它为服务器端的动态网页处理提供了标准的接口和类。这个API说明文档详细阐述了如何利用Java来构建动态、交互式的Web应用程序。下面将对Java Servlet API的一些关键...

    Java Servlet Api文档

    Java Servlet API是Java Web开发中的核心组件之一,它定义了服务器端如何处理HTTP请求和响应的一系列接口和类。这个API文档是开发者理解和使用Servlet技术的重要参考资料。在Java Servlet API 2.5版本中,包含了对...

    JavaServlet学习资料汇总

    本学习资料汇总旨在为初学者提供全面、深入的JavaServlet学习资源,帮助他们快速掌握这一核心技术。 1. **Servlet基础** - **Servlet概念**:Servlet是一个Java类,遵循Servlet API规范,由服务器调用来处理HTTP...

    Java Servlet Programming9

    7. **监听器(Listener)**:监听器用于监听特定事件,如会话创建、销毁,ServletContext初始化、销毁等。例如,`HttpSessionListener`可以监听会话的创建和销毁。 8. **MVC模式与Servlet**:尽管Servlet主要用于...

    servlet监听器案例

    Servlet监听器是实现了Java Servlet API中特定接口的类,例如`ServletContextListener`、`ServletRequestListener`和`HttpSessionListener`等。当Web应用启动、关闭,或者用户会话创建、销毁等事件发生时,监听器会...

    Java Servlet

    2. 监听器(Listener):监听Web应用中特定事件,如会话创建、销毁、请求到达等,实现响应式编程。 八、实战应用 1. 动态网页生成:Servlet可以动态生成HTML内容,提供个性化服务。 2. 数据库操作:通过JDBC接口,...

    JAVA SERVLET帮助文档(API)

    在部署Servlet时,通常会使用`web.xml`部署描述符来配置Servlet、过滤器和监听器。这里可以定义Servlet的映射路径、初始化参数、过滤器的顺序等。随着Java EE的发展,现在还可以使用Java-based配置或注解来简化部署...

    深入Java Servlet网络编程

    "深入Java Servlet网络编程"这一主题涵盖了Servlet的配置、过滤器、监听器、会话管理、安全性等多个方面。例如,Servlet容器(如Tomcat)的配置文件(如web.xml)用于声明Servlet和Filter,设置它们的初始化参数和...

    servlet 监听器范例

    Servlet监听器是实现了特定接口的Java类,这些接口定义了针对不同Web应用程序事件的回调方法。例如,`HttpSessionListener`用于监听会话的创建和销毁,`ServletRequestListener`则关注请求的开始和结束。在这个...

    深入Java Servlet 网络编程

    Java Servlet是Java技术在Web开发中的重要组成部分,它主要用于构建动态Web应用程序。Servlet是一个服务器端的Java类,它...在实际项目中,应结合JSP、过滤器、监听器等工具,灵活运用Servlet,实现复杂的应用场景。

    Java Servlet API说明文档.doc

    4. **可扩展性**:Servlet可以利用Servlet容器(如Tomcat、Jetty等)提供的特性,如过滤器、监听器等,实现更复杂的逻辑和扩展功能。 这份Java Servlet API说明文档详细描述了这些接口和类的使用方法,是开发...

Global site tag (gtag.js) - Google Analytics