一天的时间,终于搞定了这一实例,不用多说,以下为开发实例基本步骤:

1.建表guestbook(id,name,email,url,title,content,time)
2.新建web项目guestbook
3.为项目添加MySQL连接驱动
4.为项目添加fckeditor,放到WebRoot目录下
5.为项目添加js配置文件,也放置倒WebRoot目录下(一直都听说有必要学一学js,此处直接引用,深感其强大便捷)


            var oFCKeditor = new FCKeditor("content");    
            oFCKeditor.BasePath    
= '/guestbook/fckeditor/' ;
            oFCKeditor.Height    
= 300 ;
            oFCKeditor.ToolbarSet 
= 'Basic';
            oFCKeditor.Create() ;
        
</script>

 

6.创建项目所需要的html页面addMessage.htm  
7.创建一个工具类StringUtil(web开发中会经常用到)

 

 StringUtil {
    //验证输入字符串是否为空
    public static boolean validateNull(String args){
        
if(args==null||args.length()==0){
            
return true;
        }
        
else{
            
return false;     
        }
    }
    
    String changeNull(String source,String target){
        
if(source==null||target==null){
        
return target;   
    }
        
else{
        
return source;
    }
    }
        
//过滤Html代码
        public static String filterHtml(String input) {
            
if(input==null){
                
return null;
            }
            
if(input.length()==0){
                
return input;
            }
            input
=input.replaceAll("&""&amp");  //实现转译
            input=input.replaceAll("<""&lt");
            input
=input.replaceAll(">""&gt");
            input
=input.replaceAll(" ""&nbsp");
            input
=input.replaceAll("'""'");
            input
=input.replaceAll("\"""&quot;");
            input=input.replaceAll("\n""<br>");
            
return input;
        }
        }


8.创建添加留言的servlet和读取留言的servlet
    AddMessageServlet.java(代码)

 

 HttpServlet {

    private static final long serialVersionUID = -8349454122547148005L;

    
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String driver 
= "com.mysql.jdbc.Driver";
        String url 
= "jdbc:mysql://localhost:3306/work";
        String username 
= "root";
        String password 
= "";
        String sql 
= "insert into guestbook (name,email,phone,title,content,time) values(?,?,?,?,?,?)";
        
int result = 0;
        
        Connection conn 
= null;

        request.setCharacterEncoding(
"utf-8");
        String name 
= request.getParameter("name");
        String title 
= request.getParameter("title");

        response.setContentType(
"text/html;charset=utf-8");
        PrintWriter out 
= response.getWriter();
        out.println(
"<html>");
        out.println(
"<head><title>guestbook input page</title></head>");
        out.println(
"<body>");

        
if (StringUtil.validateNull(name)) {
            out.println(
"对不起,姓名不能为空,请您重新输入!<br>");
            out.println(
"<a href='/guestbook/addMessage.htm'>添加新的留言</a><br>");
        } 
else if (StringUtil.validateNull(title)) {
            out.println(
"对不起,主题不能为空,请您重新输入!<br>");
            out.println(
"<a href='/guestbook/addMessage.htm'>添加新的留言</a><br>");
        } 
else {
            
try {
                Class.forName(
"com.mysql.jdbc.Driver");
                conn 
= DriverManager.getConnection(url, username, password);

                PreparedStatement pstmt 
= conn.prepareStatement(sql);
                pstmt.setString(
1, StringUtil.filterHtml(name));
                pstmt.setString(
2, StringUtil.filterHtml(request.getParameter("email")));
                pstmt.setString(
3, StringUtil.filterHtml(request.getParameter("phone")));
                pstmt.setString(
4, StringUtil.filterHtml(title));
                pstmt.setString(
5, request.getParameter("content"));

                SimpleDateFormat sdf 
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                pstmt.setString(
6, sdf.format(new java.util.Date()));
                result 
= pstmt.executeUpdate();
                pstmt.close();
            } 
catch (ClassNotFoundException e) {
                e.printStackTrace();
            } 
catch (SQLException e) {
                e.printStackTrace();
            } 
finally {
                
try {
                    conn.close();
                } 
catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
if (result == 0) {
                out.println(
"对不起,添加留言不成功,请您重新输入!<br>");
                out.println(
"<a href='/guestbook/addMessage.htm'>添加新的留言</a><br>");
            } 
else {
                out.println(
"祝贺您,成功添加留言。<br>");
                out.println(
"<a href='/guestbook/servlet/getMessage'>查看所有留言内容</a><br>");
            }
            out.println(
"</body>");
            out.println(
"</html>");
            out.flush();
            out.close();
        }
    }
}


    GetMessageServlet.java(代码)


 

 HttpServlet {
    private static final long serialVersionUID = 8694828946703476237L;
    StringUtil c
=new StringUtil();

    
public void doGet(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException {
        String driver 
= "com.mysql.jdbc.Driver";
        String url 
= "jdbc:mysql://localhost:3306/work";
        String username 
= "root";
        String password 
= "";
        String sql 
= "select * from guestbook order by id desc";
        Connection conn 
= null;
        response.setContentType(
"text/html;charset=utf-8");
        PrintWriter out 
= response.getWriter();
        out.println(
"<html>");
        out.println(
"<head><title>display messages</title></head>");
        out.println(
"<body>");
        out.println(
"<a href='/guestbook/addMessage.htm'>添加新的留言内容</a><br>");
        out.println(
"留言内容<br><br>");
        
        
try {
            Class.forName(
"com.mysql.jdbc.Driver");
            conn 
= DriverManager.getConnection(url, username, password);
            PreparedStatement pstmt 
= conn.prepareStatement(sql);
            ResultSet rs 
= pstmt.executeQuery();
            
while (rs.next()) {
                
this.printRow(out, rs);
            }
            rs.close();
            pstmt.close();
        } 
catch (ClassNotFoundException e) {
            e.printStackTrace();
        } 
catch (SQLException e) {
            e.printStackTrace();
        } 
finally {
            
try {
                conn.close();
            } 
catch (SQLException e) {
                e.printStackTrace();
            }
        }
        out.println(
"</body>");
        out.println(
"</html>");
        out.flush();
        out.close();
    }

    
private void printRow(PrintWriter out, ResultSet rs) throws SQLException {
        out
                .println(
"<table width=\"600\" border=\"1\" style=\"table-layout:fixed;word-break:break-all\">");
        out.println(
"<tr><td width=\"50\">编号</td>");
        out.println(
"<td width=\"550\">" + rs.getInt("id"+ "</td></tr>");
        out
                .println(
"<tr><td>姓名</td><td>" + rs.getString("name")
                        
+ "</td></tr>");
        out.println(
"<tr><td>电话</td><td>"
                
+ c.changeNull((String)(rs.getString("phone")), "没填")
                
                
+ "</td></tr>");
        out.println(
"<tr><td>email</td><td>"
                
+ c.changeNull(rs.getString("email"), "没填")
                
+ "</td></tr>");
        out.println(
"<tr><td valign=\"top\">主题</td><td>"
                
+ rs.getString("title"+ " </td></tr>");
        out.println(
"<tr><td valign=\"top\">内容</td>");
        out.println(
"<td>"
                
+ c.changeNull(rs.getString("content"), "没填")
                
+ "</td></tr>");
        out.println(
"<tr><td>时间</td><td>" + rs.getString("time")
                
+ " </td></tr>");
        out.println(
"</table><br>");
    }
}

9.调试运行程序

相关文章:

  • 2021-11-30
  • 2021-10-10
猜你喜欢
  • 2021-11-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-29
相关资源
相似解决方案