不用框架的jsp增删改查重点问题

话不多说先放上我的首页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条信息&nbsp</div>
            <div style="float: right">总页数${bypage.totalPage}&nbsp</div>
                    <div style="float: right">当前第${bypage.currentPage}页&nbsp</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代码查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值