XML、集合、JSP综合练习
一、利用DOM解析XML文件得到信息;存入泛型集合中在JSP页面循环打印读取的信息
a) 编写XML文件;添加测试节点数据
b) 建立web项目;在JSP页面中使用DOM解析XML技术得到XML中的新闻信息
c) 创建实体类news;对新闻实体类进行封装;使用新闻实体类对新闻数据进行封装
d) 创建新闻类泛型集合存储每条新闻信息
e) 在页面利用循环和显示标签展示数据
效果:
XML文件:
展示效果:
编写xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 -<news> 4 5 6 -<new id="1"> 7 8 <title>关于依法治国论述摘编发行会见缅甸客人</title> 9 10 <type>时政要闻</type> 11 12 <date>2015-04-27 17:40</date> 13 14 <author>小编</author> 15 16 </new> 17 18 19 -<new id="2"> 20 21 <title>关于依法治国论述摘编发行会见缅甸客人</title> 22 23 <type>时政要闻</type> 24 25 <date>2015-04-27 17:40</date> 26 27 <author>小编</author> 28 29 </new> 30 31 32 -<new id="3"> 33 34 <title>关于依法治国论述摘编发行会见缅甸客人</title> 35 36 <type>时政要闻</type> 37 38 <date>2015-04-27 17:40</date> 39 40 <author>小编</author> 41 42 </new> 43 44 45 -<new id="4"> 46 47 <title>关于依法治国论述摘编发行会见缅甸客人</title> 48 49 <type>时政要闻</type> 50 51 <date>2015-04-27 17:40</date> 52 53 <author>小编</author> 54 55 </new> 56 57 58 -<new id="5"> 59 60 <title>关于依法治国论述摘编发行会见缅甸客人</title> 61 62 <type>时政要闻</type> 63 64 <date>2015-04-27 17:40</date> 65 66 <author>小编</author> 67 68 </new> 69 70 71 -<new id="6"> 72 73 <title>关于依法治国论述摘编发行会见缅甸客人</title> 74 75 <type>时政要闻</type> 76 77 <date>2015-04-27 17:40</date> 78 79 <author>小编</author> 80 81 </new> 82 83 84 -<new id="7"> 85 86 <title>关于依法治国论述摘编发行会见缅甸客人</title> 87 88 <type>时政要闻</type> 89 90 <date>2015-04-27 17:40</date> 91 92 <author>小编</author> 93 94 </new> 95 96 97 -<new id="8"> 98 99 <title>关于依法治国论述摘编发行会见缅甸客人</title> 100 101 <type>时政要闻</type> 102 103 <date>2015-04-27 17:40</date> 104 105 <author>小编</author> 106 107 </new> 108 109 110 -<new id="9"> 111 112 <title>关于依法治国论述摘编发行会见缅甸客人</title> 113 114 <type>时政要闻</type> 115 116 <date>2015-04-27 17:40</date> 117 118 <author>小编</author> 119 120 </new> 121 122 123 -<new id="10"> 124 125 <title>关于依法治国论述摘编发行会见缅甸客人</title> 126 127 <type>时政要闻</type> 128 129 <date>2015-04-27 17:40</date> 130 131 <author>小编</author> 132 133 </new> 134 135 136 -<new id="11"> 137 138 <title>关于依法治国论述摘编发行会见缅甸客人</title> 139 140 <type>时政要闻</type> 141 142 <date>2015-04-27 17:40</date> 143 144 <author>小编</author> 145 146 </new> 147 148 </news>
创建实体类news;对新闻实体类进行封装;使用新闻实体类对新闻数据进行封装
package entity;/*** 新闻类* @author Administrator**/ public class News {private String id;//新闻IDprivate String title;//标题private String type;//新闻类型private String date;//发布时间private String author;//作者public String getId() {return id;}public void setId(String id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getDate() {return date;}public void setDate(String date) {this.date = date;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}}
用泛型集合从页面输出效果
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <%@page import="javax.xml.parsers.DocumentBuilderFactory"%> 3 <%@page import="javax.xml.parsers.DocumentBuilder"%> 4 <%@page import="org.w3c.dom.Document"%> 5 <%@page import="org.w3c.dom.NodeList"%> 6 <%@page import="org.w3c.dom.Node"%> 7 <%@page import="entity.News"%> 8 <%@page import="org.w3c.dom.Element"%> 9 <% 10 String path = request.getContextPath(); 11 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 12 %> 13 14 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 15 <html> 16 <head> 17 <base href="<%=basePath%>"> 18 19 <title>解析显示新闻</title> 20 21 </head> 22 23 <body> 24 <% 25 //建立dom解析器工厂实例 26 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 27 28 //得到解析器对象 29 DocumentBuilder db = dbf.newDocumentBuilder(); 30 31 //得到web工程根目录 32 System.out.print(request.getRealPath("/")); 33 //加载XML文件;创建docuemnt对象(生成dom树) 34 Document dom = db.parse(request.getRealPath("/")+"/new.xml"); 35 36 //开始解析新闻 37 NodeList nodelist = dom.getElementsByTagName("new"); 38 39 //创建泛型集合存储解析的新闻信息 40 List<News> newslist = new ArrayList<News>(); 41 42 //循环解析 43 for(int i = 0; i < nodelist.getLength(); i++){ 44 45 //得到每个node(节点)对象 46 Node newnode = nodelist.item(i); 47 48 //将节点对象转换为元素对象 49 Element element = (Element)newnode; 50 51 //得到新闻的id属性 52 String newid = element.getAttribute("id"); 53 54 //创建新闻对象 55 News news = new News(); 56 57 //将id存储在新闻对象中 58 news.setId(newid); 59 60 //获取其他节点属性 61 for(Node news_child = newnode.getFirstChild(); news_child != null;news_child = news_child.getNextSibling()){ 62 63 //判断当前是元素对象还是节点对象 64 if(news_child.getNodeType() == Node.ELEMENT_NODE){ 65 66 if(news_child.getNodeName().equals("title")){ 67 //获取新闻标题;将标题封装到对象中 68 news.setTitle(news_child.getFirstChild().getNodeValue()); 69 } 70 if(news_child.getNodeName().equals("type")){ 71 //获取新闻类型;将标题封装到对象中 72 news.setType(news_child.getFirstChild().getNodeValue()); 73 } 74 if(news_child.getNodeName().equals("date")){ 75 //获取新闻发布时间;将标题封装到对象中 76 news.setDate(news_child.getFirstChild().getNodeValue()); 77 } 78 if(news_child.getNodeName().equals("author")){ 79 //获取新闻作者;将标题封装到对象中 80 news.setAuthor(news_child.getFirstChild().getNodeValue()); 81 } 82 83 } 84 } 85 //将新闻对象放入泛型集合中 86 newslist.add(news); 87 } 88 %> 89 90 <center> 91 <table style="width: 800px; height: auto; border:1px solid #900;font-size: 12px" cellpadding="0" cellspacing="0"> 92 <tr style="text-align: center;background: #900; color: #ffffff;border: 1px solid #900"> 93 <td>新闻ID</td> 94 <td>新闻标题</td> 95 <td>新闻类型</td> 96 <td>发布时间</td> 97 <td>发布作者</td> 98 </tr> 99 <% 100 //循环新闻列表 101 for(int i = 0; i < newslist.size(); i ++){ 102 //取出集合中每个新闻实体对象 103 News news = newslist.get(i); 104 %> 105 <tr> 106 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getId() %></td> 107 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getTitle() %></td> 108 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getType() %></td> 109 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getDate() %></td> 110 <td style="text-align: center;border: 1px solid #900;height:30px"><%=news.getAuthor() %></td> 111 </tr> 112 <% 113 } 114 %> 115 </table> 116 </center> 117 </body> 118 </html>
转载于:https://www.cnblogs.com/wlx520/p/4493058.html
XML、集合、JSP综合练习相关推荐
- xml控制html样式,XML与CSS综合设置实例
XML与CSS综合设置实例 HTTP代码如下: @charset "utf-8"; @charset "utf-8"; bookname{ display:bl ...
- MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白
MyEclipse导入主题文件epf后xml及jsp等页面中点击标签之后显示灰白,症状如下: 解决方案如下:
- Servlet+MyBatis+jsp综合案例-----员工信息管理
需求:完成一个表名为(employee)的员工管理系统,登录的表名为(user). 员工属性有:员工编号(id).员工姓名(name).员工年龄(age).员工性别(sex). 员工电 ...
- web.xml、JSP原理、指令
web应用和web.xml JSP(java server page)本质是servlet,因为JSP最终要编译成servlet才能运行. Tomcat的webapps路径下的web项目中的WEB-I ...
- jsp到java xml配置,JSP中web配置:web.xml
# re: JSP中web配置:web.xml 2007-07-02 12:24 和田雨 - http://java.sun.com/xml/ns/j2ee" xmlns:j2ee=&quo ...
- eclipse中为了format的代码更加好看,少换行,可以设置java、xml、jsp的代码line width。
原因:eclipse默认的代码line width是80, 格式化代码后,经常换行,非常难看. 解决办法:jsp 和 xml 解决比较简单. 打开一个jsp 或 xml . 右键->prefe ...
- 关于Eclipse中XML、JSP、JS等文件打开方式的设置
新装了开发环境,发现XML中的class不能以Ctrl+点击链接到相应的类:装了SPKET后也没有提示功能,还有一些常用的注释等快捷键也不能用.最终发现是打开方式导致的,可以在节点上选择Open Wi ...
- 【JSP综合课程设计】图书借阅系统设计与实现
基于JSP的图书借阅系统设计与实现 1 绪论 1.1 课题背景及现状 1.2 开发工具及技术介绍 2 详细设计 2.1 系统主要功能模块介绍 2.2系统功能设计 2.3 核心代码 2.3.1登录注册模 ...
- 2021-08-19集合框架综合案例
二.案例题目描述: 请实现一个简单的图书管理系统,要求如下: 1)定义图书类Book,具有属性账号id,书名name.作者author 和价格price,在创建图书对象时要求通过构造器进行创建,一次性 ...
最新文章
- 【OpenCV 4开发详解】分割图像——Mean-Shift分割算法
- YUM部署高版本LNMP环境
- java 端口8161_ActiveMQ_Windows和Linux版本的安装部署
- Hp linux tar 解压,tar命令的用法(百度)(HP_UX)
- LeetCode Binary Tree Preorder Traversal(二叉树的前序遍历)
- VirtualBox虚拟机中Ubuntu11.10安装Additions出现 读写错误的解决办法
- SpringCloud Netflix Ribbon
- php geteditor,wordpress函数get_editor_stylesheets()用法示例
- 世界上最有能量的语言,一定要经常说!
- idea json转对象(Java实体类)
- jpg、jpeg、png... 的区别
- 二级计算机vf题型,计算机二级VF考试常见题型与解题技巧
- 如何自己搭建外卖红包平台,操作外卖CPS佣金提成实现躺赚?
- 论文笔记7 --(ReID)Video-based Person Re-identification via Self Paced Weighting
- Linux中断原理、上半部和下半部、硬中断和软中断
- VUE3学习笔记(细节)
- 【大数据入门】Hadoop技术原理与应用之基于Hadoop的数据仓库Hive
- 高斯消元简单线性代数线性基学习记录
- Cocos Creator入门实战:桌球小游戏
- heigh,clientHeight , scrollHeight , offsetHeight介绍
热门文章
- 转: 网卡名字eth0,eth1的修改方法
- html5 canvas画进度条
- Ubuntu 14.04.1 配置 Android 源码开发环境(jdk版本切换)(转载)
- 【转】android手势处理揭秘
- OkHttpClient源码分析(五)—— ConnectInterceptor和CallServerInterceptor
- P3482 [POI2009]SLO-Elephants
- Rust 1.27支持SIMD
- mysql group by using filesort优化
- 微信公众号接口权限表汇总
- 控制台程序如何加图标