|
做为一个网站与网友交流的方式,留言本无疑是最好的选择。这里,为大家介绍一个用文件系统组件实现的留言本实例。这个留言本包括四个文件。留言本填写页面——gform.html 留言本处理脚本——gform.jsp 留言本显示页面——gbook.jsp 还有一个自动生成的文本文件——gbook.txt。
-
留言本填写页面——gform.html
这是一个简单的HTML文件,它让读者填写留言并把内容传递给gform.jsp来处理。它HTML源代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title>329studio的留言表单</title>
</head>
<body BACKGROUND="b01.jpg">
<table BORDER="1" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#D0D0EC">
<tr>
<td ALIGN="CENTER"><font SIZE="+2" COLOR="#000080"><b>329studio的留言表单</b></font></td>
</tr>
</table>
<form Action="gform.jsp" Method="POST">
<table BORDER="1" WIDTH="100%">
<tr>
<td><font COLOR="#000080">姓名:</font></td>
<td><input TYPE="TEXT" NAME="Name" SIZE="20"></td>
</tr>
<tr>
<td><font COLOR="#000080">Email:</font></td>
<td><input TYPE="TEXT" NAME="Email" SIZE="40"></td>
</tr>
<tr>
<td><font COLOR="#000080">主题:</font></td>
<td><input TYPE="TEXT" NAME="Subject" SIZE="60"></td>
</tr>
<tr>
<td VALIGN="TOP"><font COLOR="#000080">留言:</font> </td>
<td><textarea NAME="Memo" ROWS="6" COLS="60"></textarea></td>
</tr>
</table>
<div align="center"><center><table WIDTH="100%">
<tr ALIGN="CENTER">
<td><input TYPE="Submit" NAME="SEND" VALUE="提交留言"></td>
<td><a HREF="gbook.jsp">浏览留言</a></td>
<td><input TYPE="RESET" VALUE="清除重写"></td>
</tr>
</table>
</center></div>
</form>
</body>
</html>
-
留言处理脚本——gform.jsp
这个脚本的工作流程如下:接受gform.html提交的数据,先判断它是否合法,如果合法,把它转化化成需要的形式,然后保存在文本文件gbook.txt中,最后重定向到gbook.jsp,显示所有的留言,如果不合法则给出错误提示。代码如下:
<%@page contentType="text/html"%>
<%@page language="java"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%>
<%@page import="java.text.*"%>
<%!
// 解决中文显示问题
public String getStr(String str)
{
try
{
String temp_p = str;
byte[] temp_t = temp_p.getBytes("ISO8859_1");
String temp =new String(temp_t);
return temp;
}
catch(Exception e)
{
}
return "空";
}
%>
<%
String Name;
String Email;
String Subject;
String Memo;
// 读取各输入框的数据
Name = request.getParameter("Name");
Email = request.getParameter("Email");
Subject = request.getParameter("Subject");
Memo = request.getParameter("Memo");
Name.trim();
Email.trim();
Subject.trim();
Memo.trim();
// 检查各输入框是否输入有数据
if((Name.length() == 0)||(Email.length() == 0)||(Subject.length() == 0)||(Memo.length() == 0))
{
out.println("输入框不能为空白!");
out.println("<br>");
out.println("<a href=gform.html>返回</a>");
//不再处理以下的程序
return;
}
// 第一行包含"姓名"与"Email"
String Line1;
Line1 = "留言人:" + Name;
Line1 = Line1 + " "; // 插入5个汉字空格
Email = "<A HREF=mailto:" + Email + ">" + Email + "</A>";
Line1 = Line1 + "Email" + Email + "<BR>";
// 第二行
String Line2;
Line2 = "主 题:" + Subject + "<BR>";
// 第三行为"留言",先将留言中/n转换成为回车<br>
String makeContent=new String();
StringTokenizer strToken=new StringTokenizer(Memo,"/n");
while(strToken.hasMoreTokens()){
makeContent=makeContent+"<br>"+strToken.nextToken();
}
Memo=makeContent;
// 为了显示不同的背景颜色,采用表格输出
String Line3;
Line3 = "<TABLE BORDER=0 BGCOLOR=#00FFFF><TR><TD>";
Line3 = Line3 + Memo + "</TD></TR></TABLE>";
// 第四行为留言时间
String Line4;
Date currTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd a hh:mm:ss",Locale.US);
Line4 = "时 间:" + formatter.format(currTime);
%>
<%
// 把留言内容写入文件
// 首先建立FileWriter实例
try{
String path = "c://tomcat/webapps/myweb/gbook.txt";
FileWriter file = new FileWriter(path,true);
PrintWriter pwout = new PrintWriter(file);
// 写入访问者留言
pwout.println(getStr(Line1));
pwout.println(getStr(Line2));
pwout.println(getStr(Line3));
pwout.println(getStr(Line4));
pwout.println("<HR>");
pwout.close();
}
catch(IOException e){
out.println(e.toString());
}
// 将网页重定向到"浏览留言"的网页gbook.jsp
response.sendRedirect("http://127.0.0.1:8080/myweb/gbook.jsp");
%>
-
留言本显示页面——gbook.jsp
它用来显示所有留言,这里我们采用了文件包含语句,使得显示留言变得异常简单,它其实得益于gform.jsp 对留言的处理结果,这种处理把格式页面写入了gbook.txt文件中,这样在gbook.jsp中就不需要设置格式。代码如下:
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title>329studio的访问者留言簿</title>
</head>
<body TEXT="#000000" BGCOLOR="#FFFFFF" BACKGROUND="b01.jpg">
<h2 ALIGN="CENTER">329studio的访问者留言簿</h2>
<hr WIDTH="100%">
<%@ include file="/gbook.txt" %>
<a HREF="gform.html">
<p align="center">返回留言表单</a></p>
</body>
</html>
|