eclipse项目,尾页,下一页无效
package com.imooc.jdbc.servlet;
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.imooc.jdbc.bean.Message;
import com.imooc.jdbc.service.MessageService;
/**
* 消息列表Servlet
* @author gongxiaoxiao
*
*/
public class MessageListServlet extends HttpServlet{
private MessageService messageService;
@Override
public void init() throws ServletException {
super.init();
messageService = new MessageService();
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* 分页功能
*/
String pageStr = request.getParameter("page"); //当前页码
int page = 1; //默认页码为1
if (null != pageStr && (!"".equals(pageStr))) {
try {
page = Integer.getInteger(pageStr);
} catch (Exception e) {
// TODO: handle exception
}
}
List<Message> messages = messageService.getMessages(page, 5); //获得分页查询留言
int count = messageService.countMessages();
int last = (count % 5 == 0) ? (count / 5) : (count / 5 + 1); //最后一页是第几页
request.setAttribute("messages", messages);
request.setAttribute("last", last);
request.setAttribute("page", page);
request.getRequestDispatcher("/WEB-INF/views/biz/message_list.jsp").forward(request, response);//返回页面?
}
@Override
public void destroy() {
super.destroy();
messageService = null;
}
}
package com.imooc.jdbc.service;
import java.util.List;
import com.imooc.jdbc.bean.Message;
import com.imooc.jdbc.dao.MessageDAO;
public class MessageService {
private MessageDAO messageDAO;
public MessageService() {
messageDAO = new MessageDAO();
}
/**
* 分页查询全部留言
* @param page 当前页码
* @param pageSize 每页记录数
* @return
*/
public List<Message> getMessages(int page, int pageSize){
return messageDAO.getMessages(page, pageSize);
}
/**
* 计算留言总数
* @return
*/
public int countMessages(){
return messageDAO.countMessages();
}
}
package com.imooc.jdbc.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.imooc.jdbc.bean.Message;
import com.imooc.jdbc.common.ConnectionUtil;
public class MessageDAO {
/**
* 分页查询全部留言
* @param page 当前页码
* @param pageSize 每页记录数
* @return
*/
public List<Message> getMessages(int page, int pageSize){
Connection conn = ConnectionUtil.getConnection();
PreparedStatement stat = null;
ResultSet set = null;
List<Message> messages = new ArrayList<>();
String sql = "select * from message order by create_time desc limit ?, ?";//limit m,n 从第m条数据取一共n条记录
try {
stat = conn.prepareStatement(sql);
stat.setInt(1, (page - 1)*pageSize);
stat.setInt(2, pageSize);
set = stat.executeQuery();
while (set.next()) {
messages.add(new Message(set.getLong("id"),
set.getLong("user_id"),
set.getString("content"),
set.getString("title"),
set.getString("username"),
/* rs.getDate()只是返回日期部分 java.sql.Date
rs.getTime()只是返回时间部分 java.sql.Time
rs.getTimestamp()才是返回时间和日期 java.sql.Timestamp*/
set.getTimestamp("create_time")));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
ConnectionUtil.release(set, stat, conn);
}
return messages;
}
/**
* 计算留言总数
* @return
*/
public int countMessages() {
Connection conn = ConnectionUtil.getConnection();
PreparedStatement stat = null;
ResultSet set = null;
String sql = "select count(*) total from message";
try {
stat = conn.prepareStatement(sql);
set = stat.executeQuery();
while (set.next()) {
return set.getInt("total");
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
ConnectionUtil.release(set, stat, conn);
}
return 0;
}
}
package com.imooc.jdbc.bean;
import java.sql.Date;
import java.sql.Timestamp;
public class Message {
private long id;
private long userId;
private String content;
private String title;
private String username;
private Timestamp createTime;
public Message(long id, long userId, String content, String title, String username, Timestamp createTime) {
this.id = id;
this.userId = userId;
this.content = content;
this.title = title;
this.username = username;
this.createTime = createTime;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Timestamp getCreateTime() {
return createTime;
}
public void setCreateTime(Timestamp createTime) {
this.createTime = createTime;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>JDBCMessageBoard</display-name>
<servlet>
<servlet-name>MessageListServlet</servlet-name>
<servlet-class>com.imooc.jdbc.servlet.MessageListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MessageListServlet</servlet-name>
<url-pattern>/message/list.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>LoginPromptServlet</servlet-name>
<servlet-class>com.imooc.jdbc.servlet.LoginPromptServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginPromptServlet</servlet-name>
<url-pattern>/login.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.imooc.jdbc.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/main.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>VerificationCodeImageServlet</servlet-name>
<servlet-class>com.imooc.jdbc.servlet.VerificationCodeImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>VerificationCodeImageServlet</servlet-name>
<url-pattern>/verificationCode.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/views/error/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/views/error/500.jsp</location>
</error-page>
</web-app>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
pageContext.setAttribute("basePath", basePath);
%>
<html>
<head>
<meta charset="UTF-8">
<title>留言板</title>
<link rel="stylesheet" href="${pageScope.basePath}/css/index.css">
<script type="text/javascript">
function submitMessageForm(flag) {
if ('first' == flag) {
document.getElementById('page').value = 1;
} else if ('pre' == flag) {
var current = Number(document.getElementById('page').value);
if (current > 1) {
document.getElementById('page').value = current - 1;
}
} else if ('next' == flag) {
var current = Number(document.getElementById('page').value);
var last = Number(document.getElementById('last').value);
if (current < last) {
document.getElementById('page').value = current + 1;
}
} else if ('last' == flag) {
var last = Number(document.getElementById('last').value);
document.getElementById('page').value = last < 1 ? 1 : last;
}
document.getElementById('messageForm').submit();
}
</script>
</head>
<body>
<header>
<div class="container">
<% if (null != request.getSession().getAttribute("user")) {%>
<nav>
<a href="${pageScope.basePath}/my/message/list.do">我的留言</a>
</nav>
<nav>
<a href="${pageScope.basePath}/userInfo.do">我的信息</a>
</nav>
<%} else { %>
<nav>
<a href="${pageScope.basePath}/login.do">登录</a>
<a href="${pageScope.basePath}/regPrompt.do">注册</a>
</nav>
<% } %>
</div>
</header>
<section class="banner">
<div class="container">
<div>
<h1>慕课网留言板</h1>
<p>慕课网是垂直的互联网IT技能免费学习网站。以独家视频教程、在线编程工具、学习计划、问答社区为核心特色。在这里,你可以找到最好的互联网技术牛人,也可以通过免费的在线公开视频课程学习国内领先的互联网IT技术。 </p>
</div>
</div>
</section>
<section class="main">
<div class="container">
<c:forEach items="${messages}" var="msg">
<div class="alt-item">
<div class="alt-head">
<div class="alt-info">
<span>作者:<a href="">${msg.username}</a></span>
<span>时间:<fmt:formatDate pattern="yyyy-MM-dd HH:mm:ss" value="${msg.createTime}"/></span>
</div>
</div>
<div class="alt-content">
<h3>${msg.title}</h3>
<p>${msg.content}</p>
</div>
</div>
</c:forEach>
</div>
</section>
<section class="page">
<div class="container">
<% if (null != request.getSession().getAttribute("user")) {%>
<div id="fatie">
<a href="${pageScope.basePath}/addMessagePrompt.do"><button>点我留言</button></a>
</div>
<%} else { %>
<div id="fatie">
请<a href="${pageScope.basePath}/login.do"><button>登录</button></a>后留言
</div>
<% } %>
<div id="pagefy">
<ul>
<form id="messageForm" action="${pageScope.basePath}/message/list.do" method="post">
<input type="hidden" id="page" name="page" value="${page}">
<input type="hidden" id="last" name="last" value="${last}">
<li><a href="javascript:void(0)" onclick="submitMessageForm('first')">首页</a></li>
<li><a href="javascript:void(0)" onclick="submitMessageForm('pre')">上一页</a></li>
<li><a href="javascript:void(0)">当前第${page}页</a></li>
<li><a href="javascript:void(0)" onclick="submitMessageForm('next')">下一页</a></li>
<li><a href="javascript:void(0)" onclick="submitMessageForm('last')">尾页</a></li>
</form>
</ul>
</div>
</div>
</section>
<footer>
copy@慕课网
</footer>
</body>
</html>1
收起
正在回答
3回答
你好同学,建议你在getMessage方法中打印page和pageSize这两个参数,看该方法中这两个参数的值是否为空,祝学习愉快~

慕数据0284452
2019-02-28 20:15:39
chrismorgen
2019-02-27 14:04:20
你好同学,请问你是导入老师的源码就是无效的么?祝学习愉快~
Java数据库开发与实战应用2018版
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星