A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

之九:http://bbs.itheima.com/thread-287999-1-1.html

1、xml有哪些解析技术?区别是什么?

有DOM,SAX,STAX等

DOM:处理大型文件是其性能下降的非常厉害,这个问题是由DOM的树结构造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对xml的随机访问,sax:不现于,DOM,SAX是事件驱动型的xml解析方式,他顺序的读取xml文件,不需要自已全部装载正文件,当遇到文档开头,文档结束,或者标签开都与标签结束时,他会触发一个事件,用于通过在其回调事件中写入处理代码来处理xml文件,适合对xml的顺序访问。

Stax:Streaming API for xml(Stax)。

2、jsp中有哪些内置对象?他们的作用是什么?

jsp中共9中内置组件,

request:用户端请求,此请求会包含来自GET/Post请求的参数;

response:网页传回用户端的回应。

pageContext:页面的属性是在这里管理

session:与请求有关的回话期

application :Servlet正在执行的内容

out :用来传递回应的输出

config :servlet的构架部件

page jsp网页本身

exception :针对错误的网页。未捕捉的例外。

3、编程用java解析xml的方式
用sax方式解析xml,xml如下:
  1. < ? xml version=1.0 encoding=gb2312? >

  2. 小明

  3. 信息学院

  4. 6258113

  5. 男,1955,博士,94年调入海南大学



  6. 事件回调类SAXHandler.java

  7. import java.io.*;

  8. import java.util.Hashtable;

  9. import org.xml.sax.*;

  10. public class SAXHandler extends HandlerBase

  11. {

  12. private Hashtable table = new Hashtable();

  13. private String currentElement = null;

  14. private String currentValue = null;

  15. public void setTable(Hashtable table)

  16. {

  17. this.table = table;

  18. }

  19. public Hashtable getTable()

  20. {

  21. return table;

  22. }

  23. public void startElement(String tag, AttributeList attrs)

  24. throws SAXException

  25. {

  26. currentElement = tag;

  27. }

  28. public void characters(char[] ch, int start, int length)

  29. throws SAXException

  30. {

  31. currentValue = new String(ch, start, length);

  32. }

  33. public void endElement(String name) throws SAXException

  34. {

  35. if (currentElement.equals(name))

  36. table.put(currentElement, currentValue);

  37. }


  38. }

  39. JSP内容显示源码,SaxXml.jsp:

  40. < %@page errorPage=ErrPage.jsp contentType=text/html;charset=GB2312 %> >

  41. < %@page import=java.io.*%>

  42. < %@page import=java.util.Hashtable %>

  43. < %@page import=org.w3c.dom.*% >

  44. < %@page import=org.xml.sax.* %>

  45. < %@page import=javax.xml.parsers.SAXParserFactory %>

  46. < %@page import=javax.xml.parsers.SAXParser %>

  47. < %@page import=SAXHandler %>

  48. < %@

  49. File file = new File(c:\people.xml);

  50. FileReader reader = new FileReader(file);

  51. Parser parser;

  52. SAXParserFactory spf = SAXParserFactory.newInstance();

  53. SAXParser sp = spf.newSAXParser();

  54. SAXHandler handler = new SAXHandler();

  55. sp.parse(new InputSource(reader), handler);

  56. Hashtable hashTable = handler.getTable();

  57. out.println( );
  58. out.println(

  59. + );
  60. out.println(

  61. + );
  62. out.println(

  63. + );
  64. out.println(

  65. + );
  66. out.println(
复制代码


教师信息表
姓名        +
(String)hashTable.get(new String(name)) +

学院        +
(String)hashTable.get(new String(college))+

电话        +
(String)hashTable.get(new String(telephone)) +

备注        +
(String)hashTable.get(new String(notes)) +

);

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马