📄 index.jsp
字号:
<%@ page contentType="text/html; charset=GBK" language="java" import="javax.xml.parsers.*" %>
<%@ page import="org.w3c.dom.*" %>
<%@ page import="java.io.*" %>
<%!
int PageSize=6;
int Page=3;
int totalPage=1;
int totalRecord=1;
NodeList links=null;
public String ShowOnePage(NodeList n1,int Page,int PageSize)
{
String str="";
for(int iPage=(Page-1)*PageSize;iPage<Page*PageSize;iPage++)
{
try
{
if(iPage<totalRecord)
{
Element el=(Element)links.item(iPage);
str+=showOneNode(el);
str+="<hr>";
}
}
catch(Exception e)//如果产生异常,表示无此节点,退出for循环
{
break;
}
}
return str;
}
//显示单个节点子模快
public String showOneNode(Element el)
{
String tt="";
try
{
tt+="<table bgColor=#acacff width=80% border=1 borderColorDark=#ffffff borderColorLight=#000000 cellspacing=1 cellpadding=4 align=center>";
tt+="<tr>";
tt+="<td width=30% >留言编号</td>";
tt+="<td>"+el.getElementsByTagName("id").item(0).getFirstChild().getNodeValue()+"</td>";
tt+="</tr>";
tt+="<tr>";
tt+="<td>留言者姓名</td>";
tt+="<td>"+el.getElementsByTagName("username").item(0).getFirstChild().getNodeValue()+"</td>";
tt+="</tr>";
tt+="<tr>";
tt+="<td>留言时间</td>";
tt+="<td>"+el.getElementsByTagName("time").item(0).getFirstChild().getNodeValue()+"</td>";
tt+="</tr>";
tt+="<tr>";
tt+="<td>主页</td>";
String tmp=el.getElementsByTagName("homepage").item(0).getFirstChild().getNodeValue()+"</td>";
tt+="<td><a href="+tmp+">"+tmp+"</a></td>";
tt+="</tr>";
tt+="<tr>";
tt+="<td>Email</td>";
tmp=el.getElementsByTagName("email").item(0).getFirstChild().getNodeValue()+"</td>";
tt+="<td><a href=mailto:"+tmp+">"+tmp+"</a></td>";
tt+="</tr>";
tt+="<tr>";
tt+="<td>留言内容</td>";
tt+="<td>"+el.getElementsByTagName("context").item(0).getFirstChild().getNodeValue()+"</td>";
tt+="</tr>";
tt+="</table>";
}
catch(Exception e)
{
System.out.println("解析XML文件时发生错误!");
System.out.println(e.toString());
}
return tt;
}
%>
<html>
<head>
<title>基于XML的留言簿</title>
<style type="text/css">
<!--
td{font-family:"宋体"; font-size:9pt; text-decoration:none}
a{font-family:"宋体"; font-size:9pt; color:#ff0000; text-decoration:none}
a:hover{color:#FFFF00; text-decoration:underline}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<img src="guestbook.gif">
<h2 align="center">基于XML的留言簿</h2>
<hr>
<center>
<a href="AddMessage.htm" style="font-size:16pt">我要留言</a>
<%
String filename=getServletConfig().getServletContext().getRealPath("/lyb_xml/list.xml");
try
{
//为解析XML文件创建DOM对象
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(new File(filename));
//初始化
doc.normalize();
//得到节点集合
links=doc.getElementsByTagName("list");
totalRecord=links.getLength();
}
catch(Exception e)
{
out.println("访问XML文件出错!");
return;
}
if(totalRecord%PageSize==0) totalPage=totalRecord/PageSize;//如果当前页码是整数倍
else totalPage=(int)Math.floor(totalRecord/PageSize)+1;//如果最后还空余一页
if(totalPage==0) totalPage=1;
try
{
if(request.getParameter("Page")==null||request.getParameter("Page").equals(""))
Page=1;
else
Page=Integer.parseInt(request.getParameter("Page"));
}
catch(java.lang.NumberFormatException e)
{
//捕获用户从浏览器地址栏直接输入类似于Page=sdfjsf这样的错误页码所造成的异常
Page=1;
}
if(Page<1) Page=1;
if(Page>totalPage) Page=totalPage;
out.println(ShowOnePage(links,Page,PageSize));
%>
<form action="index.jsp" method="get">
<%
if(Page!=1)
{
out.println("<a href=index.jsp?Page=1>第一页</a>");
out.println("<a href=index.jsp?Page="+(Page-1)+">上一页</a>");
}
if(Page!=totalPage)
{
out.println("<a href=index.jsp?Page="+(Page+1)+">下一页</a>");
out.println("<a href=index.jsp?Page="+totalPage+">最后一页</a>");
}
%>
<p>输入页数:<input type="text" name="Page" size="3">页数:<font color="red"><%=Page%>/<%=totalPage%></font>
</p>
</form>
</center>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -