转载

JSP留言板的JSP源码操作实施

很多JSP编程的爱好者都是出于要做网站的目的,那么网站的PR值就很重要网站的PR值(全称为PageRank),是google搜索排名算法中的一个组成部分,级别从1到10级,10级为满分,PR值越高说明该网页在搜索排名中的地位越重要,也就是说,在其他条件相同的情况下,PR值高的网站在google搜索结果的排名中有优先权。

那么如何制作一个JSP留言板,来提升自己网站的PR值增强了互动性呢?让我们开始吧!

一.JSP留言板:创建数据库

1).打开Access2000,创建一个新的数据库,我将这个数据库命名为foxdb.mdb,存在C:/tomcat/fox/global/foxdb.mdb。接下来在 eagle.mdb中创建一个表,命名为foxtable,表中有五个字段,全为文本格式:

其中“URL”用于记录留言者的 IP 。至于各字段的长度,我把“留言”定为200,其它四个各为20。

2).指定ODBC数据源,其名为foxdb ,指向 C:/tomcat/fox/global/foxdb.mdb。

二.JSP留言板:编写用户的留言界面

foxnote.html,存于C:/tomcat/fox/foxnote.html:

  1. html  
  2. body  
  3. form method="post" action="foxnoteinsert.jsp"   
  4. br姓名:   
  5. input name=username size=15value=""  
  6. br邮箱:   
  7. input name=email size=15value=""   
  8. br留言:   
  9. br  
  10. textarea name=doc rows="5" cols="40"  
  11. /textarea   
  12. br   
  13. input type=submit value="递交"   
  14. input type=reset value="重填"   
  15. /form   
  16. /bocy  
  17. /html   
  18.  

在IE中键入 http://ip/fox/foxnote.html 看看是否显示正常(ip是你机器的ip地址)

三.JSP留言板:编写 foxnoteinsert.jsp

将用户的留言写进数据库表中:

  1. body bgcolor="#FFFFFF"  
  2. %@ page import="java.sql.*,MyUtil,java.util.*"%   
  3. %  
  4. Connection con=null;   
  5. String username=MyUtil.gb2312ToUnicode(request.getParameter("username"));   
  6. String email=MyUtil.gb2312ToUnicode(request.getParameter("email"));   
  7. String doc=MyUtil.gb2312ToUnicode(request.getParameter("doc"));   
  8. String url=request.getRemoteAddr();   
  9. try {   
  10. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbcdbc:foxdb","","");   
  11. String str="insert into foxtable values(?,?,?,?);";   
  12. PreparedStatement pstmt=con.prepareStatement(str);   
  13. pstmt.setString(1,username);  
  14. pstmt.setString(2,email);  
  15. pstmt.setString(3,doc);   
  16. pstmt.setString(4,url);   
  17. pstmt.executeUpdate();   
  18. pstmt.close();  
  19. con.close();  
  20. }   
  21. catch(Exception e) {   
  22. out.println(e.getMessage());   
  23. }  
  24. %   
  25.  

这个程序中有一些要说明的地方,就是其中用到了一个 JavaBean :MyUtil.class 。

MyUtil 的作用是字符串之间的转换。必需关注的是JSP的字符串以Unicode码表示,而留言板界面的表单却是以 gb2312码表示。所以将用户的留言写进数据库还需要码间的转换。如果不转换而把留言直接写到数据库表,则会产生乱码。下面是 MyUtil的原代码,存于C:/tomcat/fox/WEB-INF/classes/MyUtil.java,编译后的MyUtil.class文件也存于此。

  1. import java.io.*;   
  2. public class MyUtil{  
  3. public static String gb2312ToUnicode(String s){  
  4. try{  
  5. return new String(s.getBytes("ISO8859_1"),"gb2312");   
  6. }   
  7. catch(UnsupportedEncodingException uee){  
  8. return s;  
  9. }   
  10. }  
  11. public static String unicodeTogb2312(String s){  
  12. try{  
  13. return new String(s.getBytes("gb2312"),"ISO8859_1");  
  14. }   
  15. catch(UnsupportedEncodingException uee){  
  16. return s;  
  17. }  
  18. }  
  19. }   
  20.  

四.JSP留言板:编写 foxnoteview.jsp

用于浏览数据库表中已有的留言,存于C:/tomcat/fox/foxnoteview.jsp ,代码如下:

  1. html  
  2. body   
  3. %@ page c language="java" import="java.sql.*"%  
  4. %  
  5. Connection con=null;  
  6. try  
  7. {  
  8. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
  9. con=DriverManager.getConnection("jdbcdbc:foxdb","","");  
  10. Statement statement=con.createStatement();  
  11. ResultSet rs=statement.executeQuery("select * from foxtable");  
  12.  
  13. %   
  14. table border="1" width="100%" cellspacing="0" cellpadding="0"align="center" bordercolorlight="#CCCCFF" bordercolordark="#FFFFFF"  
  15. tr bgcolor="#FFFFFF"   
  16. td width="15%" height="25" align="center"i作者/i/td  
  17. td width="28%" height="25" align="center"i发表时间/i/td  
  18. td width="22%" height="25" align="center"iEmail/i/td  
  19. td width="35%" height="25" align="center"i留言内容/i/td  
  20. %  
  21. while(rs.next()){  
  22. out.println("TRtd align=centerfont size=2color=#999999"+rs.getString("作者")+"/TD");  
  23. out.println("TDfont size=2color=#999999"+rs.getString("Email")+"/font/TD");  
  24. out.println("TDfont size=2color=#999999"+rs.getString("留言")+"/font/TD");  
  25. out.println("TDfont size=2color=#999999"+rs.getString("URL")+"/font/TD/TR");  
  26. }  
  27. rs.close();  
  28. con.close();  
  29. }  
  30. catch(Exception e)  
  31. {  
  32. out.println(e.getMessage());  
  33. }  
  34. %   
  35. /table  
  36. /body  
  37. /html  
  38.  

到此,整个JSP留言板程序就算是完工了。留言板在数据库应用中比较简单,但是加以变化则可以编写出各种各样的应用程序,操作各种各样的数据库^_^

正文到此结束
Loading...