网上商城留言板的实现——留言展示到留言板

留言展示到留言板

功能描述:当用户访问留言板(guestbook.jsp)时,会调用GetMessageServlet.java,该servlet内调用数据库操作(MessageDaoImpl.java中的selectMessage()方法查询所有留言)并进行页面跳转(跳转到guestbook.jsp),展示留言信息(将查回的留言信息交由request带到前台进行展示);guestbook.jsp中通过request获得留言信息,然后进行展示,结合之前的“用户添加留言功能”,在guestbook.jsp中输入留言,提交之后调用addMessage.do持久化到数据库,然后跳转到当前页面guestbook.jsp,此时又调用了getMessage.do将数据库中的所有留言信息进行查询,展示到当前页面guestbook.jsp。

实现类:(结合网上商城留言板的实现——用户添加留言)

MessageDaoImpl.java(selectMessage())

GetMessageServlet.java

guestbook.jsp(完整)

代码如下:

MessageDaoImpl.java(selectMessage())

@Override
    public List<Message> selectMessage() {
        List<Message> message = new ArrayList<Message>();
        Connection connection = DBUtil.getConnection();
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;

        try {
            String sql = "select * from guestbook";

            preparedStatement = connection.prepareStatement(sql);
            resultSet = preparedStatement.executeQuery();

            while (resultSet.next()) {
                Message m = new Message();
                m.setName(resultSet.getString("name"));
                m.setTitle(resultSet.getString("title"));
                m.setContent(resultSet.getString("content"));

                message.add(m);
            }
        } catch (SQLException e) {
            throw new DataBaseException();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {

        }
        return message;
    }

GetMessageServlet.java

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ymw.dao.MessageDao;
import com.ymw.dao.MessageDaoImpl;
import com.ymw.domain.Message;
import com.ymw.exception.DataBaseException;

public class GetMessageServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doPost(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        //調用數據庫操作方法查詢留言板信息
        MessageDao messageDao=new MessageDaoImpl();
        try {
            //调用selectMessage()方法查询留言
            List<Message> message=messageDao.selectMessage();   
            request.setAttribute("message", message);
            //跳转
            request.getRequestDispatcher("guestbook.jsp").forward(request,
                    response);
        } catch (DataBaseException e) {
            e.printStackTrace();
            request.getRequestDispatcher("dataBase.jsp").forward(request,
                    response);
        } catch (Exception e) {
            e.printStackTrace();
            request.getRequestDispatcher("error.jsp")
                    .forward(request, response);
        }finally{
        }

    }

}

guestbook.jsp(当留言过多时,可以实现相应的留言分页展示功能)

<% List<Message> message = (List<Message>) request.getAttribute("message"); if (message != null) { %>

<div class="main">
        <div class="guestbook">
            <h2>全部留言</h2>
            <ul>
            <c:forEach var="message" items="${requestScope.message }">
                <li>
                    <dl>
                        <dt>${message.title }</dt>
                        <dd class="author">网友:${message.name }<span class="timer"></span></dd>
                        <dd>${message.content }</dd>
                    </dl>
                </li>
                </c:forEach>
            </ul>
            <div class="clear"></div>
            <div class="pager">
                <ul class="clearfix">
                    <li><a href="#">上一页</a></li>
                    <li class="current">1</li>
                    <li><a href="#">2</a></li>
                    <li><a href="#">3</a></li>
                    <li><a href="#">4</a></li>
                    <li><a href="#">5</a></li>
                    <li><a href="#">下一页</a></li>
                </ul>
            </div>
            <div id="reply-box">
                <form method="post" action="addMessage.do" ">
                    <table>
                        <tr>
                            <td class="field">昵称:</td>
                            <td><input class="text" type="text" name="guestName" /></td>
                        </tr>
                        <tr>
                            <td class="field">留言标题:</td>
                            <td><input class="text" type="text" name="guestTitle" /></td>
                        </tr>
                        <tr>
                            <td class="field">留言内容:</td>
                            <td><textarea name="guestContent"></textarea></td>
                        </tr>
                        <tr>
                            <td></td>
                            <td><label class="ui-blue"><input type="submit" name="submit" value="提交留言" /></label></td>
                        </tr>
                    </table>
                </form>
            </div>
        </div>
    </div>
</div>

<%} else { response.sendRedirect("getMessage.do"); } %>

你可能感兴趣的:(网上商城留言板的实现——留言展示到留言板)