登陆页面login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陆页面</title>
</head>
<body>
<%
String flag = (String)request.getAttribute("flag");
if(flag!=null){
out.print("<div style='font-size:36px;color:red;text-align:center'>"+flag+"</div>");
}
%>
<form action="LoginServlet01" method="get">
<table align="center" width="500px" frame="box" rules="rows">
<tr><td>用户名</td><td><input type="text" size="20" name="username"></td></tr>
<tr><td>密码</td><td><input type="password" size="20" name="password"></td></tr>
<tr><td colspan="2"><input type="submit" value="登录"></td></tr>
</table>
</form>
</body>
</html>
model包下建Book.java
package model;
public class Book {
private String id;
private String name;
private String author;
private String publish;
private Double price;
private String des;
public Book() {
super();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPublish() {
return publish;
}
public void setPublish(String publish) {
this.publish = publish;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public String getDes() {
return des;
}
public void setDes(String des) {
this.des = des;
}
}
注:其中调用JdbcUtil.java工具类,详细参考本人优快云博客文章JdbcUtil工具类
login.jsp跳转controller包下的LoginServlet01.java
package controller;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.Test;
import JdbcUtil.JdbcUtil;
import model.Book;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet01")
public class LoginServlet01 extends HttpServlet {
JdbcUtil jdbc=new JdbcUtil();
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置请求的编码格式
request.setCharacterEncoding("UTF-8");
String username=request.getParameter("username");
String passward=request.getParameter("password");
boolean flag=query(username,passward);
if(flag) {
//将request转为session保存用户名
request.getSession().setAttribute("username", username);
//页面跳转QueryServlet作页码查询控制操作
request.getRequestDispatcher("QueryServlet").forward(request,response);
}else {
request.setAttribute("flag", "用户名或密码错误,请重新输入");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
public List<Book> query_book() {
try {
String sql="select * from tb_book";
ResultSet rs=jdbc.Query(sql,null);
List<Book> books=new ArrayList<Book>();
while(rs.next()) {
Book book=new Book();
book.setId(rs.getString(1));
book.setName(rs.getString(2));
book.setAuthor(rs.getString(3));
book.setPublish(rs.getString(4));
book.setPrice(rs.getDouble(5));
book.setDes(rs.getString(6));
books.add(book);
}
return books;
} catch (Exception e) {
e.printStackTrace();
} finally {
jdbc.close();
}
return null;
}
public boolean query(String username,String password) {
try {
String sql="select * from tb_users where username=? and password=?";
ResultSet rs=jdbc.Query(sql, username,password);
if(rs.next()) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
jdbc.close();
}
return false;
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
flag为false时跳转QueryServlet(注解的跳转地址),同在controller下的QueryServlet.java
package controller;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.Test;
import JdbcUtil.JdbcUtil;
import model.Book;
import util.CommonUtil;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/QueryServlet")
public class QueryServlet extends HttpServlet {
JdbcUtil jdbc=new JdbcUtil();
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String index=request.getParameter("pageIndex");
int pageindex=1;
if(index!=null) {
pageindex=Integer.parseInt(index);
}
//传递页码到jsp页面
request.setAttribute("pageIndex", pageindex);
String sql="select * from tb_book limit " +(pageindex-1)*CommonUtil.pageSize+","+CommonUtil.pageSize+"";
ResultSet rs=jdbc.Query(sql,null);
List<Book> books=new ArrayList<Book>();
while(rs.next()) {
Book book=new Book();
book.setId(rs.getString(1));
book.setName(rs.getString(2));
book.setAuthor(rs.getString(3));
book.setPublish(rs.getString(4));
book.setPrice(rs.getDouble(5));
book.setDes(rs.getString(6));
books.add(book);
}
//求总页数
int totalCount=totalCount();
int totalPage=totalCount%CommonUtil.pageSize==0?totalCount/CommonUtil.pageSize:totalCount/CommonUtil.pageSize+1;
request.setAttribute("pageIndex", pageindex);
request.setAttribute("totalPage", totalPage);
//传递列表结果集到JSP页面
request.setAttribute("books", books);
//传递列表的结果集到JSP页面
request.getRequestDispatcher("index.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
} finally {
jdbc.close();
}
}
private int totalCount() {
try {
String sql="select count(*) from tb_book";
ResultSet rs=jdbc.Query(sql, null);
int totalCount=0;
if(rs.next()) {
totalCount=rs.getInt(1);
}
return totalCount;
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
util包下的CommonUtil.java设置每页显示的条数
package util;
public class CommonUtil {
public static int pageSize=5;//每页显示5条
}
成功页面index.jsp(EL&JSTL)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*,model.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>成功登陆页面</title>
</head>
<body>
欢迎用户:${username } 登陆系统!!!
<table align="center" frame="box" rules="all" width="600px">
<thead>
<th>id</th>
<th>name</th>
<th>author</th>
<th>publish</th>
<th>price</th>
<th>des</th>
</thead>
<tbody>
<c:forEach items="${books}" var="book">
<tr>
<td>${book.id }</td>
<td>${book.name }</td>
<td>${book.author }</td>
<td>${book.publish }</td>
<td>${book.price }</td>
<td>${book.des }</td>
</tr>
</c:forEach>
</tbody>
</table>
<a href="QueryServlet?pageIndex=1">首页</a>
<c:if test="${pageIndex!=1 }">
<a href="QueryServlet?pageIndex=${pageIndex-1 }">上一页</a>
</c:if>
<!--设置中间 -->
<c:forEach begin="1" end="${totalPage }" varStatus="status">
<a href="QueryServlet?pageIndex=${status.index }">${status.index }</a>
</c:forEach>
...
<c:if test="${pageIndex!=totalPage }">
<a href="QueryServlet?pageIndex=${pageIndex+1 }">下一页</a>
<a href="QueryServlet?pageIndex=${totalPage }">尾页</a>
</c:if>
</body>
</html>