?? 0132.htm
字號:
<html>
<head>
<title>新時代軟件教程:操作系統 主頁制作 服務器 設計軟件 網絡技術 編程語言 文字編輯</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋體}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1 {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
<p align="center"><big><strong>guestbook例子</strong></big></p>
<div align="right">---摘自互聯網</div>
<br>import javax.servlet.*;<br>
import javax.servlet.http.*;<br>
import java.io.*;<br>
import java.net.*;<br>
import java.sql.*;<br>
import java.text.DateFormat;<br>
import java.util.Locale;<br>
<br>
public class GuestBookServlet extends HttpServlet {<br>
public void init() {<br>
try {<br>
Class.forName("com.imaginary.sql.msql.MsqlDriver").newInstance();<br>
}<br>
catch( Exception e ) {<br>
}<br>
}<br>
//Sign guestbook<br>
public void doPost(HttpServletRequest req, HttpServletResponse res)<br>
throws ServletException, IOException {<br>
String url = "jdbc:msql://athens.imaginary.com:1114/db_web";<br>
ServletOutputStream out = res.getOutputStream();<br>
java.util.Date date = new java.util.Date();<br>
String name, email, comment;<br>
Connection conn = null;<br>
Exception err = null;<br>
int id = -1;<br>
String[] tmp;<br>
//init<br>
<br>
//accept name <br>
tmp = req.getParameterValues("name");<br>
if( tmp == null // tmp.length != 1 ) {<br>
name = null;<br>
}<br>
else {<br>
name = tmp[0];<br>
}<br>
//accept email <br>
tmp = req.getParameterValues("email");<br>
if( tmp == null // tmp.length != 1 ) {<br>
email = null;<br>
}<br>
else {<br>
email = tmp[0];<br>
}<br>
//accept comments <br>
tmp = req.getParameterValues("comments");<br>
if( tmp == null // tmp.length != 1 ) {<br>
comment = null;<br>
}<br>
else {<br>
comment = tmp[0];<br>
}<br>
//header<br>
res.setContentType("text/html");<br>
printPageHeader(out);<br>
if( name.length() < 1 ) {<br>
out.println("You must specify a valid name!");<br>
printCommentForm(out);<br>
printPageFooter(out);<br>
return;<br>
}<br>
if( email.length() < 3 ) {<br>
out.println("You must specify a valid email address!");<br>
printCommentForm(out);<br>
printPageFooter(out);<br>
return;<br>
}<br>
if( email.indexOf("@") < 1 ) {<br>
out.println("You must specify a valid email address!");<br>
printCommentForm(out);<br>
printPageFooter(out);<br>
return;<br>
}<br>
if( comment.length() < 1 ) {<br>
out.println("You left no comments!");<br>
printCommentForm(out);<br>
printPageFooter(out);<br>
return;<br>
}<br>
//access to mSQL<br>
try {<br>
Statement statement;<br>
ResultSet result;<br>
<br>
conn = DriverManager.getConnection(url, "borg","");<br>
statement = conn.createStatement();<br>
result = statement.executeQuery("SELECT next_id " +<br>
"FROM sys_gen " +<br>
"WHERE id = 'comment_id'");<br>
if( !result.next() ) {<br>
throw new java.sql.SQLException("Failed to generate id.");<br>
}<br>
id = result.getInt(1) + 1;<br>
result.close();<br>
statement.close();<br>
statement = conn.createStatement();<br>
statement.executeUpdate("UPDATE sys_gen SET next_id = " + id +<br>
" WHERE id = 'comment_id'");<br>
statement.close();<br>
statement = conn.createStatement();<br>
comment = fixComment(comment);<br>
statement.executeUpdate("INSERT into comments " +<br>
"(comment_id, email, name, comment, " +<br>
"cmt_date) "+<br>
"VALUES (" + id +", '" + email +<br>
"', '" + name + "', '" +<br>
comment + "', '" + date.getTime() +<br>
"')");<br>
statement.close();<br>
}<br>
catch( java.sql.SQLException e ) {<br>
e.printStackTrace();<br>
err = e;<br>
}<br>
finally {<br>
if( conn != null ) {<br>
try { conn.close(); }<br>
catch( Exception e ) { }<br>
}<br>
}<br>
if( err != null ) {<br>
out.println("An error occurred on save: " + err.getMessage());<br>
}<br>
else {<br>
printCommentForm(out);<br>
printComments(out);<br>
}<br>
}<br>
<br>
<br>
//browser the guestbook<br>
public void doGet(HttpServletRequest req, HttpServletResponse res)<br>
throws ServletException, IOException {<br>
String url = "jdbc:msql://athens.imaginary.com:1114/db_web";<br>
ServletOutputStream out = res.getOutputStream();<br>
Connection conn = null;<br>
int id = -1;<br>
Exception err = null;<br>
<br>
res.setContentType("text/html");<br>
printPageHeader(out);<br>
printCommentForm(out);<br>
printComments(out);<br>
printPageFooter(out);<br>
}<br>
<br>
public String getServletInfo() {<br>
return "Guest Book Servlet v1.0\nCopyright \251 1997 George Reese";<br>
}<br>
<br>
private void printCommentForm(ServletOutputStream out)<br>
throws IOException {<br>
out.println("<CENTER>");<br>
out.println("<FORM ACTION=\"/servlet/GuestBook\" METHOD=\"POST\">");<br>
out.println("<TABLE>");<br>
out.println("<TR ALIGN=\"LEFT\">");<br>
out.println("<TD>Name:</TD>");<br>
out.println("<TD><INPUT TYPE=\"TEXT\" NAME=\"name\" SIZE=30></TD>");<br>
out.println("<TD><INPUT TYPE=\"SUBMIT\" VALUE=\"Save\"></TD>");<br>
out.println("</TR>");<br>
out.println("<TR ALIGN=\"LEFT\">");<br>
out.println("<TD>Email:</TD>");<br>
out.println("<TD><INPUT TYPE=\"TEXT\" NAME=\"email\" SIZE=30></TD>");<br>
out.println("</TR>");<br>
out.println("<TR ALIGN=\"LEFT\">");<br>
out.println("<TD>Comments:</TD>");<br>
out.println("</TR>");<br>
out.println("<TR ALIGN=\"CENTER\">");<br>
out.println("<TD COLSPAN=3>");<br>
out.println("<TEXTAREA NAME=\"comments\" COLS=40 ROWS=7>");<br>
out.println("</TEXTAREA></TD>");<br>
out.println("</TR>");<br>
out.println("</TABLE>");<br>
out.println("</FORM>");<br>
out.println("</CENTER>");<br>
}<br>
<br>
private void printComments(ServletOutputStream out)<br>
throws IOException {<br>
Connection conn = null;<br>
<br>
try {<br>
DateFormat fmt = DateFormat.getDateInstance(DateFormat.FULL,<br>
Locale.getDefault());<br>
String url = "jdbc:msql://athens.imaginary.com:1114/db_web";<br>
Statement stmt;<br>
ResultSet results;<br>
<br>
conn = DriverManager.getConnection(url, "borg", "");<br>
stmt = conn.createStatement();<br>
results = stmt.executeQuery("SELECT name, email, cmt_date, " +<br>
"comment, comment_id " +<br>
"FROM comments " +<br>
"ORDER BY cmt_date");<br>
out.println("<DL>");<br>
while( results.next() ) {<br>
String name, email, cmt;<br>
java.util.Date date;<br>
<br>
name = results.getString(1);<br>
if( results.wasNull() ) {<br>
name = "Unknown User";<br>
}<br>
email = results.getString(2);<br>
if( results.wasNull() ) {<br>
email = "user@host";<br>
}<br>
date = results.getDate(3);<br>
if( results.wasNull() ) {<br>
date = new java.util.Date();<br>
}<br>
cmt = results.getString(4);<br>
if( results.wasNull() ) {<br>
cmt = "No comment.";<br>
}<br>
out.println("<DT><B>" + name + "</B> (" + email + ") on " +<br>
fmt.format(date));<br>
cmt = noHTML(cmt);<br>
out.println("<DD> <PRE>" + cmt + "</PRE>");<br>
}<br>
out.println("</DL>");<br>
}<br>
catch( SQLException e ) {<br>
out.println("A database error occurred: " + e.getMessage());<br>
}<br>
if( conn != null ) {<br>
try { conn.close(); }<br>
catch( Exception e ) { }<br>
}<br>
}<br>
<br>
private void printPageHeader(ServletOutputStream out)<br>
throws IOException {<br>
out.println("<HTML>");<br>
out.println("<HEAD>");<br>
out.println("<TITLE>Guest Book</TITLE>");<br>
out.println("</HEAD>");<br>
out.println("<BODY>");<br>
out.println("<CENTER><H1><B>Guest Book</B></FONT></CENTER>");<br>
}<br>
<br>
private void printPageFooter(ServletOutputStream out)<br>
throws IOException {<br>
out.println("</BODY>");<br>
out.println("</HTML>");<br>
out.flush();<br>
}<br>
<br>
private String noHTML(String cmt) {<br>
if( cmt.indexOf("<") != -1 // cmt.indexOf(">") != -1 ) {<br>
String tmp = "";<br>
<br>
for(int i=0; i<cmt.length(); i++) {<br>
char c = cmt.charAt(i);<br>
<br>
if( c == '<' ) {<br>
tmp = tmp + "<";<br>
}<br>
else if( c == '>' ) {<br>
tmp = tmp + ">";<br>
}<br>
else {<br>
tmp = tmp + c;<br>
}<br>
}<br>
cmt = tmp;<br>
}<br>
return cmt;<br>
}<br>
<br>
private String fixComment(String comment) {<br>
if( comment.indexOf("'") != -1 ) {<br>
String tmp = "";<br>
<br>
for(int i=0; i<comment.length(); i++) {<br>
char c = comment.charAt(i);<br>
<br>
if( c == '\'' ) {<br>
tmp = tmp + "\\'";<br>
}<br>
else {<br>
tmp = tmp + c;<br>
}<br>
}<br>
comment = tmp;<br>
}<br>
return comment;<br>
}<br>
}
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -