jsp+servlet实现增删改查,分页,批量删除

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/GXXxasm/article/details/71240353

主要配置

  • oracle

  • tomcat服务器


新建javaweb项目
1、打开项目,选择javaEE
新建javaweb1
2、点击‘File–New,选择Dynamic web Project
这里写图片描述
3、填写项目名称等信息,点finish

这里写图片描述

ORACLE部分
oracle完全卸载重装

电脑若已经安装过oracle但是没有卸载干净,会影响重新安装

具体可看原文链接http://blog.csdn.net/svygh123/article/details/50948036

  • 添加JDBC.jar

    右键新建的javaweb项目->build path->add external archives
    导jdbc.jar
    本次使用的是oracle11,导入ojdbc.jar
    tomcat配置
    window->preference
    配置tomcat

实现增删改查

  • 项目整体框架
  • 这里写图片描述
    这里写图片描述

user.java文件

package modle;

public class user {

    private String pn_name;//跑男姓名
    private String pn_number;//跑男编号,主键
    private String pn_sex;//跑男性别
    private String pn_able;//跑男能力
    private int pn_winnum;//跑男获胜次数
    private int allcount;//跑男总人数
    public String getPn_name() {
        return pn_name;
    }
    public int getAllcount() {
        return allcount;
    }
    public void setAllcount(int allcount) {
        this.allcount = allcount;
    }
    public void setPn_name(String pn_name) {
        this.pn_name = pn_name;
    }
    public String getPn_number() {
        return pn_number;
    }
    public void setPn_number(String pn_number) {
        this.pn_number = pn_number;
    }
    public String getPn_sex() {
        return pn_sex;
    }
    public void setPn_sex(String pn_sex) {
        this.pn_sex = pn_sex;
    }
    public String getPn_able() {
        return pn_able;
    }
    public void setPn_able(String pn_able) {
        this.pn_able = pn_able;
    }
    public int getPn_winnum() {
        return pn_winnum;
    }
    public void setPn_winnum(int pn_winnum) {
        this.pn_winnum = pn_winnum;
    }   
}

就是定义的javabean,简单的get set方法

JDBCDao.java文件

package jdbcconnet;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import modle.user;

public class JDBCDao {
    public static void main(String[] args)
    {
        //在这里调用各种方法;
    }
///////////////////////////////////////查询所有信息
    public static List searchall()
    {
        List<user> runman = new ArrayList<user>();
        Connection con = null;//创建一个数据库连接
        PreparedStatement pre = null;//创建预编译语句对象
        ResultSet result = null;//创建一个结果集对象
        try
        {       
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("开始尝试连接数据库");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "test1";
            String password = "guanxx";
            con = DriverManager.getConnection(url, user, password);
            System.out.println("连接成功");
            String sql = "select * from information ";//预编译语句,?代表参数
            pre = con.prepareStatement(sql);
            result = pre.executeQuery();//执行查询,括号不需要再加参数

            while (result.next())
            {
                user u = new user(); 
                 //创建user对象,将返回结果添加到新建的runman的list中
                u.setPn_name(result.getString("pn_name")); 
                u.setPn_number(result.getString("pn_number")); 
                u.setPn_sex(result.getString("pn_sex"));
                u.setPn_able(result.getString("pn_able"));
                u.setPn_winnum(result.getInt("pn_winnum"));
                runman.add(u);      
                }       
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{
            try
            {
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("数据库连接已关闭,数据打印如下:");
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
        return runman;
    }

///////////分页查询需要调用的方法,相较于searchall方法只是sql语句的改变 

    public static List searchallindifferencepage(int pagesize,int pageindex)
    {
        //pagesize为每页显示的条数,pageindex为当前页数
        int startnum = pagesize*(pageindex-1)+1;//数据库查询起始行
        int endnum = pagesize*pageindex;//数据库查询结束行
        List<user> runman = new ArrayList<user>();
        Connection con = null;//创建一个数据库连接
        PreparedStatement pre = null;//创建预编译语句对象
        ResultSet result = null;//创建一个结果集对象 
        String sql = "select * from (select rownum as r,t.* from (select a.* from information a order by pn_number desc) t where rownum<="+endnum+") where r>="+startnum+"";
        //三层嵌套,获取起始行和结束行之间的数据,可添加排序
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("开始尝试连接数据库");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "test1";
            String password = "guanxx";
            con = DriverManager.getConnection(url, user, password);
            System.out.println("连接成功");
            pre = con.prepareStatement(sql);
            result = pre.executeQuery();//执行查询,括号不需要加参数             
            while (result.next())
            {
                user u = new user();  
                u.setPn_name(result.getString("pn_name")); 
                u.setPn_number(result.getString("pn_number")); 
                u.setPn_sex(result.getString("pn_sex"));
                u.setPn_able(result.getString("pn_able"));
                u.setPn_winnum(result.getInt("pn_winnum"));
                runman.add(u);      
                }

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{
            try
            {
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("数据库连接已关闭,数据打印如下:");
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
        return runman;
    }

////////////////////////获取表格总行数,用于分页时计算最大页数

    public static int getcount()
    {
        int count = 0;
        Connection con = null;//创建一个数据库连接
        PreparedStatement pre = null;//创建预编译语句对象
        ResultSet result = null;//创建一个结果集对象
        String sql = "select count(*) from information";
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("开始尝试连接数据库");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "test1";
            String password = "guanxx";
            con = DriverManager.getConnection(url, user, password);
            pre = con.prepareStatement(sql); 
            result = pre.executeQuery();
            while(result.next()){  
              count=result.getInt(1); 
            } 

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{
            try
            {
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
        return count;
    } 
    //////////////////////跟getcount()方法一起使用,得到最大页数
    public int getTotalPage(int pageSize){  
         int totalPage=getcount();  
         return (totalPage%pageSize==0)?(totalPage/pageSize):(totalPage/pageSize+1);  
     }


    ////////////////////////////////按条件查询
    public static List searchsome(String id1,String id2,String id3,String id4,String id5)
    {       
        String sql = "select * from information ";
        //因为需要判断哪些输入框没有输入值,所以sql语句需要动态添加
        int num = 5;
        //有5个需要判断是否输入的文本框
        String getid1 = id1;
        String getid2 = id2;
        String getid3 = id3;
        String getid4 = id4;
        String getid5 = id5;
        String [] a = {getid1,getid2,getid3,getid4,getid5};
        String [] pnforsql = {"pn_name","pn_number","pn_sex","pn_able","pn_winnum"};

        for(int i=0;i<a.length;i++)
        {
            if(a[i] == null || a[i].length() <= 0)
            //循环判断,得到不为空的文本框的个数
                num--;
        }       
        if(num==0)
        {
            sql = "select * from information";
            //如果没有输入,直接全量搜索
        }
        else if (num==1)
        {
            //如果只有一个查询条件,则不需要加入and
            for(int i=0;i<a.length;i++)
            {
                if(a[i] == null || a[i].length() <= 0)
                {
                }
                else
                {
                    sql = "select * from information where "+pnforsql[i]+" like '"+a[i]+"'";
                    //循环判断哪个字段不为空,加入sql语句;
                }
            }
        }
        else 
        {
            //一个以上的查询条件,需要使用and,先全部添加,再去掉最后一个
            String sql1 = "";
            for(int i=0;i<a.length;i++)
            {
                if(a[i] == null || a[i].length() <= 0)
                {
                }
                else
                {
                    sql1 = sql1+pnforsql[i]+" like '"+a[i]+"'"+" and ";
                }
            }
            sql1 = " where "+sql1.substring(0,sql1.length()-4);
            //去掉sql后面4位;
            sql = sql+sql1;
        }
        List<user> runman = new ArrayList<user>();
        Connection con = null;//创建一个数据库连接
        PreparedStatement pre = null;//创建预编译语句对象
        ResultSet result = null;//创建一个结果集对象
        String sql111 = "select * from information";
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("开始尝试连接数据库");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "test1";
            String password = "guanxx";
            con = DriverManager.getConnection(url, user, password);
            System.out.println("连接成功");
            pre = con.prepareStatement(sql);
            result = pre.executeQuery();//执行查询,括号不需要再加参数


            while (result.next())
            {
                user u = new user();  
                u.setPn_name(result.getString("pn_name")); 
                u.setPn_number(result.getString("pn_number")); 
                u.setPn_sex(result.getString("pn_sex"));
                u.setPn_able(result.getString("pn_able"));
                u.setPn_winnum(result.getInt("pn_winnum"));
                runman.add(u);      
                }

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{
            try
            {
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("数据库连接已关闭,数据打印如下:");
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
        return runman;
    }

    ///////////查询一个跑男信息,用于修改时先将值至于前台页面;
    public static List searchaone(String i)
    {
        //i为前台点击修改时传过来的pn_number信息
        String win = "'"+i+"'";
        List<user> runman = new ArrayList<user>();
        Connection con = null;//创建一个数据库连接
        PreparedStatement pre = null;//创建预编译语句对象
        ResultSet result = null;//创建一个结果集对象

        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("开始尝试连接数据库");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "test1";
            String password = "guanxx";
            con = DriverManager.getConnection(url, user, password);
            System.out.println("连接成功");
            String sql = "select * from information where pn_name like"+win+""; //预编译语句,?代表参数
            pre = con.prepareStatement(sql);
            result = pre.executeQuery();//执行查询,括号不需要再加参数


            while (result.next())
            {
                user u = new user();  
                u.setPn_name(result.getString("pn_name")); 
                u.setPn_number(result.getString("pn_number")); 
                u.setPn_sex(result.getString("pn_sex"));
                u.setPn_able(result.getString("pn_able"));
                u.setPn_winnum(result.getInt("pn_winnum"));
                runman.add(u);      
                }

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{
            try
            {
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("数据库连接已关闭,数据打印如下:");
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
        return runman;
    }

    ////////////////////////修改,先将查询到的一个跑男信息置于前台页面,没有修改的也将其值传过来进行更新;
    public static void update(String id1,String id2,String id3,String id4,String id5)
    {
        Connection con = null;//创建一个数据库连接
        PreparedStatement pre = null;//创建预编译语句对象
        ResultSet result = null;//创建一个结果集对象
        String pnname = "'"+id1+"'";
        String pnnumber = "'"+id2+"'";
        String pnsex = "'"+id3+"'";
        String pnable = "'"+id4+"'";
        String pnwinnum = "'"+id5+"'";
        String sql = "update information set pn_name ="+pnname+", pn_sex="+pnsex+", pn_able="+pnable+",pn_winnum="+pnwinnum+"where pn_number="+pnnumber+"";
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("开始尝试连接数据库");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "test1";
            String password = "guanxx";
            con = DriverManager.getConnection(url, user, password);
            System.out.println("连接成功,准备更新数据");
            pre = con.prepareStatement(sql); 
            result = pre.executeQuery();

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{
            try
            {
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("更新成功:");
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
    }
    /////批量删除,前台检查CheckBox的勾选状态,将勾选的行信息的pn_number存于数组传参过来   
    public static void deletelots(String i[])
    {
        Connection con = null;//创建一个数据库连接
        PreparedStatement pre = null;//创建预编译语句对象
        ResultSet result = null;//创建一个结果集对象
        String [] win = i;       
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("开始尝试连接数据库");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "test1";
            String password = "guanxx";
            con = DriverManager.getConnection(url, user, password);
            System.out.println("连接成功,准备删除");
            if (win.length>0){
                for(int j=0;j<win.length;j++){
                    String sql = "delete from information where pn_number= '"+win[j]+"'";
                    System.out.println(sql);
                    pre = con.prepareStatement(sql);     
                    result = pre.executeQuery();
                }
            }


            System.out.println("删除成功:");

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{
            try
            {
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("删除成功:");
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }

    }



    ////////////////////////插入数据时候使用

    public static void insert(String id1,String id2,String id3,String id4,String id5)
    {
        Connection con = null;//创建一个数据库连接
        PreparedStatement pre = null;//创建预编译语句对象
        ResultSet result = null;//创建一个结果集对象
        String pnname = "'"+id1+"'";
        String pnnumber = "'"+id2+"'";
        String pnsex = "'"+id3+"'";
        String pnable = "'"+id4+"'";
        String pnwinnum = "'"+id5+"'";
        String sql = "insert into information (pn_name,pn_number,pn_sex,pn_able,pn_winnum) values ("+pnname+","+pnnumber+","+pnsex+","+pnable+","+pnwinnum+")";
        System.out.println(sql);
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("开始尝试连接数据库");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "test1";
            String password = "guanxx";
            con = DriverManager.getConnection(url, user, password);
            System.out.println("连接成功,准备插入数据");
            pre = con.prepareStatement(sql); 
            result = pre.executeQuery();

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{
            try
            {
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("插入成功:");
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
    }

    /////////////////单条记录删除
    public static void deletenum(String i)
    {
        Connection con = null;//创建一个数据库连接
        PreparedStatement pre = null;//创建预编译语句对象
        ResultSet result = null;//创建一个结果集对象
        String win = i;
        String sql = "delete from information where pn_number="+win+""; 
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("开始尝试连接数据库");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "test1";
            String password = "guanxx";
            con = DriverManager.getConnection(url, user, password);
            System.out.println("连接成功,准备删除");
            pre = con.prepareStatement(sql);
//          pre.setInt(1, i); 
//          pre.executeUpdate();  
            result = pre.executeQuery();
            System.out.println("删除成功:");

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{
            try
            {
                if (result != null)
                    result.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("删除成功:");
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }

    }   
}

FindallServlet.java文件

package hellotest;

import java.io.IOException;
import java.util.List;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import modle.user;
import jdbcconnet.JDBCDao;

public class FindallServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try
        {
            JDBCDao jdbcdao = new JDBCDao();
            int pagesize = 5;//每页显示的条数
            int totalpages = jdbcdao.getTotalPage(pagesize);//获取最大页数
            int pageIndex = 0;
            if(request.getParameter("pageIndex")==null)
            {
                pageIndex = 1;
            }
            else
            {
                pageIndex = Integer.valueOf(request.getParameter("pageIndex")); 

                if(pageIndex<1)
                {
                    pageIndex = 1;
                    }
                else if (pageIndex>totalpages)
                {
                    pageIndex = totalpages;
                    }   
            }

        List list = jdbcdao.searchallindifferencepage(pagesize, pageIndex);
        //severlet核心代码?
        request.setAttribute("list", list);//request设置传输数据的tag("list")和对象(list);
        request.setAttribute("pageIndex", pageIndex);
        request.setAttribute("totalpages", totalpages);
        }
        catch(Exception  e)
        {
            e.printStackTrace();
        }

        //请求转发到指定URL,是服务器端跳转
        request.getRequestDispatcher("runman-list.jsp").forward(request, response);  

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request,response);
    }
}

此处为了实现分页功能,使用了searchallindifferencepage(pagesize, pageIndex)方法,如果不需要分页,可以直接调用searchall方法;

runman_list.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">
<%@page import="java.util.List"%>  
<%@page import="modle.user"%>  
<%@page import="jdbcconnet.JDBCDao"%>  

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>所有跑男信息</title>
</head>


<body>

<%
int  pageIndex = (Integer)request.getAttribute("pageIndex"); 
//获取上面request.setAttribute("pageIndex", pageIndex);
int  totalpages = (Integer)request.getAttribute("totalpages"); 
%>

<table align="center" width="500" border="1" height="180"  
        bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1">
    <tr bgcolor="white">  
                <td align="center" colspan="7">  
                    <h2>列举所有的跑男的信息</h2>  
                </td>  
            </tr>  
            <tr align="center" bgcolor="#e1ffc1">  
            <td><b>姓名</b></td>  
            <td><b>特工编号</b></td>  
            <td><b>性别</b></td>  
            <td><b>能力</b></td>  
            <td><b>胜出次数</b></td>  
            <td><b>修改</b></td>  
            <td><b>删除</b></td>  
        </tr> 
        <%  
            // 获取跑男信息集合  

        List list = (List) request.getAttribute("list");  
            // 判断集合是否有效  
            if (list == null || list.size() < 1) {  
                out.print("没有数据!");  
            } else 
            {  
                // 遍历跑男集合中的数据  
                for (int i=0;i<list.size();i++)
                {
                    user us= (user)list.get(i);
                    %> 
                    <tr align="center"  bgcolor="white">  
                    <td><%=us.getPn_name()%></td>  
                    <td><%=us.getPn_number()%></td>  
                    <td><%=us.getPn_sex()%></td>  
                    <td><%=us.getPn_able()%></td>  
                    <td><%=us.getPn_winnum()%></td>  
                    <td >  
                        <a href="UpdateServlet?num=<%=us.getPn_name()%>">修改</a>   
                    </td>          
                    <td><a href="DeleteServlet?id=<%=us.getPn_number()%>">删除</a> </td> 
                </tr>
<%
                }
            }
        %> 
        <form name="insert" method="post" action="insert.jsp">
            <input type="submit" bgcolor="white" value="插入新数据" align="bottom" colspan="7">
            </form>

        <form name="search" method="post" action="Searchsome.jsp">
            <input type="submit" bgcolor="white" value="按条件查询" align="bottom" colspan="7">
            </form>
  </table>
        <a href="FindallServlet?pageIndex=1">首页</a>  

        <a href="FindallServlet?pageIndex=<%=pageIndex=pageIndex-1 %>">上一页</a>  
        <a href="FindallServlet?pageIndex=<%=pageIndex=pageIndex+2 %>">下一页</a>  
        <a href="FindallServlet?pageIndex=<%=totalpages%>">末页</a>  
        <br/>  
        <p style="color:red"">当前页数:<%=pageIndex-1%></p> 

</body>
</html>
    <form name="search" method="post" action="Searchsome.jsp">
        <input type="submit" bgcolor="white" value="按条件查询" align="bottom" colspan="7">
        </form>
        按条件查询以及插入新数据为跳转按钮

分页查询展示如下:
这里写图片描述

点击修改时:
UpdateServlet.java

package hellotest;

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 modle.user;
import jdbcconnet.JDBCDao;

public class UpdateServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        String num = String.valueOf(request.getParameter("num")); 
        String id = new String(num.getBytes("iso8859-1"),"utf8");
        //获取前台传值并转码;
        JDBCDao jdbc = new JDBCDao();
        List list = jdbc.searchaone(id);
        user us= (user)list.get(0);
        request.setAttribute("Pn_name", us.getPn_name());
        request.setAttribute("Pn_number", us.getPn_number());
        request.setAttribute("Pn_sex", us.getPn_sex());
        request.setAttribute("Pn_able", us.getPn_able());
        request.setAttribute("Pn_winnum", us.getPn_winnum());       

        request.getRequestDispatcher("UpdateServlet.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
//      super.doPost(request, response);
    }

}

主要是为了将行信息展示到前台,方便修改更新;

UpdateServlet.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>

<table align="center" width="500" border="1" height="90"  
        bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1">
            <tr align="center" bgcolor="#e1ffc1">  
            <td><h2>姓名</h2></td>  
            <td><h2>特工编号</h2></td>  
            <td><h2>性别</h2></td>  
            <td><h2>能力</h2></td>  
            <td><h2>胜出次数</h2></td>  
        </tr> 

        <form name="thisform" method="post" action="UpdateFinshServlet">




        <tr align="center"  bgcolor="white">
        <td>
        <input type="text"  id="Pn_name" name="Pn_name" value="${Pn_name}"/>
        </td>
        <td>
        <input type="text" id="Pn_number" name="Pn_number" value="${Pn_number}"/>
        </td>
        <td>
        <input type="text" id="Pn_sex" name="Pn_sex" value="${Pn_sex}"/>
        </td>
        <td>
        <input type="text" id="Pn_able" name="Pn_able" value="${Pn_able}"/>
        <td>
        <input type="text" id="Pn_winnum" name="Pn_winnum" value="${Pn_winnum}"/>
        </td>
        </tr>

       <input type="button" bgcolor="white" value="确认修改" align="bottom" colspan="7" onclick="sel()" > 
         //点击监听
       </form> 
       //点击监听函数
       <script language="javascript">  
 function sel(){  
     document.thisform.submit();   
}  

</script> 
    </table>
</body>
</html>

点击确认修改的时候需要设置一下点击监听,调用form.submit提交后台;

这里写图片描述

更改需要更改的信息,点击“确认修改”,指定到UpdateFinshServlet

UpdateFinshServlet.java

package hellotest;

import java.io.IOException;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jdbcconnet.JDBCDao;

public class UpdateFinshServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub

        //int id = Integer.valueOf(request.getParameter("id")); 
        String id1 = String.valueOf(request.getParameter("Pn_name")); 
        String Pn_name = new String(id1.getBytes("iso8859-1"),"utf8");

        String id2 = String.valueOf(request.getParameter("Pn_number")); 
        String Pn_number = new String(id2.getBytes("iso8859-1"),"utf8");

        String id3 = String.valueOf(request.getParameter("Pn_sex")); 
        String Pn_sex = new String(id3.getBytes("iso8859-1"),"utf8");

        String id4 = String.valueOf(request.getParameter("Pn_able")); 
        String Pn_able = new String(id4.getBytes("iso8859-1"),"utf8");

        String id5 = String.valueOf(request.getParameter("Pn_winnum")); 
        String Pn_winnum = new String(id5.getBytes("iso8859-1"),"utf8");

        System.out.println(Pn_winnum+Pn_name+Pn_number+Pn_able);


        JDBCDao.update(Pn_name, Pn_number, Pn_sex, Pn_able, Pn_winnum);
//      jdbc.update(id1, id2, id3, id4, id5);
        response.sendRedirect("FindallServlet");

//      super.doGet(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
//      super.doPost(request, response);
        doGet(request, response);
    }
}

跳转回findall,更新输出信息;

单个删除
DeleteServlet .java

package hellotest;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jdbcconnet.JDBCDao;

public class DeleteServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub

        String id = request.getParameter("id"); 
        JDBCDao jdbc = new JDBCDao();
        jdbc.deletenum(id);

        response.sendRedirect("FindallServlet");

//      super.doGet(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
//      super.doPost(request, response);
        doGet(request, response);
    }
}

简单的删除然后跳转findall

插入新数据
InsertServlet.java

package hellotest;

import java.io.IOException;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jdbcconnet.JDBCDao;

public class InsertServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub

        String id1 = String.valueOf(request.getParameter("Pn_name")); 
        String Pn_name = new String(id1.getBytes("iso8859-1"),"utf8");

        String id2 = String.valueOf(request.getParameter("Pn_number")); 
        String Pn_number = new String(id2.getBytes("iso8859-1"),"utf8");

        String id3 = String.valueOf(request.getParameter("Pn_sex")); 
        String Pn_sex = new String(id3.getBytes("iso8859-1"),"utf8");

        String id4 = String.valueOf(request.getParameter("Pn_able")); 
        String Pn_able = new String(id4.getBytes("iso8859-1"),"utf8");

        String id5 = String.valueOf(request.getParameter("Pn_winnum")); 
        String Pn_winnum = new String(id5.getBytes("iso8859-1"),"utf8");

        System.out.println(Pn_winnum+Pn_name+Pn_number+Pn_able);


        JDBCDao.insert(Pn_name, Pn_number, Pn_sex, Pn_able, Pn_winnum);
        response.sendRedirect("FindallServlet");

//      super.doGet(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
//      super.doPost(request, response);
        doGet(request, response);
    }
}

insert.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">
<%@page import="java.util.List"%>  
<%@page import="modle.user"%>  
<%@page import="jdbcconnet.JDBCDao"%>  


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>插入页面</title>


</head>
<body>

<table align="center" width="500" border="1" height="90"  
        bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1">
            <tr align="center" bgcolor="#e1ffc1">  
            <td><h2>姓名</h2></td>  
            <td><h2>特工编号</h2></td>  
            <td><h2>性别</h2></td>  
            <td><h2>能力</h2></td>  
            <td><h2>胜出次数</h2></td>  
        </tr> 

       <form name="thisform" method="post" action="InsertServlet">

        <tr align="center"  bgcolor="white">
        <td>
        <input type="text"  id="Pn_name" name="Pn_name" value=""/>
        </td>
        <td>
        <input type="text" id="Pn_number" name="Pn_number" value=""/>
        </td>
        <td>
        <input type="text" id="Pn_sex" name="Pn_sex" value=""/>
        </td>
        <td>
        <input type="text" id="Pn_able" name="Pn_able" value=""/>
        <td>
        <input type="text" id="Pn_winnum" name="Pn_winnum" value=""/>
        </td>
        </tr>



        <input type="button" bgcolor="white" value="确认插入" align="bottom" colspan="7" onclick="sel()" > 


       </form> 

       <script language="javascript">  

 function sel(){  

     document.thisform.submit();  

}  

</script> 
    </table>

</body>
</html>

主页面点击插入新数据后跳转到insert.jsp,输入信息点击确认输入之后跳转InsertServlet后台执行插入,再跳转FindallServlet

点击按条件查询:
SearchsomeServlet .java

package hellotest;

    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 jdbcconnet.JDBCDao;

    public class SearchsomeServlet  extends HttpServlet {

        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // TODO Auto-generated method stub

            String id1 = String.valueOf(request.getParameter("Pn_name")); 
            String Pn_name = new String(id1.getBytes("iso8859-1"),"utf8");

            String id2 = String.valueOf(request.getParameter("Pn_number")); 
            String Pn_number = new String(id2.getBytes("iso8859-1"),"utf8");

            String id3 = String.valueOf(request.getParameter("Pn_sex")); 
            String Pn_sex = new String(id3.getBytes("iso8859-1"),"utf8");

            String id4 = String.valueOf(request.getParameter("Pn_able")); 
            String Pn_able = new String(id4.getBytes("iso8859-1"),"utf8");

            String id5 = String.valueOf(request.getParameter("Pn_winnum")); 
            String Pn_winnum = new String(id5.getBytes("iso8859-1"),"utf8");

            System.out.println(Pn_name+Pn_number+Pn_sex+Pn_able+Pn_winnum);

            String [] a = {Pn_name,Pn_number,Pn_sex,Pn_able,Pn_winnum};
            if(a[1] == null || a[1].length() <= 0);
            {
                System.out.println("Pn_number==null");
            }
            JDBCDao jdbc = new JDBCDao();



            try
            {

            List list = jdbc.searchsome(Pn_name,Pn_number,Pn_sex,Pn_able,Pn_winnum);
            request.setAttribute("list", list);
            }
            catch(Exception  e)
            {
                e.printStackTrace();
            }

            //请求转发到指定URL,是服务器端跳转
            request.getRequestDispatcher("Searchsome.jsp").forward(request, response);  

//          super.doGet(request, response);
        }

        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
//          super.doPost(request, response);
            doGet(request, response);
        }
}

Searchsome.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">
<%@page import="java.util.List"%>  
<%@page import="modle.user"%>  
<%@page import="jdbcconnet.JDBCDao"%>  

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>查询页面</title>

<script type="text/javascript">
    function CheckAll(elementsA, elementsB) {
        for (i = 0; i < elementsA.length; i++) {
            if(elementsA[i].checked == true)
            {
                elementsA[i].checked = false;
            }
            else
                elementsA[i].checked = true;
        }
        if (elementsB.checked == false) {
            for (j = 0; j < elementsA.length; j++) {
                elementsA[j].checked = false;
            }
        }
    }
    //判断用户是否选择了要删除的记录,如果是,则提示“是否删除”;否则提示“请选择要删除的记录”
    function checkdel(delid, formname) {
        var flag = false;
        for (i = 0; i < delid.length; i++) {
            if (delid[i].checked) {
                flag = true;
                break;
            }
        }
        if (!flag) {
            alert("请选择要删除的记录!");
            return false;
        } else {
            if (confirm("确定要删除吗?")) {
                formname.submit();
            }
        }
    }
</script>

</head>
<body>

<table align="center" width="500" border="1" height="90"  
        bordercolor="white" bgcolor=black cellpadding="1" cellspacing="1">
            <tr align="center" bgcolor="#e1ffc1">  
            <td><h2>姓名</h2></td>  
            <td><h2>特工编号</h2></td>  
            <td><h2>性别</h2></td>  
            <td><h2>能力</h2></td>  
            <td><h2>胜出次数</h2></td>  
            <td><h2>删除</h2></td>  
        </tr> 

       <form name="thisform" method="post" action="SearchsomeServlet">

        <tr align="center"  bgcolor="white">
        <td>
        <input type="text"  id="Pn_name" name="Pn_name" value="${Pn_name}"/>
        </td>
        <td>
        <input type="text" id="Pn_number" name="Pn_number" value="${Pn_number}"/>
        </td>
        <td>
        <input type="text" id="Pn_sex" name="Pn_sex" value="${Pn_sex}"/>
        </td>
        <td>
        <input type="text" id="Pn_able" name="Pn_able" value="${Pn_able}"/>
        <td>
        <input type="text" id="Pn_winnum" name="Pn_winnum" value="${Pn_winnum}"/>
        </td>
        <td>
        <input type="text" />
        </td>
        </tr>



        <input type="button" bgcolor="white" value="按条件查询" align="bottom" colspan="7" onclick="sel()" > 


       </form> 

    <form name="frm" method="post" action="DeleteAllServlet">
     <%  
            // 获取跑男信息集合  

        List list = (List) request.getAttribute("list");  
            // 判断集合是否有效  
            if (list == null || list.size() < 1) {  
                out.print("没有数据!");  
            } else 
            {  
                // 遍历跑男集合中的数据  
                for (int i=0;i<list.size();i++)
                {
                    user us= (user)list.get(i);
                    %> 
                    <tr align="center"  bgcolor="white">  
                    <td><%=us.getPn_name()%></td>  
                    <td><%=us.getPn_number()%></td>  
                    <td><%=us.getPn_sex()%></td>  
                    <td><%=us.getPn_able()%></td>  
                    <td><%=us.getPn_winnum()%></td>  
                    <td><input name="delid" type="checkbox"
                    class="noborder" value="<%=us.getPn_number()%>"></td>
<%
                }
            }
        %> 

        <footer>
            <input name="checkbox" type="checkbox" class="noborder"
                onClick="CheckAll(frm.delid,frm.checkbox)"> [全选/反选] [
                <a style="color:red;cursor:pointer;" onClick="checkdel(frm.delid,frm)">删除</a>]
            <div id="ch" style="display: none">
                <input name="delid" type="checkbox" value="0">
            </div>
            <!--层ch用于放置隐藏的checkbox控件,因为当表单中只是一个checkbox控件时,应用javascript获得其length属性值为undefine-->
        </footer>

       </form> 


<script language="javascript">  
 function sel(){  

     document.thisform.submit();  

}  

</script> 
    </table>

</body>
</html>

这里写图片描述

这里除了查询还加入了全选以及删除的CheckBox,便于查询出相应的条件删除;
查询功能是先前台展示,输入值点击查询之后,跳转SearchsomeServlet.java 处理数据,将数据展示回Searchsome.jsp,点击全选框等处理函数在Searchsome.jsp中,点击删除的时候,跳转到DeleteAllServlet.java处理选中的数据,DeleteAllServlet.java处理完后跳转回FindallServlet.java中。
DeleteAllServlet.java

package hellotest;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jdbcconnet.JDBCDao;

public class DeleteAllServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub

        String ID[]=request.getParameterValues("delid"); 
        for(int i=0;i<ID.length;i++)
        {
            System.out.println(ID[i]);
        }
        JDBCDao jdbc = new JDBCDao();
        jdbc.deletelots(ID);
        response.sendRedirect("FindallServlet");

//      super.doGet(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
//      super.doPost(request, response);
        doGet(request, response);
    }
}

最后,新建servelet的时候,记得到WebContent->WEB-INF->LIB->web.xml文件下注册

<servlet>
    <servlet-name>FindallServlet</servlet-name>
    <servlet-class>hellotest.FindallServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>FindallServlet</servlet-name>
    <url-pattern>/FindallServlet</url-pattern>
</servlet-mapping>

时间比较紧,很多代码没有优化,不过应该比较容易理解

展开阅读全文

没有更多推荐了,返回首页