亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

基于java servlet技術的留言簿

2019-11-18 15:07:52
字體:
來源:轉載
供稿:網友

  http://www.linuxforum.net 作者 dream_bird@163.net

這幾天整理我機器中的舊文檔時,發現了一個不錯的基于java servlet技術的留言簿,好象是幾個月前我從 http://go.163.com/~netjava/ 找到的,后臺數據庫用的是SQL Server。現在我的Redhat 6.1上正好安裝了Apache Jserv 1.1、GNUjsp 1.0、MySQL(包括mm.mysql的JDBC驅動),除此之外還有Tomcat 3.1和Cocoon 1.8。當然,一般只運行Jserv + GNUJSP + Cocoon + MySQL,Tomcat是不運行的。既然環境是現成的,為什么不把這個留言簿改改讓它可以運行呢?

首先改造它的源代碼,把JDBC 驅動和URL改成MySQL的。GuestBookServlet.java程序代碼如下:

//javac -encoding iso8859_1 GuestBookServlet.java ( for Chinese gb2312 )
//javac GuestBookServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.text.DateFormat;
import java.util.Locale;

public class GuestBookServlet extends HttpServlet {
    public void init(ServletConfig conf) throws ServletException {

     super.init(conf);

        try {
            Class.forName("org.gjt.mm.mysql.Driver");
        }
        catch( Exception e ) {
        }
    }
//Sign guestbook
    public void doPost(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
        String url = "jdbc:mysql://localhost.localdomain:3306/GuestBook?user=guest&passWord=password";
        ServletOutputStream out = res.getOutputStream();
        java.util.Date date = new java.util.Date();
        String name, email, comment;
        Connection conn = null;
        Exception err = null;
        int id = -1;
        String[] tmp;
//init

//accept name 
        tmp = req.getParameterValues("name");
        if( tmp == null  tmp.length != 1 ) {
            name = null;
        }
        else {
            name = tmp[0];
        }
//accept email  
        tmp = req.getParameterValues("email");
        if( tmp == null  tmp.length != 1 ) {
            email = null;
        }
        else {
            email = tmp[0];
        }
//accept comments       
        tmp = req.getParameterValues("comments");
        if( tmp == null  tmp.length != 1 ) {
            comment = null;
        }
        else {
            comment = tmp[0];
        }
  //header
        res.setContentType("text/Html");
        PRintPageHeader(out);
        if( name.length() < 1 ) {
            out.println("You must specify a valid name!");
            printCommentForm(out);
            printPageFooter(out);
            return;
        }
        if( email.length() < 3 ) {
            out.println("You must specify a valid email address!");
            printCommentForm(out);
            printPageFooter(out);
            return;
        }
        if( email.indexOf("@") < 1 ) {
            out.println("You must specify a valid email address!");
            printCommentForm(out);
            printPageFooter(out);
            return;
        }
        if( comment.length() < 1 ) {
            out.println("You left no comments!");
            printCommentForm(out);
            printPageFooter(out);
            return;
        }
        //access to MySQL
        try {
            Statement statement;
            ResultSet result;
            
            conn = DriverManager.getConnection(url);
            statement = conn.createStatement();
            result = statement.executeQuery("SELECT next_id " +
                                            "FROM sys_gen " +
                                            "WHERE id = ´comment_id´");
            if( !result.next() ) {
                throw new java.sql.SQLException("Failed to generate id.");
            }
            id = result.getInt(1) + 1;
            result.close();
            statement.close();
            statement = conn.createStatement();
            statement.executeUpdate("UPDATE sys_gen SET next_id = " + id +
                                    " WHERE id = ´comment_id´");
            statement.close();
            statement = conn.createStatement();
            comment = fixComment(comment);
            statement.executeUpdate("INSERT into comments " +
                                    "(comment_id, email, name, comment, " +
                                    "cmt_date) "+
                                    "VALUES (" + id +", ´" + email +
                                    "´, ´" + name + "´, ´" +
                                    comment + "´, ´" + date.getTime() +
                                    "´)");
            statement.close();
        }
        catch( java.sql.SQLException e ) {
            e.printStackTrace();
            err = e;
        }
        finally {
            if( conn != null ) {
                try { conn.close(); }
                catch( Exception e ) { }
            }
        }
        if( err != null ) {
            out.println("An error occurred on save: " + err.getMessage());
        }
        else {
            printCommentForm(out);
            printComments(out);
        }
    }
    
    
//browser  the guestbook
    public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
        String url = "jdbc:mysql://localhost.localdomain:3306/GusetBook?user=guest&password=password";
        ServletOutputStream out = res.getOutputStream();
        Connection conn = null;
        int id = -1;
        Exception err = null;

        res.setContentType("text/html");
        printPageHeader(out);
        printCommentForm(out);
        printComments(out);
        printPageFooter(out);
    }

    public String getServletInfo() {
        return "Guest Book Servlet v1.0Copyright 251 2000 meng_bo";
    }

    private void printCommentForm(ServletOutputStream out)
    throws IOException {
        out.println("
");
        out.println("");
        out.println("");
        out.println("");
        out.println(" Name: ");
        out.println(" ");
        out.println(" ");
        out.println("
");
        out.println("");
        out.println(" Email: ");
        out.println(" ");
        out.println("
");
        out.println("");
        out.println(" Comments: ");
        out.println("
");
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println(" ");
        out.println("");
        out.println("
");
    }

    private void printComments(ServletOutputStream out)
    throws IOException {
        Connection conn = null;
        
        try {
            DateFormat fmt = DateFormat.getDateInstance(DateFormat.FULL,
                                                        Locale.getDefault());
            String url = "jdbc:mysql://localhost.localdomain:3306/GuestBook?user=guest&password=password";
            Statement stmt;
            ResultSet results;
            
            conn = DriverManager.getConnection(url);
            stmt = conn.createStatement();
            results = stmt.executeQuery("SELECT name, email, cmt_date, " +
                                        "comment, comment_id " +
                                        "FROM comments " +
                                        "ORDER BY cmt_date");
            out.println("
");
            while( results.next() ) {
                String name, email, cmt;
                java.util.Date date;

                name = results.getString(1);
                if( results.wasNull() ) {
                    name = "Unknown User";
                }
                email = results.getString(2);
                if( results.wasNull() ) {
                    email = "user@host";
                }
                date = results.getDate(3);
                if( results.wasNull() ) {
                    date = new java.util.Date();
                }
                cmt = results.getString(4);
                if( results.wasNull() ) {
                    cmt = "No comment.";
                }
                out.println("
" + name + " (" + email + ") on " +
                            fmt.format(date));
                cmt = noHTML(cmt);
                out.println("
 
" + cmt + "
");
            }
            out.println("
");
        }
        catch( SQLException e ) {
            out.println("A database error occurred: " + e.getMessage());
        }
        if( conn != null ) {
            try { conn.close(); }
            catch( Exception e ) { }
        }
    }
    
    private void printPageHeader(ServletOutputStream out)
    throws IOException {
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println("
Guest Book
");
    }

    private void printPageFooter(ServletOutputStream out)
    throws IOException {
        out.println("");
        out.println("");
        out.flush();
    }

    private String noHTML(String cmt) {
        if( cmt.indexOf("<") != -1  cmt.indexOf(">") != -1 ) {
            String tmp = "";

            for(int i=0; i                char c = cmt.charAt(i);

                if( c == ´<´ ) {
                    tmp = tmp + "<";
                }
                else if( c == ´>´ ) {
                    tmp = tmp + ">";
                }
                else {
                    tmp = tmp + c;
                }
            }
            cmt = tmp;
        }
        return cmt;
    }

    private String fixComment(String comment) {
        if( comment.indexOf("´") != -1 ) {
            String tmp = "";
            
            for(int i=0; i                char c = comment.charAt(i);
                
                if( c == ´´´ ) {
                    tmp = tmp + "/´";
                }
                else {
                    tmp = tmp + c;
                }
            }
            comment = tmp;
        }
        return comment;
    }
}

對于該程序所要使用的數據庫和表,我寫了如下三個腳本:

1. create_database.sql

create database GuestBook;
grant select,insert,update,delete,create,drop
on GuestBook.*
to guest@localhost.localdomain
identified by ´password´;

2. create_tables.sql

use GuestBook;
create table sys_gen(
next_id int(8) not null,
id char(10) not null);

insert into sys_gen (next_id, id) values (0, ´comment_id´);

create table comments(
comment_id int(8) not null,
email varchar(64),
name varchar(32),
comment varchar(128),
cmt_date date default ´0000-00-00´ not null);

3. install.sh

#/bin/sh

mysql --user=root --host=localhost.localdomain --password=password < create_database.sql
mysql --user=guest --host=localhost.localdomain --password=password < create_tables.sql

有了這些代碼,一切就再明白不過了吧。這里還需要注重的是“<”和“>”在HTML文件中會出問題,所以誰要把這篇文檔轉換成HTML文件時一定要注重。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本成人精品在线| 91欧美激情另类亚洲| 亚洲性线免费观看视频成熟| 日本精品久久中文字幕佐佐木| 揄拍成人国产精品视频| 国产精品高潮呻吟视频| 狠狠躁夜夜躁久久躁别揉| 日本免费在线精品| 精品香蕉一区二区三区| 成人黄色av播放免费| 亚洲国产97在线精品一区| 欧美日韩999| 久久精品一本久久99精品| 国产精品va在线播放我和闺蜜| 91chinesevideo永久地址| 日韩日本欧美亚洲| 国产精品美女久久| 91在线视频导航| 欧美色另类天堂2015| 亚洲国产精品视频在线观看| 国产精品福利在线观看网址| 丁香五六月婷婷久久激情| 亚洲国产精品va在线看黑人| 亚洲美女免费精品视频在线观看| 久久中文精品视频| 午夜精品久久久久久久99热浪潮| 色综合老司机第九色激情| 欧美夫妻性视频| 国产精品久久久久久久久久三级| 日韩在线观看网站| 国产精品久久99久久| 久久精品中文字幕免费mv| 中国china体内裑精亚洲片| 亚洲黄色www| 欧美成人中文字幕| 中文字幕日韩综合av| 国产精品免费网站| 久久av在线播放| 亚洲字幕一区二区| 欧美疯狂做受xxxx高潮| 欧美日韩国产中文字幕| 国内精品视频一区| 久久久久北条麻妃免费看| 欧美日韩国产一区在线| 97婷婷涩涩精品一区| 国产一区二区三区视频在线观看| 国产成人avxxxxx在线看| 久久久在线免费观看| 亚洲免费视频在线观看| 国产亚洲精品美女| 久99九色视频在线观看| 欧美日韩亚洲精品内裤| 热门国产精品亚洲第一区在线| 国产精品麻豆va在线播放| 日韩av片永久免费网站| 亚洲精品久久久久中文字幕二区| 日韩av不卡在线| 欧美激情一区二区三级高清视频| 亚洲wwwav| 亚洲国产古装精品网站| 亚洲视频电影图片偷拍一区| 亚洲欧美国产精品va在线观看| 国产精品久久久久久久午夜| 视频在线观看一区二区| 国产日本欧美在线观看| 亚洲成人性视频| 日韩在线一区二区三区免费视频| 亚洲综合在线中文字幕| 6080yy精品一区二区三区| 国产精品久久久久久久9999| 亚洲精品永久免费精品| 国产精品免费一区| 色久欧美在线视频观看| 欧美高清第一页| 色多多国产成人永久免费网站| 国产精品免费一区| 精品福利在线视频| 精品露脸国产偷人在视频| 亚洲一区二区福利| 亚洲精品成人久久电影| www.久久草.com| 国产成人高清激情视频在线观看| 亚洲国产精品热久久| 欧美日本国产在线| 97精品在线观看| 欧美又大又硬又粗bbbbb| 中文字幕亚洲无线码在线一区| 成人午夜小视频| 欧美日韩在线第一页| 日韩精品欧美国产精品忘忧草| 欧美日韩国产一区二区三区| 国产深夜精品福利| 美女撒尿一区二区三区| 国产精品丝袜视频| 51精品在线观看| 成人免费视频xnxx.com| 亚洲大胆美女视频| 国产视频在线观看一区二区| 欧美性猛交xxxx| 亚洲女人被黑人巨大进入al| 久久精品视频播放| 国产精品日韩在线观看| 91在线|亚洲| 欧美激情视频一区二区| 久久亚洲精品小早川怜子66| 伊人伊成久久人综合网小说| 久久精品国产一区二区电影| 91亚洲精品视频| 国产精品免费久久久久久| 亚洲成人黄色在线| 韩国精品久久久999| 国产91精品久久久| 成人精品视频99在线观看免费| 国产一区二区三区在线视频| 国产香蕉97碰碰久久人人| 国产欧美一区二区白浆黑人| 97超级碰碰碰久久久| 性色av一区二区三区在线观看| 亚洲综合在线小说| 国产成人精品午夜| 热re99久久精品国产66热| 午夜欧美不卡精品aaaaa| 精品久久久久久久久久ntr影视| 黑人巨大精品欧美一区二区一视频| 日韩男女性生活视频| 日韩av不卡在线| 国产国语刺激对白av不卡| 亚洲人成电影网| 日韩欧美高清在线视频| 日本久久久久亚洲中字幕| 日韩欧美国产骚| 国内精品小视频在线观看| 日产精品久久久一区二区福利| www.日韩不卡电影av| 狠狠色狠狠色综合日日小说| 亚洲欧美日韩天堂一区二区| 欧美激情久久久久| 亚洲天堂男人的天堂| 亚洲新中文字幕| 中文字幕免费精品一区| 成人午夜一级二级三级| 亚洲经典中文字幕| 色哟哟亚洲精品一区二区| 国产91久久婷婷一区二区| 5278欧美一区二区三区| 欧美日韩国产一中文字不卡| 国产精品99久久久久久白浆小说| 亚洲九九九在线观看| 欧美精品久久久久久久久久| 成人性教育视频在线观看| 国产精品99久久久久久白浆小说| 欧美日韩高清区| 国产精品日韩在线| 国产精品久久久久久久久久ktv| 欧美日韩国产丝袜另类| 国产成人精品免高潮费视频| zzjj国产精品一区二区| 欧美人与物videos| 国产精品久久久久久久美男| 欧美丰满少妇xxxxx做受| 欧美在线一区二区视频| 成人观看高清在线观看免费| 亚洲aⅴ男人的天堂在线观看| 亚洲影院污污.|