• Java Web 网络留言板2 JDBC数据源 (连接池技术)


    addMessage.htm

    代码;

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="/guestbook2/js/validation-framework.js"></script>
    <script type="text/javascript" src="/guestbook2/fckeditor/fckeditor.js"></script>
    <title>add message</title>
    </head>
    <body>
    <p align="center">请您输入留言</p>
    <p align="center"><a href="/guestbook2/servlet/getMessages">查看留言</a></p>
    <form id="form1" name="form1" method="post" action="/guestbook2/servlet/addMessage" onsubmit="return doValidate(this)">
    <table width="600" height="400" border="0" align="center">
    <tr>
    <td width="100">姓名:</td>
    <td width="500">
    <input name="name" type="text" id="name" size="40" maxlength="20" />
    </td>
    </tr>
    <tr>
    <td>E-Mail:</td>
    <td>
    <input name="email" type="text" id="email" size="40" maxlength="40" />
    </td>
    </tr>
    <tr>
    <td>电话:</td>
    <td>
    <input name="phone" type="text" id="phone" size="40" maxlength="20" />
    </td>
    </tr>
    <tr>
    <td>主题:</td>
    <td>
    <input name="title" type="text" id="title" size="80" maxlength="80" />
    </td>
    </tr>
    <tr>
    <td valign="top">内容:</td>
    <td>
    <script type="text/javascript">
    var oFCKeditor = new FCKeditor("content");
    oFCKeditor.BasePath
    = '/guestbook2/fckeditor/' ;
    oFCKeditor.Height
    = 300 ;
    oFCKeditor.ToolbarSet
    = 'Basic';
    oFCKeditor.Create() ;
    </script>
    </td>
    </tr>
    <tr>
    <td></td>
    <td>
    <input type="submit" name="Submit" value="提交" />
    <input type="reset" name="Reset" value="重置" />
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    StringUtil.java

    代码:

    package webbook.util;

    public class StringUtil {

    /**
    * 判断输入的字符串参数是否为空。
    *
    @param args 输入的字串
    *
    @return true/false
    */
    public static boolean validateNull(String args) {
    if (args == null || args.length() == 0) {
    return true;
    }
    else {
    return false;
    }
    }

    /**
    * 判断输入的字符串参数是否为空或者是"null"字符,如果是,就返回target参数,如果不是,就返回source参数。
    */
    public static String chanageNull(String source, String target) {
    if (source == null || source.length() == 0 || source.equalsIgnoreCase("null")) {
    return target;
    }
    else {
    return source;
    }
    }

    /**
    * 过滤<, >,\n 字符的方法。
    *
    @param input 需要过滤的字符
    *
    @return 完成过滤以后的字符串
    */
    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("'", "&#39;");
    input
    = input.replaceAll("\"", "&quot;");
    return input.replaceAll("\n", "<br>");
    }
    }

    AddMessageServlet.java

    代码:

    package webbook.guestbook;
    import java.io.*;
    import java.sql.*;
    import javax.naming.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.sql.DataSource;
    import java.text.SimpleDateFormat;
    import webbook.util.StringUtil;

    public class AddMessageServlet extends HttpServlet {
    private static final long serialVersionUID = -8349454122547148005L;

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String sql
    = "insert into guestbook (id,name,email,phone,title,content,time) values(gb_seq.nextval,?,?,?,?,?,?)";
    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=\"" + request.getContextPath() + "/addMessage.htm\">添加新的留言</a><br>");
    }
    else if (StringUtil.validateNull(title)) {
    out.println(
    "对不起,主题不能为空,请您重新输入!<br>");
    out.println(
    "<a href=\"" + request.getContextPath() + "/addMessage.htm\">添加新的留言</a><br>");
    }
    else {
    try {
    Context context
    = new InitialContext();
    DataSource ds
    = (DataSource) context.lookup("java:/comp/env/jdbc/oracleds");
    conn
    = ds.getConnection();
    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 (NamingException 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=\"" + request.getContextPath() + "/addMessage.htm\">添加新的留言</a><br>");
    }
    else {
    out.println(
    "祝贺您,成功添加留言。<br>");
    out.println(
    "<a href=\"" + request.getContextPath() + "/servlet/getMessages\">查看所有留言内容</a><br>");
    }
    out.println(
    "</body>");
    out.println(
    "</html>");
    out.flush();
    out.close();
    }
    }
    }

    GetMessageServlet.java

    代码;

    package webbook.guestbook;

    import java.io.*;
    import java.sql.*;
    import javax.naming.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.sql.DataSource;
    import webbook.util.StringUtil;

    public class GetMessagesServlet extends HttpServlet {

    private static final long serialVersionUID = 5964428201228635704L;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    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(
    "<style>");
    out.println(
    "*{font-family:\"宋体\";font-size:14px}");
    out.println(
    "</style>");
    out.println(
    "<body><center>");
    out.println(
    "<a href=\""+request.getContextPath()+"/addMessage.htm\">添加新的留言内容</a><br>");
    out.println(
    "留言内容<br><br>");
    try {
    Context initContext
    = new InitialContext();
    DataSource ds
    = (DataSource) initContext.lookup("java:/comp/env/jdbc/oracleds");
    conn
    = ds.getConnection();
    PreparedStatement pstmt
    = conn.prepareStatement(sql);
    ResultSet rs
    = pstmt.executeQuery();
    while (rs.next()) {
    this.printRow(out, rs);
    }
    rs.close();
    pstmt.close();
    }
    catch (NamingException e) {
    e.printStackTrace();
    }
    catch (SQLException e) {
    e.printStackTrace();
    }
    finally {
    try {
    conn.close();
    }
    catch (SQLException e) {
    e.printStackTrace();
    }
    }
    out.println(
    "</center></body>");
    out.println(
    "</html>");
    out.flush();
    out.close();
    }

    private void printRow(PrintWriter out, ResultSet rs) throws SQLException {
    out.println(
    "<table width=\"600\" border=\"1\" bordercolor=\"000000\" style=\"table-layout:fixed;word-break:break-all\">");
    out.println(
    "<tr><td width=\"50\" bordercolor=\"ffffff\">编号:</td>");
    out.println(
    "<td width=\"550\" bordercolor=\"ffffff\" >" + rs.getInt("id") + "</td></tr>");
    out.println(
    "<tr><td bordercolor=\"ffffff\">姓名:</td><td bordercolor=\"ffffff\" >" + rs.getString("name") + "</td></tr>");
    out.println(
    "<tr><td bordercolor=\"ffffff\">电话:</td><td bordercolor=\"ffffff\" >" + StringUtil.chanageNull(rs.getString("phone"), "没填")
    + "</td></tr>");
    out.println(
    "<tr><td bordercolor=\"ffffff\">email:</td><td bordercolor=\"ffffff\" >" + StringUtil.chanageNull(rs.getString("email"), "没填")
    + "</td></tr>");
    out.println(
    "<tr><td valign=\"top\" bordercolor=\"fffff\">主题:</td><td bordercolor=\"ffffff\" >" + rs.getString("title") + " </td></tr>");
    out.println(
    "<tr><td valign=\"top\" bordercolor=\"fffff\">内容:</td>");
    out.println(
    "<td bordercolor=\"fffff\" align=\"left\" bordercolor=\"ffffff\" >" + StringUtil.chanageNull(rs.getString("content"), "没填")
    + "</td></tr>");
    out.println(
    "<tr><td bordercolor=\"ffffff\">时间:</td><td bordercolor=\"ffffff\" >" + rs.getString("time") + " </td></tr>");
    out.println(
    "</table><br>");
    }
    }
  • 相关阅读:
    Spring-Cloud之Feign
    Spring-Cloud之Ribbon原理剖析
    Spring-Cloud之Ribbon
    Spring-Cloud之Eureka
    显示列表
    顶点缓存对象(VBO)
    OpenGL观察轴
    OpenGL顶点数组
    OpenGL投影矩阵
    OpenGL变换
  • 原文地址:https://www.cnblogs.com/hongten/p/2113892.html
Copyright © 2020-2023  润新知