JSP留言板的JSP源碼操作實(shí)施
很多JSP編程的愛好者都是出于要做網(wǎng)站的目的,那么網(wǎng)站的PR值就很重要網(wǎng)站的PR值(全稱為PageRank),是google搜索排名算法中的一個(gè)組成部分,級別從1到10級,10級為滿分,PR值越高說明該網(wǎng)頁在搜索排名中的地位越重要,也就是說,在其他條件相同的情況下,PR值高的網(wǎng)站在google搜索結(jié)果的排名中有優(yōu)先權(quán)。
那么如何制作一個(gè)JSP留言板,來提升自己網(wǎng)站的PR值增強(qiáng)了互動(dòng)性呢?讓我們開始吧!
一.JSP留言板:創(chuàng)建數(shù)據(jù)庫
1).打開Access2000,創(chuàng)建一個(gè)新的數(shù)據(jù)庫,我將這個(gè)數(shù)據(jù)庫命名為foxdb.mdb,存在C:\tomcat\fox\global\foxdb.mdb。接下來在 eagle.mdb中創(chuàng)建一個(gè)表,命名為foxtable,表中有五個(gè)字段,全為文本格式:
其中“URL”用于記錄留言者的 IP 。至于各字段的長度,我把“留言”定為200,其它四個(gè)各為20。
2).指定ODBC數(shù)據(jù)源,其名為foxdb ,指向 C:\tomcat\fox\global\foxdb.mdb。
二.JSP留言板:編寫用戶的留言界面
foxnote.html,存于C:\tomcat\fox\foxnote.html:
- ﹤html﹥
- ﹤body﹥
- ﹤form method="post" action="foxnoteinsert.jsp"﹥
- ﹤br﹥姓名:
- ﹤input name=username size=15value=""﹥
- ﹤br﹥郵箱:
- ﹤input name=email size=15value=""﹥
- ﹤br﹥留言:
- ﹤br﹥
- ﹤textarea name=doc rows="5" cols="40"﹥
- ﹤/textarea﹥
- ﹤br﹥
- ﹤input type=submit value="遞交"﹥
- ﹤input type=reset value="重填"﹥
- ﹤/form﹥
- ﹤/bocy﹥
- ﹤/html﹥
在IE中鍵入 http://ip/fox/foxnote.html 看看是否顯示正常(ip是你機(jī)器的ip地址)
三.JSP留言板:編寫 foxnoteinsert.jsp
將用戶的留言寫進(jìn)數(shù)據(jù)庫表中:
- ﹤body bgcolor="#FFFFFF"﹥
- ﹤%@ page import="java.sql.*,MyUtil,java.util.*"%﹥
- ﹤%
- Connection con=null;
- String username=MyUtil.gb2312ToUnicode(request.getParameter("username"));
- String email=MyUtil.gb2312ToUnicode(request.getParameter("email"));
- String doc=MyUtil.gb2312ToUnicode(request.getParameter("doc"));
- String url=request.getRemoteAddr();
- try {
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbcdbc:foxdb","","");
- String str="insert into foxtable values(?,?,?,?);";
- PreparedStatement pstmt=con.prepareStatement(str);
- pstmt.setString(1,username);
- pstmt.setString(2,email);
- pstmt.setString(3,doc);
- pstmt.setString(4,url);
- pstmt.executeUpdate();
- pstmt.close();
- con.close();
- }
- catch(Exception e) {
- out.println(e.getMessage());
- }
- %﹥
這個(gè)程序中有一些要說明的地方,就是其中用到了一個(gè) JavaBean :MyUtil.class 。
MyUtil 的作用是字符串之間的轉(zhuǎn)換。必需關(guān)注的是JSP的字符串以Unicode碼表示,而留言板界面的表單卻是以 gb2312碼表示。所以將用戶的留言寫進(jìn)數(shù)據(jù)庫還需要碼間的轉(zhuǎn)換。如果不轉(zhuǎn)換而把留言直接寫到數(shù)據(jù)庫表,則會(huì)產(chǎn)生亂碼。下面是 MyUtil的原代碼,存于C:\tomcat\fox\WEB-INF\classes\MyUtil.java,編譯后的MyUtil.class文件也存于此。
- import java.io.*;
- public class MyUtil{
- public static String gb2312ToUnicode(String s){
- try{
- return new String(s.getBytes("ISO8859_1"),"gb2312");
- }
- catch(UnsupportedEncodingException uee){
- return s;
- }
- }
- public static String unicodeTogb2312(String s){
- try{
- return new String(s.getBytes("gb2312"),"ISO8859_1");
- }
- catch(UnsupportedEncodingException uee){
- return s;
- }
- }
- }
四.JSP留言板:編寫 foxnoteview.jsp
用于瀏覽數(shù)據(jù)庫表中已有的留言,存于C:\tomcat\fox\foxnoteview.jsp ,代碼如下:
- ﹤html﹥
- ﹤body﹥
- ﹤%@ page c language="java" import="java.sql.*"%﹥
- ﹤%
- Connection con=null;
- try
- {
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- con=DriverManager.getConnection("jdbcdbc:foxdb","","");
- Statement statement=con.createStatement();
- ResultSet rs=statement.executeQuery("select * from foxtable");
- %﹥
- ﹤table border="1" width="100%" cellspacing="0" cellpadding="0"align="center" bordercolorlight="#CCCCFF" bordercolordark="#FFFFFF"﹥
- ﹤tr bgcolor="#FFFFFF"﹥
- ﹤td width="15%" height="25" align="center"﹥﹤i﹥作者﹤/i﹥﹤/td﹥
- ﹤td width="28%" height="25" align="center"﹥﹤i﹥發(fā)表時(shí)間﹤/i﹥﹤/td﹥
- ﹤td width="22%" height="25" align="center"﹥﹤i﹥Email﹤/i﹥﹤/td﹥
- ﹤td width="35%" height="25" align="center"﹥﹤i﹥留言內(nèi)容﹤/i﹥﹤/td﹥
- ﹤%
- while(rs.next()){
- out.println("﹤TR﹥﹤td align=center﹥﹤font size=2color=#999999﹥"+rs.getString("作者")+"﹤/TD﹥");
- out.println("﹤TD﹥﹤font size=2color=#999999﹥"+rs.getString("Email")+"﹤/font﹥﹤/TD﹥");
- out.println("﹤TD﹥﹤font size=2color=#999999﹥"+rs.getString("留言")+"﹤/font﹥﹤/TD﹥");
- out.println("﹤TD﹥﹤font size=2color=#999999﹥"+rs.getString("URL")+"﹤/font﹥﹤/TD﹥﹤/TR﹥");
- }
- rs.close();
- con.close();
- }
- catch(Exception e)
- {
- out.println(e.getMessage());
- }
- %﹥
- ﹤/table﹥
- ﹤/body﹥
- ﹤/html﹥
到此,整個(gè)JSP留言板程序就算是完工了。留言板在數(shù)據(jù)庫應(yīng)用中比較簡單,但是加以變化則可以編寫出各種各樣的應(yīng)用程序,操作各種各樣的數(shù)據(jù)庫^_^
【編輯推薦】