Topic: Servlet设计 |
Print this page |
1.Servlet设计 | Copy to clipboard |
Posted by: javabin Posted on: 2004-09-29 12:31 这篇文章介绍几个Servlet的方法,这几个方法都是功能比较强大的。相信对于WEB设计来说有一定的帮助。不要一个一个方法的试验,等看完所有的内容,然后一起运用这些方法并结合以前的workshop来做个小程序。 (1) parseTextMessage()方法 在这个例子里:定义了一个数据接受类。parseTextMessage()方法接受了一组从表单传送过来的对象以及他们的值。我们在做一些产品开发的时候,比如自定义表单,往往不知道传送过来有多少对象,对于这样的问题,程序是无法知道的,用了这个方法后,就可以报所有的对象一下子都拿到了。下面看一下这个例子: private void parseTextMessage(HttpServletRequest request){ Enumeration names; // 列举client传送过来的所有的对象 String name; / String[] value; // // 接受所有的对象 names = request.getParameterNames(); while (names.hasMoreElements()) { //得到对象名称 name = (String)names.nextElement(); //根据对象名称重新找到对象的值 value = request.getParameterValues(name); // 把对象名称和值放到一个类中,这个类的代码在前面的练习中有 put(name, value); } // 获取一个page的ID,为什么要设置page id,在java规则中有 pageID = getPostPageID(); // 获取事务id,如果有事务的话 trxID = getPostTrxID(); } (2) getJSPBeanInSession()方法 这是一个I/O管理类。这个方法根据page的id来从session中返回jsp的数据,如果用getSession(true).getAttribute(pageID) 也是对的。 private JPC_JSPBean getJSPBeanInSession(String pageID) { // 根据页的id来从session中返回jsp的数据 return (JPC_JSPBean)request.getSession().getAttribute(pageID); } (3) dispatchTransaction()方法 这个方法得到一组类的实例,然后开始事务处理。 public void dispatchTransaction() { JPC_Transaction trx = null; String classList[] = getTrxClassList(getTrxID()); try { for (int i = 0; i < classList.length; i++) { trx = (JPC_Transaction)Class.forName(classList[i]).newInstance(); if (trx != null) { trx.setIOManager(this); trx.start(); } } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } (4) putJSPBeanInSession()方法 把jsp的数据类和一个jsp页面的ID放到 session中。 private void putJSPBeanInSession(String pageID, JPC_JSPBean jspBean) { //把jsp的数据类和一个jsp页面的ID放到 session中。 request.getSession().setAttribute(pageID, jspBean); } (5) sendPage()方法 private void sendPage(String pageID, JPC_JSPBean outJSPBean) { // 把页面id和数据存储到 session 中 if (outJSPBean != null) { putJSPBeanInSession(pageID, outJSPBean); } // 根据文件id来取得文件数据 String jspFileName = getJSPFileName(pageID); //根据jsp文件名来得到一个RequestDispatcher RequestDispatcher rd = context.getRequestDispatcher(jspFileName); if (rd != null) { try { //调用jsp rd.forward(request, response); } catch (ServletException e) { } catch (IOException e) { } } } |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |