zoukankan      html  css  js  c++  java
  • Java Web 网络留言板5 (javaBean技术)

    addMessage.jsp

    代码;

    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@ include file="/header.jsp"%>
    <style>
    * { font-family: "宋体"; font-size: 14px }
    </style>
    <script type="text/javascript" src="<%=context%>/js/validation-framework.js"></script>
    <script type="text/javascript" src="<%=context%>/fckeditor/fckeditor.js"></script>
    <p align="center">
     请您输入留言
    </p>
    <p align="center">
     <a href="<%=context%>/servlet/getMessages">查看留言</a>
    </p>
    <form id="form1" name="form1" method="post"
     action="<%=context%>/servlet/addMessage"   

     

    *****************************************************************************

    *****************************************************************************

    *****************************************************************************

     说明:<%=context%>/servlet/addMessage中的<%=context%>这个是获得整个web项目的                                 

    的名字,如项目名称为:guestbook6,那么action="<%=context%>/servlet/addMessage"                                 

    就等价于action="guestbook6/servlet/addMessage",使用这种方法的好处在那里呢?

    就在于对于修改项目名称的灵活性,比如:现在,我们觉得我们必须得修改我们的项目名称,

    如修改为:guestbook7,如果我们不是用的是这种方法的话,当然也可以,只是我们要修改所有涉及到

    项目名称的地方,这不免给我们造成很大的时间开销。但是如果我们使用这种方式,即便我们修改了项目名称,

    丝毫不会影响我们的项目的运行。这就是他的好处之所在了。

    可以大大给我们节约时间。

    *****************************************************************************

    *****************************************************************************

    *****************************************************************************

                      
     onsubmit="return doValidate(this)">
     <table width="650" height="400" border="0" align="center">
      <tr>
       <td width="150">姓名:</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 = '<%=context%>/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>
    <%@ include file="/footer.htm"%>

    AddMessageServlet.java

    代码:

    package webbook.guestbook;

    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import javax.servlet.ServletException;
    import javax.servlet.http.*;
    import webbook.util.*;

    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;
      String message = "";
      request.setCharacterEncoding("utf-8");
      String name = request.getParameter("name");
      String title = request.getParameter("title");

      if (StringUtil.validateNull(name)) {
       message = "对不起,姓名不能为空,请您重新输入!<br>";
      } else if (StringUtil.validateNull(title)) {
       message = "对不起,主题不能为空,请您重新输入!<br>";
      } else {
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
       String param[] = { StringUtil.filterHtml(name), StringUtil.filterHtml(request.getParameter("email")),
         StringUtil.filterHtml(request.getParameter("phone")), StringUtil.filterHtml(title),
         request.getParameter("content"), sdf.format(new java.util.Date()) };
       OracleUtil db = new OracleUtil("java:/comp/env/jdbc/oracleds");
       db.init();
       result = db.update(sql, param);
       if (result == 0) {
        message = "对不起,添加留言不成功,请您重新输入!<BR>";
       } else {
        message = "祝贺您,成功添加留言。<BR>";
       }
      }
      request.setAttribute("message", message);
      request.getRequestDispatcher("/addResult.jsp").forward(request, response);
     }
    }

    addResult.jsp

    代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@ include file="/header.jsp" %>
    <style>
    * { font-family: "宋体";font-size: 14px}
    </style>
    <%=request.getAttribute("message")%>
    <a href="<%=context %>/addMessage.jsp">添加新的留言</a><BR>
    <a href="<%=context %>/servlet/getMessageServlet">查看所有留言内容</a><BR>
    <%@ include file="/footer.htm"%>

    GetMessageServlet.java

    代码:

    package webbook.guestbook;

    import java.io.IOException;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.http.*;
    import org.apache.commons.dbutils.handlers.BeanListHandler;
    import webbook.util.OracleUtil;

    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";
      List list = null;
      OracleUtil db = new OracleUtil("java:/comp/env/jdbc/oracleds");
      db.init();
      list = (List) db.query(sql, null, new BeanListHandler(Guestbook.class));
      HttpSession session = request.getSession();
      session.setAttribute("results", list);
      response.sendRedirect("/guestbook6/getMessages.jsp");
     }
    }

    getMessages.jsp

    代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"%>
    <%@page import="webbook.guestbook.Guestbook"%>
    <%@ include file="/header.jsp"%>
    <style>
    * {font-family: "宋体";font-size: 14px}
    </style>
    <center>
     <a href="<%=context%>/addMessage.jsp">添加新的留言内容</a><br>
     留言内容<br><br>
     <%
      List list = (List)session.getAttribute("results"); 
      if(list!=null){
      for (int i = 0; i < list.size(); i++) {
       Guestbook gb = (Guestbook) list.get(i);
     %>
     <table width="600" border="1" bordercolor="000000"
      style="table-layout: fixed; word-break: break-all">
      <tr>
       <td width="100" bordercolor="ffffff">
        编号:
       </td>
       <td width="500" bordercolor="ffffff"><%=gb.getId()%></td>
      </tr>
      <tr>
       <td bordercolor="ffffff">
        姓名:
       </td>
       <td bordercolor="ffffff"><%=gb.getName()%></td>
      </tr>
      <tr>
       <td bordercolor="ffffff">
        电话:
       </td>
       <td bordercolor="ffffff"><%=StringUtil.chanageNull(gb.getPhone(), "没填")%></td>
      </tr>
      <tr>
       <td bordercolor="ffffff">
        email:
       </td>
       <td bordercolor="ffffff"><%=StringUtil.chanageNull(gb.getEmail(), "没填")%></td>
      </tr>
      <tr>
       <td bordercolor="ffffff">
        主题:
       </td>
       <td bordercolor="ffffff"><%=gb.getTitle()%></td>
      </tr>
      <tr>
       <td valign="top" bordercolor="ffffff">
        内容:
       </td>
       <td valign="top" bordercolor="ffffff"><%=StringUtil.chanageNull(gb.getContent(), "没填")%></td>
      </tr>
      <tr>
       <td bordercolor="ffffff">
        时间:
       </td>
       <td bordercolor="ffffff"><%=gb.getTime()%></td>
      </tr>
     </table>
     <br>
     <%}}%>
    </center>
    <%@ include file="/footer.htm"%>

    javaBean:

    Guestbook.java

    代码:

    package webbook.guestbook;

    public class Guestbook {
     private String content;
     private String email;
     private Integer id;
     private String name;
     private String phone;
     private String time;
     private String title;

     public String getContent() {
      return content;
     }

     public void setContent(String content) {
      this.content = content;
     }

     public String getEmail() {
      return email;
     }

     public void setEmail(String email) {
      this.email = email;
     }

     public Integer getId() {
      return id;
     }

     public void setId(Integer id) {
      this.id = id;
     }

     public String getName() {
      return name;
     }

     public void setName(String name) {
      this.name = name;
     }

     public String getPhone() {
      return phone;
     }

     public void setPhone(String phone) {
      this.phone = phone;
     }

     public String getTime() {
      return time;
     }

     public void setTime(String time) {
      this.time = time;
     }

     public String getTitle() {
      return title;
     }

     public void setTitle(String title) {
      this.title = title;
     }
    }

    OracleUtil.java

    代码:

    package webbook.util;

    import java.sql.SQLException;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
    import org.apache.commons.dbutils.QueryRunner;
    import org.apache.commons.dbutils.ResultSetHandler;

    public class OracleUtil {
     private String dataSourceName;
     private DataSource ds;

     public OracleUtil(String dataSourceName) {
      this.dataSourceName = dataSourceName;  
     }

     public OracleUtil() {  
     }

     public void setDataSourceName(String dataSourceName) {
      this.dataSourceName = dataSourceName;
     }

     public void init() {
      Context initContext;
      try {
       initContext = new InitialContext();
       ds = (DataSource) initContext.lookup(dataSourceName);
      } catch (NamingException e) {
       e.printStackTrace();
      }
     }

    //跟新数据库中数据,包括插入,删除,修改

     public int update(String sql, String[] param) {
      int result = 0;
      QueryRunner qr = new QueryRunner(ds);
      try {
       result = qr.update(sql, param);
      } catch (SQLException e) {
       e.printStackTrace();
      }
      return result;
     }

    //query(String sql, String[] param, ResultSetHandler rsh)方法是定义数据库的查询

    参数:sql:查询的sql语句,

       params:传递的参数

       rsh:BeanListHandler的对象

     public Object query(String sql, String[] param, ResultSetHandler rsh) {
      QueryRunner qr = new QueryRunner(ds);
      Object result = null;
      try {
       result = qr.query(sql, param, rsh);
      } catch (SQLException e) {
       e.printStackTrace();
      }
      return result;
     }
    }

  • 相关阅读:
    进程池,线程池,协程,gevent模块,协程实现单线程服务端与多线程客户端通信,IO模型
    线程相关 GIL queue event 死锁与递归锁 信号量l
    生产者消费者模型 线程相关
    进程的开启方式 进程的join方法 进程间的内存隔离 其他相关方法 守护进程 互斥锁
    udp协议 及相关 利用tcp上传文件 socketserver服务
    socket套接字 tcp协议下的粘包处理
    常用模块的完善 random shutil shevle 三流 logging
    day 29 元类
    Django入门
    MySQL多表查询
  • 原文地址:https://www.cnblogs.com/hongten/p/2114865.html
Copyright © 2011-2022 走看看