这五大Servlet方法都是功能比较强大的。相信对于WEB设计来说有一定的帮助。不要一个一个方法的试验,等看完所有的内容,然后一起运用这些方法并结合以前的workshop来做个小程序。

◆parseTextMessage()方法

在这个例子里:定义了一个数据接受类。parseTextMessage()方法接受了一组从表单传送过来的对象以及他们的值。我们在做一些产品开发的时候,比如自定义表单,往往不知道传送过来有多少对象,对于这样的问题,程序是无法知道的,用了这个方法后,就可以报所有的对象一下子都拿到了。下面看一下这个例子:

www.189works.com

  1. private void parseTextMessage(HttpServletRequest request){  
  2.  
  3.     Enumeration names;  // 列举client传送过来的所有的对象  
  4.     String      name;   /  
  5.     String[]    value;  //    
  6.     // 接受所有的对象  
  7.     names = request.getParameterNames();  
  8.     
  9.         while (names.hasMoreElements()) {  
  10.        //得到对象名称  
  11.         name = (String)names.nextElement();  
  12.       //根据对象名称重新找到对象的值  
  13.         value = request.getParameterValues(name);  
  14.      //  把对象名称和值放到一个类中,这个类的代码在前面的练习中有  
  15.         put(name, value);  
  16.     }  
  17.  
  18.     // 获取一个page的ID,为什么要设置page id,在java规则中有  
  19.     pageID  = getPostPageID();  
  20.     
  21.     //  获取事务id,如果有事务的话  
  22.     trxID   = getPostTrxID();  

◆getJSPBeanInSession()方法

这是一个I/O管理类。这个方法根据page的id来从session中返回jsp的数据,如果用getSession(true).getAttribute(pageID) 也是对的。

  1.   private JPC_JSPBean getJSPBeanInSession(String pageID) {  
  2.  
  3. 据页的id来从session中返回jsp的数据  
  4. return (JPC_JSPBean)request.getSession().getAttribute(pageID);  


  ◆dispatchTransaction()方法

这个方法得到一组类的实例,然后开始事务处理。

  1. public void dispatchTransaction() {  
  2.     JPC_Transaction trx = null;  
  3.     String classList[] = getTrxClassList(getTrxID());  
  4.      try {     
  5.         for (int i = 0; i < classList.length; i++) {  
  6.               trx = (JPC_Transaction)Class.forName(classList[i]).newInstance();  
  7.             if (trx != null) {  
  8.                 trx.setIOManager(this);  
  9.                 trx.start();  
  10.             }  
  11.         }  
  12.     } catch (ClassNotFoundException e) {  
  13.         e.printStackTrace();  
  14.     } catch (InstantiationException e) {  
  15.         e.printStackTrace();  
  16.     } catch (IllegalAccessException e) {  
  17.         e.printStackTrace();  
  18.     }  


◆putJSPBeanInSession()方法

把jsp的数据类和一个jsp页面的ID放到 session中。

  1. private void putJSPBeanInSession(String pageID, JPC_JSPBean jspBean) {  
  2.     
  3.     //把jsp的数据类和一个jsp页面的ID放到 session中。  
  4.     request.getSession().setAttribute(pageID, jspBean);  

◆sendPage()方法

  1. private void sendPage(String pageID, JPC_JSPBean outJSPBean) {  
  2.  
  3. // 把页面id和数据存储到 session 中  
  4.     if (outJSPBean != null) {  
  5.         putJSPBeanInSession(pageID, outJSPBean);  
  6.     }  
  7.  
  8. // 根据文件id来取得文件数据  
  9.   String jspFileName = getJSPFileName(pageID);  
  10.  
  11. //根据jsp文件名来得到一个RequestDispatcher  
  12.     RequestDispatcher rd = context.getRequestDispatcher(jspFileName);  
  13.  
  14.     if (rd != null) {  
  15.  
  16.         try {  
  17.             //调用jsp  
  18.             rd.forward(request, response);  
  19.         } catch (ServletException e) {  
  20.         } catch (IOException e) {  
  21.         }  
  22.     }  
  23. }  

Servlet方法的使用要在实践操作中多多积累,慢慢总结,希望你早日熟练Servlet方法的使用。