话不多说先放上我的首页jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>课程列表</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- //for-mobile-apps -->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<style>
body{
background-image: url("images/banner.jpg");
}
.container{
position: absolute;
left: 10%;
}
</style>
</head>
<body>
<div style="float: left;width: 5%;border-right: pink 1px solid ;height: 100%">
<div style="text-align: center"><a href="/findbypage?currentpage=999&size=5"><input type="submit" value="学生课表"></a></div>
<div style="text-align: center"><a href="/findbypage?currentpage=999&size=5"><input type="submit" value="个人课表"></a></div>
</div>
<div class="container" style="float: right">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="page-header">
<h1>
<small>${name1}同学你好! —— 显示所有课程</small>
<a href="/selfone?stuid=${stuid1}">显示个人信息</a>
</h1>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4 column">
<a class="btn btn-primary" href="insert.jsp">新增</a>
<form style="float:right;" action="/findbypage" method="post">
<input type="text" value="输入想要查询的课程" name="chaxunkecheng" onFocus="this.value = '';">
<input type="submit" value="查询">
</form>
</div>
</div>
<div class="row clearfix">
<div class="col-md-12 column">
<table class="table table-hover table-striped">
<thead>
<tr>
<th>课程</th>
<th>剩余人数</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${bypage.list}">
<tr>
<td>${list.coursename}</td>
<td>${list.nums}</td>
<td><a href="/delete?courseone=${list.coursename}">删除</a>|
<a href="/tofind?course1=${list.coursename}">修改</a></td>
</tr>
</c:forEach>
</tbody>
</table>
<a href="/findbypage?currentpage=1&size=5">首页</a>
<c:forEach var="i" begin="1" end="${bypage.totalPage}" step="1">
<a href="/findbypage?currentpage=${i}&size=5">${i}</a>
</c:forEach>
<a href="/findbypage?currentpage=${bypage.totalPage}&size=5">尾页</a>
<c:if test="${bypage.currentPage<bypage.totalPage}">
<div style="float: right"><a href="/findbypage?currentpage=${bypage.currentPage+1}&size=5">下一页</a></div>
</c:if>
<c:if test="${bypage.currentPage>1}">
<div style="float: right"><a href="/findbypage?currentpage=${bypage.currentPage-1}&size=5">上一页</a></div>
</c:if>
<div style="float: right">每页显示5条信息 </div>
<div style="float: right">总页数${bypage.totalPage} </div>
<div style="float: right">当前第${bypage.currentPage}页 </div>
</div>
</div>
</div>
登入界面的servlet的代码放下好了
public class HelloServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
String xi=request.getParameter("xuehao");
int xuehao=Integer.parseInt(xi);
String password=request.getParameter("mima");
IuserImpl iuser=new UserserviceImpl();
IcourseService icourseService=new CourseserviceImpl();
Istudent istudent=new StudentImpl();
String stuname =istudent.stuSelect(xuehao).getName();
int stuid =istudent.stuSelect(xuehao).getId();
HttpSession httpSession1=request.getSession();
httpSession1.setAttribute("name1",stuname);
httpSession1.setAttribute("stuid1",stuid);
boolean ff=iuser.Ifture(xuehao,password);
// String yzm=request.getParameter("yztext");
// String yzmm=request.getParameter("yzm");
// if (!yzm.equals(yzmm)){
// request.getRequestDispatcher("index.jsp").forward(request,response);
// }
if (ff){
request.getRequestDispatcher("/findbypage").forward(request,response);
}
else {
request.getRequestDispatcher("Zhuce.jsp").forward(request,response);
}
}
}
我们这边后续会碰到一个存放的问题 一般而言jsp中不涉及计算所以我们这边计算设置一个新的包pojo包 内容如下 设置5个初始页,每页显示的个数,返回的list,总页数,总数据。
public class Pageinfo {
int currentPage;
int size;
List<Course> list;
int totalPage;
int totalCount;
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public List<Course> getList() {
return list;
}
public void setList(List<Course> list) {
this.list = list;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
@Override
public String toString() {
return "Pageinfo{" +
"currentPage=" + currentPage +
", size=" + size +
", list=" + list +
", totalPage=" + totalPage +
", totalCount=" + totalCount +
'}';
}
}
这边只贴一个设置的代码 dao包中太多也无法全贴
findBypage为limit %?%的size数据,count为总的数据用来分页
public Pageinfo findBypage(int current, int size) {
Pageinfo pageinfo = new Pageinfo();
pageinfo.setCurrentPage(current);
pageinfo.setSize(size);
int start = (current - 1) * 5;
List<Course> bypage = course.findBypage(start, size);
System.out.println(bypage);
pageinfo.setList(bypage);
int count = course.findnum();
pageinfo.setTotalCount(count);
pageinfo.setTotalPage((count - 1 )/5 + 1);
return pageinfo;
}
}
在这里插入代码片
查的servlet
重点为一开始为post 再次只用a连接查询时为get请求所以一开始我们为post请求可以给他初始化 后面下一页跟分页的下一个为同理
public class FindbyPage extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession httpSession=req.getSession();
int current= Integer.parseInt(req.getParameter("currentpage"));
int size= Integer.parseInt(req.getParameter("size"));
IcourseService icourseService=new CourseserviceImpl();
if (current==999){
httpSession.removeAttribute("key");
current=1;
}
String key = (String) httpSession.getAttribute("key");
Pageinfo bypage=null;
if (key==null){
bypage = icourseService.findBypage(current, size);
}
else {
bypage = icourseService.Scoursemohu(key,current,size);
}
System.out.println(bypage);
httpSession.setAttribute("bypage",bypage);
req.getRequestDispatcher("allCourse.jsp").forward(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String key=req.getParameter("chaxunkecheng");
int current= 1;
int size= 5;
IcourseService icourseService=new CourseserviceImpl();
Pageinfo bypage=null;
HttpSession httpSession=req.getSession();
if (key==null){
bypage = icourseService.findBypage(current,size);
}
else {
bypage = icourseService.Scoursemohu(key,current,size);
}
httpSession.setAttribute("key",key);
httpSession.setAttribute("bypage",bypage);
req.getRequestDispatcher("allCourse.jsp").forward(req,resp);
}
}
增加的代码
public class InsertServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
String updatecoursename=req.getParameter("insertcoursename");
String num=req.getParameter("insertnum");
IcourseService icourseService=new CourseserviceImpl();
icourseService.ScourseInsert(updatecoursename,num);
HttpSession httpSession=req.getSession();
Pageinfo bypage = icourseService.findBypage(1, 5);
httpSession.setAttribute("bypage",bypage);
req.getRequestDispatcher("allCourse.jsp").forward(req,resp);
}
}
改的代码是相对复杂的,第一我们的id是自增的 也是不允许修改的,所以我们先要吧id传进来 在传到jsp中在用代码去修改所以有2个servlet代码。
这是吧${user.id}传进来的
public class ToUpdateServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
String course=req.getParameter("course1");
IcourseService icourseService=new CourseserviceImpl();
Course course1=icourseService.ScourseFindone(course);
HttpSession session = req.getSession();
session.setAttribute("course",course1);
req.getRequestDispatcher("update.jsp").forward(req,resp);
}
}
此代码为用于修改的servlet jsp的就不贴了 有多种方法。
public class UpdateServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String updatecoursename=req.getParameter("coursecoursename");
System.out.println(updatecoursename);
String num=req.getParameter("updatenum");
IcourseService icourseService=new CourseserviceImpl();
icourseService.ScourseUpdata(updatecoursename,num);
Pageinfo bypage = icourseService.findBypage(1, 5);
HttpSession httpSession=req.getSession();
httpSession.setAttribute("bypage",bypage);
req.getRequestDispatcher("allCourse.jsp").forward(req,resp);
}
}
delete相对来说也简单 当然代码还没有优化
public class DelectServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
IcourseService icourseService=new CourseserviceImpl();
String a=req.getParameter("courseone");
icourseService.ScourseDelect(a);
Pageinfo bypage = icourseService.findBypage(1, 5);
HttpSession httpSession=req.getSession();
httpSession.setAttribute("bypage",bypage);
req.getRequestDispatcher("allCourse.jsp").forward(req,resp);
}
}
现在就完成了 只是贴了代码 其实分页也已经完成了 我用的是if的判断语句
请翻到findbyPage的servlet代码查看