• JDBC+Servlet+jsp(增删查改)


    先在mysql新增数据库和表先,把下面的几句代码复制去到mysql运行就可以创建成功了!

     创建数据库

    create database jdbc01 character set utf8 collate utf8_general_ci;

    创建表:

    use  jdbc01;

    create table users(

           id int primary key auto_increment,

           name varchar(40),

           password varchar(40),

           email varchar(60),

           birthday date,

          sex boolean

    )ENGINE=InnoDB DEFAULT CHARSET=utf8;

     

      运行的效果:

     一、创建MVC架构的Web项目

    mysql 需要的包是

                 

    项目所需要的包

    序号

    包名

    描述

    所属层次

    1

    zhu.jdbc.domain

    相当于数据库的某张表 (只包含简单的属性以及属性对应的get和set方法,不包含具体的业务处理方法),提供给【数据访问层】、【业务处理层】、【Web层】来使用

     domain(域模型)层

    2

    zhu.jdbc.dao

    存放访问数据库的操作接口类

    数据访问层

    3

    zhu.jdbc.dao.imp

    存放访问数据库的操作接口的实现类

    4

    zhu.jdbc.service

    存放处理系统业务接口类

    业务处理层

    5

    zhu.jdbc.service.imp

    存放处理系统业务接口的实现类

    6

    zhu.jdbc.command

    相当于数据库命令的  增删查改

     相当于三层架构的(DB层)

    7

    zhu.jdbc.unit

    存放系统的通用工具类,提供给【数据访问层】、【业务处理层】、【DB层】来使用

     

    8

    zhu.jdbc.servlet

     

     Web层(相当于界面层)

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

      

     

                         

    创建好的项目如下图(图-1)所示:   

                                     

                                                  图-1

    二、代码的编写

     1. zhu.jdbc.unit的包编写

     在zhu.jdbc.unit包下创建一个UnitMysql的类(这个类是建立与mysql的链接)

                                    

     UnitMysql代码如下: 

     1 package zhu.jdbc.unit;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.PreparedStatement;
     6 import java.sql.ResultSet;
     7 import java.sql.SQLException;
     8 
     9 public class UnitMysql {
    10       public static final  String URL="jdbc:mysql://localhost:3306/jdbc01";//链接的mysql
    11         public static final String NAME = "root";
    12         public static final String PASSWORD = "root";
    13          public static final String DREIVER = "com.mysql.jdbc.Driver"; 
    14          
    15          
    16          static {
    17             try {
    18                 //加载驱动器 
    19                 Class.forName(DREIVER);
    20                 
    21                 /*//还有另一种方法,但是会加载驱动二次,通常不使用该方法
    22                 try {
    23                     DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    24                 } catch (SQLException e) { 
    25                     e.printStackTrace();
    26                 }*/
    27             } catch (ClassNotFoundException e) {
    28                 e.printStackTrace();
    29             }
    30         }
    31 
    32         public static Connection getConnection() {
    33             try {
    34                 return  DriverManager.getConnection(URL, NAME, PASSWORD);//创建与数据库的链接
    35             } catch (SQLException e) {
    36                 e.printStackTrace();
    37             }
    38             return null;
    39         }
    40 //设置一个公共的关闭链接、释放资源的方法    .   因为每次只要进行了增,删,查,改 之后 都必须要关闭事件,  那么就设置一个公共的方法
    41         //而关闭资源要从 ResultSet先关闭-->,再到 PreparedStatement-->,最后到 Connection关闭
    42         public static void Close(ResultSet rs, PreparedStatement ps, Connection conn) {
    43             if (rs != null) {
    44                 try {
    45                     rs.close();
    46                 } catch (SQLException e) {
    47                     e.printStackTrace();
    48                 }
    49             }
    50 
    51             if (ps != null) {
    52                 try {
    53                     ps.close();
    54                 } catch (SQLException e) {
    55                     e.printStackTrace();
    56                 }
    57             }
    58 
    59             if (conn != null) {
    60                 try {
    61                     conn.close();
    62                 } catch (SQLException e) {
    63                     e.printStackTrace();
    64                 }
    65             }
    66         }
    67 }

      2. 相当于三层架构的(DB层)

       在zhu.jdbc.command包下创建一个IDaoCommand的类(这个类是建立与mysql的链接)

                                         

     IDaoCommand代码如下:

     1 package zhu.jdbc.command;
     2 
     3 import java.util.List;
     4 
     5 public interface IDaoCommand<T> {
     6     //查询所有的数据
     7     public List<T> queryAllData();
     8     //新增数据
     9      public int insertData(T t);
    10      //修改数据
    11      public int update(T t); 
    12      //删除数据
    13      public int delete(int id);
    14      //查询一条数据通过ID
    15      public T queryDataById(int id);
    16 }

     

     3.      domain(域模型)层 

    zhu.jdbc.domain 包下创建一个Tb_User 类

                                              

        Tb_User 代码如下: 

     1 package zhu.jdbc.domain;
     2 
     3 import java.sql.Date;
     4  //这里相当于数据库的某张表
     5 public class Tb_User {
     6     private int id;
     7     private String name;
     8     private String password;
     9     private String email;
    10     private Date birthday;
    11     private boolean sex;
    12     
    13     public boolean isSex() {
    14         return sex;
    15     }
    16     public void setSex(boolean sex) {
    17         this.sex = sex;
    18     }
    19     public int getId() {
    20         return id;
    21     }
    22     public void setId(int id) {
    23         this.id = id;
    24     }
    25     public String getName() {
    26         return name;
    27     }
    28     public void setName(String name) {
    29         this.name = name;
    30     }
    31     public String getPassword() {
    32         return password;
    33     }
    34     public void setPassword(String password) {
    35         this.password = password;
    36     }
    37     public String getEmail() {
    38         return email;
    39     }
    40     public void setEmail(String email) {
    41         this.email = email;
    42     }
    43     public Date getBirthday() {
    44         return birthday;
    45     }
    46     public void setBirthday(Date birthday) {
    47         this.birthday = birthday;
    48     }
    49 }

       

     4.开发数据访问层(dao、dao.impl)

       2.1: dao 继承 command的命令

      在zhu.jdbc.dao包下创建一个ITb_User接口类,对于开发接口类,我习惯以字母I作类的前缀. 

                                                                

           ITb_User代码如下: 

     1 package zhu.jdbc.dao;
     2 
     3 import zhu.jdbc.command.IDaoCommand;
     4 import zhu.jdbc.domain.Tb_User;
     5 
     6 /**
     7  * 这里这个类 是为了 ,后续 添加自己需要的方法. 如:模糊查询, 分页查询....
     8  * 这个必须要继承ICommand类,那样就可以调用增删查改的方法了
     9  * @author Xiao_Zhu
    10  *
    11  */
    12 public interface ITb_User extends IDaoCommand<Tb_User> { 
    13    //自己需要的方法
    14 }

     2.2: dao.ImpI 实现 dao

      在zhu.jdbc.dao.imp包下创建一个ITb_UserImpI类                

                            

     ITb_UserImpI代码如下:    

      1 package zhu.jdbc.dao.imp;
      2 
      3 import java.sql.Connection;
      4 import java.sql.PreparedStatement;
      5 import java.sql.ResultSet;
      6 
      7 import java.sql.SQLException;
      8 import java.util.ArrayList;
      9 import java.util.List;
     10 
     11 import zhu.jdbc.dao.ITb_User;
     12 import zhu.jdbc.domain.Tb_User;
     13 import zhu.jdbc.unit.UnitMysql;
     14 
     15 /**
     16  * 实现 ITb_User类
     17  * 
     18  * @author Xiao_Zhu
     19  * 
     20  */
     21 public class ITb_UserImpI implements ITb_User {
     22     public Connection conn1 = null;
     23     public ResultSet rs = null;
     24     public PreparedStatement ps = null;
     25 
     26     // 查询所有的数据
     27     @Override
     28     public List<Tb_User> queryAllData() {
     29         conn1 = UnitMysql.getConnection();// 链接数据库
     30         List<Tb_User> list = new ArrayList<Tb_User>();
     31         try {
     32             String sqlSelect = "select * from users "; // 查询多条数据
     33             ps = conn1.prepareStatement(sqlSelect);
     34             rs = ps.executeQuery();
     35             Tb_User user = null;
     36             while (rs.next()) {
     37                 user = new Tb_User();
     38                 user.setId(rs.getInt("id"));
     39                 user.setName(rs.getString("name"));
     40                 user.setPassword(rs.getString("password"));
     41                 user.setBirthday(rs.getDate("birthday"));
     42                 user.setSex(rs.getBoolean("sex"));
     43                 list.add(user);
     44             }
     45         } catch (SQLException e) {
     46             e.printStackTrace();
     47         } finally {
     48             UnitMysql.Close(rs, ps, conn1);
     49         }
     50         return list;
     51     }
     52 
     53     // 新增
     54     @Override
     55     public int insertData(Tb_User t) {
     56         conn1 = UnitMysql.getConnection();
     57         int i = 0;
     58         try {
     59             String sqlInsert = "insert into users(name,password,email,birthday,sex) values(?,?,?,?,?) ;";
     60             ps = conn1.prepareStatement(sqlInsert,
     61                     PreparedStatement.RETURN_GENERATED_KEYS);
     62             // 这里的1,2..必须要按上面的新增的顺序来定义
     63             ps.setString(1, t.getName());
     64             ps.setString(2, t.getPassword());
     65             ps.setString(3, t.getEmail());
     66             ps.setDate(4, new java.sql.Date(t.getBirthday().getTime()));
     67             ps.setBoolean(5, t.isSex());
     68             ps.executeUpdate();
     69             rs = ps.getGeneratedKeys();// 得到 最新的 ID
     70             if (rs.next()) {// 是否存在
     71                 i = rs.getInt(1);
     72             }
     73         } catch (SQLException e) {
     74             e.printStackTrace();
     75         } finally {
     76             UnitMysql.Close(rs, ps, conn1);
     77         }
     78         return i;
     79     }
     80 
     81     // 修改
     82     @Override
     83     public int update(Tb_User t) {
     84         conn1 = UnitMysql.getConnection();
     85         int i = 0;
     86         try {
     87             String sqlUpdate = "update users set name=?, password =? ,sex=?  where id=?";
     88             ps = conn1.prepareStatement(sqlUpdate);
     89             ps.setString(1, t.getName());
     90             ps.setString(2, t.getPassword());
     91             ps.setBoolean(3, t.isSex());
     92             ps.setInt(4, t.getId());
     93             i = ps.executeUpdate();
     94         } catch (SQLException e) {
     95             e.printStackTrace();
     96         } finally {
     97             UnitMysql.Close(null, ps, conn1);
     98         }
     99         return i;
    100     }
    101 
    102     // 删除
    103     @Override
    104     public int delete(int id) {
    105         conn1 = UnitMysql.getConnection();
    106         int i = 0;
    107         try {
    108             String sqlDelete = "delete from users where id=?";
    109             ps = conn1.prepareStatement(sqlDelete);
    110             ps.setInt(1, id);
    111             i = ps.executeUpdate();
    112             if (i == 1) {
    113                 return i;
    114             }
    115         } catch (SQLException e) {
    116             e.printStackTrace();
    117         } finally {
    118             UnitMysql.Close(null, ps, conn1);
    119         }
    120         return i;
    121     }
    122 
    123     // 查询一条数据通过ID
    124     @Override
    125     public Tb_User queryDataById(int id) {
    126         conn1 = UnitMysql.getConnection();
    127         String sql = "select * from users where id=?";
    128         Tb_User user = null;
    129         if (id > 0) {
    130             try {
    131                 ps = conn1.prepareStatement(sql);
    132                 ps.setInt(1, id);
    133                 rs = ps.executeQuery();
    134                 if (rs.next()) {
    135                     user = new Tb_User();
    136                     user.setId(rs.getInt("id"));
    137                     user.setName(rs.getString("name"));
    138                     user.setPassword(rs.getString("password"));
    139                     user.setBirthday(rs.getDate("birthday"));
    140                     user.setSex(rs.getBoolean("sex"));
    141 
    142                 }
    143             } catch (SQLException e) {
    144                 e.printStackTrace();
    145             } finally {
    146                 UnitMysql.Close(null, ps, conn1);
    147             }
    148         }
    149         return user;
    150     }
    151 
    152 }

       

    5.    业务处理层(service,service.imp

    1.     .service层

     在zhu.jdbc.service包下创建一个ITb_UserService 类

                            

      ITb_UserService 如下:     

    1 package zhu.jdbc.service;
    2 
    3 import zhu.jdbc.command.IServiceCommand;
    4 import zhu.jdbc.domain.Tb_User;
    5  
    6 
    7 public interface ITb_UserService extends IServiceCommand<Tb_User>  {
    8    //这里与dao层的中的ITb_User.java是一样的意思
    9 }

      1.1 这里继承的 IServiceCommand  类是在zhu.jdbc.command下 创建一个IServiceCommand的类

                             

     代码IServiceCommand  如下: 

     1 package zhu.jdbc.command;
     2 
     3 import java.util.List;
     4 
     5 
     6 public interface IServiceCommand<T> {
     7       //查询所有的数据
     8         public List<T> queryAllData();
     9         //新增数据
    10          public boolean insertData(T t);
    11          //修改数据
    12          public boolean update(T t); 
    13          //删除数据
    14          public boolean delete(int id);
    15          //查询一条数据通过ID
    16          public T queryDataById(int id);
    17 }

     

     2.     service.imp层 

    //这里的 service层要想与 dao层(BAL层逻辑层)建立联系那么必须要 创建  dao层的对象  

       在zhu.jdbc.service.imp包下创建一个ITb_UserServiceImpI 类

                   

     ITb_UserServiceImpI 代码如下:

                 

     1 package zhu.jdbc.service.imp;
     2 
     3 import java.sql.Connection;
     4 import java.sql.PreparedStatement;
     5 import java.sql.ResultSet;
     6 import java.util.List;
     7 
     8 import zhu.jdbc.dao.ITb_User;
     9 import zhu.jdbc.dao.imp.ITb_UserImpI;
    10 import zhu.jdbc.domain.Tb_User;
    11 import zhu.jdbc.service.ITb_UserService;
    12 /**
    13  * 链接与dao层的链接
    14  * @author Xiao_Zhu
    15  *
    16  */
    17 public class ITb_UserServiceImpI  implements ITb_UserService{
    18     public Connection conn1 = null;
    19     public ResultSet rs = null;
    20     public PreparedStatement ps = null;
    21     boolean b=false;
    22     //这里的 service层要想玉 dao层(BAL层逻辑层)建立联系那么必须要 创建  dao层的对象  
    23    ITb_User  myiTb_User=new ITb_UserImpI();//创建了 dao层的ITb_UserImp对象 
    24 
    25     //查询所有数据
    26     @Override 
    27     public List<Tb_User> queryAllData() {
    28          
    29         return myiTb_User.queryAllData();
    30     }
    31     
    32     //新增  
    33     @Override
    34     public boolean insertData(Tb_User t) {
    35         if (t!=null) {  myiTb_User.insertData(t);
    38                  b=true; 
    39 }
    41          return b;
    42     }
    43     
    44     //修改
    45     @Override
    46     public boolean update(Tb_User t) {
    47         if (t!=null) { 
    48              myiTb_User.update(t);
    50                  b=true; 
    51 }
    53          return b;
    54     }
    55     //删除
    56     @Override
    57     public boolean delete(int id) {
    58         if (id!=0) {  
    59                  myiTb_User.delete(id);
    60                  b=true;  
    61         }
    62          return b;
    63     }
    64    //查询一条数据
    65     @Override
    66     public Tb_User queryDataById(int id) {
    67          if (id!=0) {
    68         return myiTb_User.queryDataById(id);
    69         }
    70          else {
    71             return null;
    72         }
    73     }
    74 
    75 }

     

      6.   Web层(相当于界面层)

     在zhu.jdbc.servlet包下创建一个Servlet_TbUser 类

                          

      创建的Servlet_TbUser类要在web配置

                           

       web的配置内容如下: 

     1   
     2   <!--Servlet_TbUser.java的配置--> 
     3     <servlet> 
     4     <servlet-name>Servlet_TbUser</servlet-name>
     5     <servlet-class>zhu.jdbc.servlet.Servlet_TbUser</servlet-class>
     6   </servlet> 
     7   <servlet-mapping>
     8     <servlet-name>Servlet_TbUser</servlet-name>
     9     <url-pattern>/zhu/Servlet_TbUser</url-pattern> 
    10   </servlet-mapping>

     

        Servlet_TbUser  代码如下:

         

      1 package zhu.jdbc.servlet;
      2 
      3 import java.io.IOException;
      4 import java.sql.Date;
      5 import java.text.ParseException;
      6 import java.text.SimpleDateFormat;
      7 import java.util.List;
      8 
      9 import javax.servlet.ServletException;
     10 import javax.servlet.http.HttpServlet;
     11 import javax.servlet.http.HttpServletRequest;
     12 import javax.servlet.http.HttpServletResponse;
     13 
     14 import zhu.jdbc.domain.Tb_User;
     15 import zhu.jdbc.service.ITb_UserService;
     16 import zhu.jdbc.service.imp.ITb_UserServiceImpI;
     17 
     18 public class Servlet_TbUser extends HttpServlet {
     19 
     20     /**
     21      * 
     22      */
     23     private static final long serialVersionUID = 1L;
     24 
     25      //这里建立 与service层的  联系  创建一个service层imp的某个的对   
     26     ITb_UserService myITb_UserService=new ITb_UserServiceImpI();
     27     
     28     @Override
     29     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
     30             throws ServletException, IOException {
     31         doPost(req, resp);
     32     }
     33 
     34     @Override
     35     protected void doPost(HttpServletRequest request, HttpServletResponse response)
     36             throws ServletException, IOException {
     37          request.setCharacterEncoding("UTF-8");//解决乱码
     38          String type=request.getParameter("who"); 
     39          //新增
     40          if("Insert".equals(type)){
     41              Insert(request, response);
     42             }
     43             else if("update".equals(type)){
     44                 update(request, response);
     45             } 
     46             else if("queryById".equals(type)){
     47                 queryById(request, response);
     48             } 
     49             else if("delete".equals(type)){
     50                 delete(request, response);
     51             } 
     52             else if("queryAll".equals(type)){
     53                 queryAll(request, response);
     54             } 
     55     }
     56 //新增
     57      public void Insert(HttpServletRequest request, HttpServletResponse response)
     58                 throws ServletException, IOException {
     59          //这里jsp中name专递过来的参数
     60          String name=request.getParameter("name");
     61          String birthday=request.getParameter("birthday");
     62          String password=request.getParameter("password");
     63          String email=request.getParameter("email");
     64          String sex=request.getParameter("sex");
     65           //把获取到的这些值放到user里
     66         Tb_User user =new Tb_User();
     67         
     68          try {
     69             //下面两句是把 string 转换为  sql类型的 时间格式
     70              SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
     71             user.setBirthday(new Date(sdf.parse(birthday).getTime()));
     72         } catch (ParseException e1) { 
     73             e1.printStackTrace();
     74         }
     75          
     76          user.setEmail(email);
     77          user.setName(name) ;
     78          user.setPassword(password);  
     79          if ("1".equals(sex)) {
     80              user.setSex(true);
     81         }
     82          else if ("0".equals(sex)) {
     83              user.setSex(false);
     84         } 
     85          //最后调用服务来添加
     86         String message=null; 
     87          if (myITb_UserService.insertData(user)==true) { 
     88              queryAll(request, response); 
     89         }
     90          else {
     91              message="新增失败!!!";
     92              request.setAttribute("msg", message);
     93                 request.getRequestDispatcher("/index.jsp").forward(request, response); 
     94         }
     95         
     96         
     97      }
     98     //修改 
     99      public void update(HttpServletRequest request, HttpServletResponse response)
    100                 throws ServletException, IOException {
    101           String name=request.getParameter("name");
    102           String birthday=request.getParameter("birthday");
    103          String password=request.getParameter("password");
    104 //     String email=request.getParameter("email");
    105          String sex=request.getParameter("sex");
    106          String id=request.getParameter("id");
    107           //把获取到的这些值放到user里
    108          Tb_User user =new Tb_User(); 
    109          try {
    110             //下面两句是把 string 转换为  sql类型的 时间格式
    111              SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
    112             user.setBirthday(new Date(sdf.parse(birthday).getTime()));
    113         } catch (ParseException e1) { 
    114             e1.printStackTrace();
    115         }
    116          user.setId(Integer.parseInt(id));
    117     //     user.setEmail(email);
    118          user.setName(name) ;
    119          user.setPassword(password);  
    120          if ("1".equals(sex)) {
    121              user.setSex(true);
    122         }
    123          else if ("0".equals(sex)) {
    124              user.setSex(false);
    125         }  
    126          boolean b=  myITb_UserService.update(user); 
    127           if (b==true) { 
    128                  queryAll(request, response); 
    129             }
    130              else { 
    131                  request.setAttribute("msg", "修改失败!!");
    132                     request.getRequestDispatcher("/index.jsp").forward(request, response); 
    133             }
    134          
    135      }
    136      //查询一条数据
    137      public void queryById(HttpServletRequest request, HttpServletResponse response)
    138                 throws ServletException, IOException { 
    139              Tb_User user=null; 
    140               String  id=  request.getParameter("id");   
    141               System.out.println(id);
    142               user=   myITb_UserService.queryDataById(Integer.parseInt(id) ); 
    143             request.setAttribute("user", user);
    144             request.getRequestDispatcher("/jsp/User.jsp").forward(request, response);
    145      }
    146      //删除
    147      public void delete(HttpServletRequest request, HttpServletResponse response)
    148                 throws ServletException, IOException {  
    149             String  id= request.getParameter("id");   
    150              System.out.println(id);
    151              boolean  message=myITb_UserService.delete(Integer.parseInt(id)); 
    152              if (message==true) { 
    153                  queryAll(request, response); 
    154             }
    155              else {
    156                  
    157                  request.setAttribute("msg", "删除失败!!");
    158                     request.getRequestDispatcher("/index.jsp").forward(request, response); 
    159             }
    160      }
    161      //查询所有的数据
    162      public void queryAll(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
    163              List<Tb_User> lis=myITb_UserService.queryAllData(); 
    164              request.setAttribute("list", lis);
    165                  request.getRequestDispatcher("/jsp/User.jsp").forward(request, response);
    166         }
    167       
    168 }

     三、创建jsp

     

        User的代码如下:

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%
     3     String path = request.getContextPath();
     4     String basePath = request.getScheme() + "://"
     5             + request.getServerName() + ":" + request.getServerPort()
     6             + path + "/";
     7 %>
     8 <!--    c标签要使用,那么就必须要有它 -->
     9 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    10 <c:set scope="page" var="url"
    11     value="${pageContext.request.contextPath }"></c:set>
    12  
    13 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    14 <html>
    15 <head>
    16 <base href="<%=basePath%>">
    17 
    18 <title>新增用户</title>
    19 
    20 <meta http-equiv="pragma" content="no-cache">
    21 <meta http-equiv="cache-control" content="no-cache">
    22 <meta http-equiv="expires" content="0">
    23 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    24 <meta http-equiv="description" content="This is my page"> 
    25  
    26 
    27 </head>
    28 
    29 <body>
    30     <div align="center"
    31         style=" 400px; position: relative;left:450px">
    32         <form action="${url}/zhu/Servlet_TbUser?who=Insert" method="post">
    33             <h4>新增用户</h4>
    34             姓名: <input type="text" name="name"><br />
    35              密码: <input    type="text" name="password"><br /> 
    36              出生日期 : <input type="text" name="birthday"><br /> 
    37              性别: <select name="sex">
    38                 <option value="0"></option>
    39                 <option value="1"></option>
    40             </select><br /> 
    41             <input type="submit" value="新增"/>
    42             <hr />
    43         </form>
    44     </div> 
    45     <div align="center"style=" 400px; position: relative;left:450px;">
    46         <form action="${url}/zhu/Servlet_TbUser?who=queryAll" method="post"> 
    47              <input type="submit" value="查询所有的数据"/> <br/>
    48             <table border="1"  cellspacing="0"> 
    49                  <thead>
    50                   <tr><td>ID</td><td>姓名</td><td>密码</td><td>日期</td><td>性别</td><td>操作</td></tr>
    51                  </thead>
    52                  <tbody>
    53          <c:forEach items="${list}" var="list">
    54          <tr>
    55                 <td>${list.id }</td>
    56                 <td>${list.name }</td>
    57                 <td>${list.password }</td>
    58                 <td>${list.birthday }</td> 
    59                 <td><c:if test="${list.sex==false }"></c:if>
    60                 <c:if test="${list.sex==true }"></c:if></td>
    61                  <td><a  href= "${url}/zhu/Servlet_TbUser?who=queryById&id=${list.id}"     style='text-decoration:none'    onclick='update(this)'   >修改&nbsp;</a> 
    62                     <a    href= "${url}/zhu/Servlet_TbUser?who=delete&id=${list.id}"   style='text-decoration:none'     >删除</a>  </td> 
    63          </tr>
    64          </c:forEach>
    65                  </tbody>
    66             </table>
    67             <hr />
    68         </form>
    69     </div> 
    70     <div align="center"
    71         style=" 400px; position: relative;left:450px">
    72         <form action="${url}/zhu/Servlet_TbUser?who=update" method="post">
    73             <h4>修改用户</h4>
    74             <input type="hidden"name="id"  value="${user.id }"/>
    75             姓名: <input type="text" name="name" value="${user.name }"><br />
    76              密码: <input    type="text" name="password" value="${user.password }"><br /> 
    77              出生日期 : <input type="text" name="birthday" value="${user.birthday }"><br />  
    78           性别:<c:if test="${user.sex==false }">
    79                   <select name="sex" >
    80                 <option value="0"></option>
    81                 <option value="1"></option>
    82                </select> 
    83                   </c:if>
    84               <c:if test="${user.sex==true }">
    85                   <select name="sex" >
    86                   <option value="1"></option>
    87                 <option value="0"></option> 
    88               </select>
    89                   </c:if><br /> 
    90             <input type="submit" value="保存修改"/>
    91             <hr />
    92         </form>
    93     </div>
    94 </body>
    95 </html>

      index.jsp代码如下: 

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     
    12     <title>My JSP 'index.jsp' starting page</title>
    13     <meta http-equiv="pragma" content="no-cache">
    14     <meta http-equiv="cache-control" content="no-cache">
    15     <meta http-equiv="expires" content="0">    
    16     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    17     <meta http-equiv="description" content="This is my page">
    18     <!--
    19     <link rel="stylesheet" type="text/css" href="styles.css">
    20     -->
    21   </head>
    22   
    23   <body>
    24     <h1>${msg }</h1> <br>
    25   </body>
    26 </html>

     

     四、运行效果:   

        

     

      源码下载地址:       https://pan.baidu.com/s/1bQKEAi

        

  • 相关阅读:
    .NET/C#程序开发中如何更优美地实现失败任务重试的逻辑?
    ava.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
    mysql安装到这里不能下去了,怎么解决
    win10安装jdk8点击下一步没反应,点击下一步闪退,win10安装jdk8失败
    运行打包的jar,jar中没有主清单属性
    idea如何打包项目(java)
    关于idea(eclipse同样适用,都是一样的步骤)无法导入Javafx包的问题及解决方案:
    Intellij idea 报错:Error : java 不支持发行版本5
    Class.getResource("xxx.css")得到值为null
    jdk11安装没有jre文件夹
  • 原文地址:https://www.cnblogs.com/zhu520/p/6913650.html
Copyright © 2020-2023  润新知