⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.jsp

📁 不用用到数据库
💻 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 + -