JSP页面使用举例(单表的增删查功能实现)

主要内容:
用JSP页面实现学生表的增加记录、删除记录和查询记录功能。

一、前端代码

(1)主页面main.jsp

<%@page import="cn.sdut.po.Student"%>
<%@page import="cn.sdut.dao.StudentDao"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
         String path = request.getContextPath();
         String basePath = request.getScheme() + "://"
                            + request.getServerName() + ":" + request.getServerPort()
                            + path + "/";
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’main.jsp’ starting page</title>

         <meta http-equiv="pragma" content="no-cache">
         <meta http-equiv="cache-control" content="no-cache">
         <meta http-equiv="expires" content="0">   
         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
         <meta http-equiv="description" content="This is my page">
         <!--
         <link rel="stylesheet" type="text/css" href="styles.css">
         -->

  </head>

  <body>
  <%
       StudentDao studentDao = new StudentDao();
       List<Student> list = studentDao.queryAll();
       int i=1;
  %>

   <table width="537" height="90" border="1">
     <caption>学生管理</caption>
     <tr>
      <th width="56">序号
    <th width="77">姓名</td>
    <th width="107">出生年月</td>
    <th width="92">成绩</td>
    <th width="171">操作</td>
    </tr>

  <% for(Student student:list){  %>
    <tr>
   <td align="center"><%=i++ %> </td>
   <td align="center"><%=student.getName()%> </td>
   <td align="center"><%=student.getBirthday() %> </td>
   <td align="center"><%=student.getScore() %></td>
   <td align="center">
      <a href="doDelete.jsp?id=<%=student.getId() %>">删除</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      <a href=""> 修改</a>
   </td>
   </tr>
 <% } %>
   </table>
   <br>
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
   <a href="add.jsp">增加学生</a>

  </body>
</html>

(2)增加数据add.jsp和增加数据处理页面doAdd.jsp

add.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’add.jsp’ starting page</title>

         <meta http-equiv="pragma" content="no-cache">
         <meta http-equiv="cache-control" content="no-cache">
         <meta http-equiv="expires" content="0">   
         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
         <meta http-equiv="description" content="This is my page">
         <!--
         <link rel="stylesheet" type="text/css" href="styles.css">
         -->
         <script src="js/calendar.js"></script>
  </head>

  <body>
  <form name="form1" method="post" action="doAdd.jsp">

    <table width="388" border="1">
      <caption>增加学生<br>
      </caption>
      <tr>
        <td width="165" height="42" align="right">姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名:</td>
        <td width="207"><input type="text" name="name" id="name"></td>
      </tr>
      <tr>
        <td height="43" align="right">出生年月:</td>
        <td><input type="text" name="birthday" id="birthday" onclick="new Calendar().show(this)" ></td>
      </tr>
      <tr>
        <td height="57" align="right">成&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 绩:</td>
        <td><input type="text" name="score" id="score"></td>
      </tr>
      <tr>
        <td height="59" colspan="2" align="center"><input type="submit" name="OK" id="OK" value="提交">
         &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
          <input type="reset" name="Cancel" id="Cancel" value="重置"></td>
      </tr>
    </table>
  </form>

  </body>
</html>

doAdd.jsp

<%@page import="cn.sdut.dao.StudentDao"%>
<%@page import="cn.sdut.po.Student"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP ’doAdd.jsp’ starting page</title>
         <meta http-equiv="pragma" content="no-cache">
         <meta http-equiv="cache-control" content="no-cache">
         <meta http-equiv="expires" content="0">   
         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
         <meta http-equiv="description" content="This is my page">
         <!--
         <link rel="stylesheet" type="text/css" href="styles.css">
         -->
  </head>

  <body>
   <%
      //1 获得来自客户端输入的数据.
      request.setCharacterEncoding("utf-8");
      String name=request.getParameter("name");
      String birthday=request.getParameter("birthday");
      float score=Float.parseFloat(request.getParameter("score"));  

     //2 封装成Student对象
     Student student=new Student();
     student.setName(name);
     student.setBirthday(birthday);
     student.setScore(score);

     //3 StudentDao类的方法add(Student stu),存入表中
     StudentDao studentDao=new StudentDao();
     int result=studentDao.addStudent(student);

     //4 转向main.jsp  
    %>
    <jsp:forward page="main.jsp"></jsp:forward>
  </body>
</html>

(3)删除处理页面doDel.jsp

<%@page import="cn.sdut.dao.StudentDao"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’doDelete.jsp’ starting page</title>

         <meta http-equiv="pragma" content="no-cache">
         <meta http-equiv="cache-control" content="no-cache">
         <meta http-equiv="expires" content="0">   
         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
         <meta http-equiv="description" content="This is my page">
         <!--
         <link rel="stylesheet" type="text/css" href="styles.css">
         -->

  </head>

  <body>
   <%
     //1 获得客户端数据
     int id=Integer.parseInt(request.getParameter("id"));    
     //2 利用StudentDao类的delStudent(id)方法删除
     StudentDao dao=new StudentDao();
     int result=dao.delStudent(id);

     //3 回到main.jsp
    %>
    <jsp:forward page="main.jsp"></jsp:forward>
  </body>
</html>

(4)修改页面updateStudent.jsp 和修改处理页面updateStudent.jsp

updateStudent.jsp

<%@page import="cn.sdut.po.Student"%>
<%@page import="cn.sdut.dao.StudentDao"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’add.jsp’ starting page</title>

         <meta http-equiv="pragma" content="no-cache">
         <meta http-equiv="cache-control" content="no-cache">
         <meta http-equiv="expires" content="0">   
         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
         <meta http-equiv="description" content="This is my page">
         <!--
         <link rel="stylesheet" type="text/css" href="styles.css">
         -->
         <script src="js/calendar.js"></script>
  </head>

  <%
       //1 从客户端接收id
       int id=Integer.parseInt(request.getParameter("id"));

       //2 利用StudentDao类queryStudentById方法得到Student对象
                StudentDao studentDao=new StudentDao();
                Student stu=studentDao.queryStudentById(id);
   %>


  <body>
  <form name="form1" method="post" action="doUpdate.jsp">

    <table width="388" border="1">
      <caption>修改学生信息<br>
      </caption>
      <tr>
        <td width="165" height="42" align="right">姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名:</td>
        <td width="207">
        <input type="text" name="name" id="name" value="<%=stu.getName() %>"></td>
      </tr>
      <tr>
        <td height="43" align="right">出生年月:</td>
        <td>
        <input type="text" name="birthday" id="birthday" onclick="new Calendar().show(this)" value="<%=stu.getBirthday()%>"></td>
      </tr>
      <tr>
        <td height="57" align="right">成&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 绩:</td>
        <td>
        <input type="text" name="score" id="score" value="<%=stu.getScore() %>"></td>
      </tr>
      <tr>
        <td height="59" colspan="2" align="center">
        <input type="submit" name="OK" id="OK" value="提交">
         &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
          <input type="reset" name="Cancel" id="Cancel" value="重置"></td>

      </tr>
    </table>
       <input type="hidden" name="id" value="<%=stu.getId() %>"/>
  </form>
  </body>
</html>

(5)修改处理页面updateStudent.jsp

<%@page import="cn.sdut.dao.StudentDao"%>
<%@page import="cn.sdut.po.Student"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String   basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’doUpdate.jsp’ starting page</title>

         <meta http-equiv="pragma" content="no-cache">
         <meta http-equiv="cache-control" content="no-cache">
         <meta http-equiv="expires" content="0">   
         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
         <meta http-equiv="description" content="This is my page">
         <!--
         <link rel="stylesheet" type="text/css" href="styles.css">
         -->

  </head>

  <body>
    <%
       //1 从客户端获得信息,封装成Student类对象
       request.setCharacterEncoding("utf-8");

       int id=Integer.parseInt(request.getParameter("id"));
       String name=request.getParameter("name");
       String birthday=request.getParameter("birthday");
       float score=Float.parseFloat(request.getParameter("score"));

       Student stu=new Student();
       stu.setId(id);
       stu.setName(name);
       stu.setBirthday(birthday);
       stu.setScore(score);

       //2 利用StudentDao类的update方法,修改表中的记录
       StudentDao studentDao=new StudentDao();
       studentDao.updateStudent(stu);

       //3 转向main.jsp   
     %>
       <jsp:forward page="main.jsp"></jsp:forward>
  </body>
</html>

二、后台代码

(1)cn.sdut.dao包

cn.sdut.dao.baseDao.java
package cn.sdut.dao;

import java.sql.*;

public class BaseDao {
         // 1 定义公用的变量,con,pst,rs
         Connection con;
         PreparedStatement pst;
         ResultSet rs;

         // 2 得到数据库的连接——方法
         public Connection getConn() {
                   try {
                            Class.forName("com.mysql.jdbc.Driver");
                            con = DriverManager.getConnection(
                                               "jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf-8", "root", "usbw");
                   } catch (ClassNotFoundException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                   } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                   }
                   return con;
         }

         // 3 关闭con,pst,rs
         public void closeAll() {
                   try {
                            if (rs != null) {
                                     rs.close();
                            }
                            if (pst != null) {
                                     pst.close();
                            }
                            if(con!=null)
                            {
                                     con.close();
                            }

                   } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                   }
         }
}

cn.sdut.dao.studentDao.java

package cn.sdut.dao;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import cn.sdut.po.Student;

public class StudentDao extends BaseDao {
         // 1 增加记录
         public int addStudent(Student stu)
         {
                   int result=0;
                   con=getConn();
                   String sql="insert into student(name,birthday,score) values(?,?,?)";
                   try {
                            pst=con.prepareStatement(sql);
                            pst.setString(1, stu.getName());
                            pst.setString(2,stu.getBirthday());
                            pst.setFloat(3, stu.getScore());
                            result=pst.executeUpdate();

                   } catch (SQLException e) {
                            e.printStackTrace();
                   }
                   finally
                   {
                            closeAll();
                   }                
                   return result;
         }

         // 2 删除记录
         public int delStudent(int id)
         {
                   int result=0;
                   con=getConn();
                   String sql="delete from student where id=?";
                   try {
                            pst=con.prepareStatement(sql);
                            pst.setInt(1, id);

                            result=pst.executeUpdate();

                   } catch (SQLException e) {
                            e.printStackTrace();
                   }
                   finally
                   {
                            closeAll();
                   }
                   return result;
         }
         // 3 修改记录
         public int updateStudent(Student stu)
         {
                   int result=0;
                   con=getConn();
                   String sql="update student set name=?,birthday=?,score=? where id=?";
                   try {
                            pst=con.prepareStatement(sql);
                            pst.setString(1, stu.getName());
                            pst.setString(2,stu.getBirthday());
                            pst.setFloat(3, stu.getScore());
                            pst.setInt(4, stu.getId());
                            result=pst.executeUpdate();

                   } catch (SQLException e) {
                            e.printStackTrace();
                   }
                   finally
                   {
                            closeAll();
                   }
                   return result;
         }
         // 4 查询所有记录
         public List<Student> queryAll()
         {
                   List<Student> stuList=new ArrayList<Student>();
                   con=getConn();
                   String sql="select * from student";
                   try {
                            pst=con.prepareStatement(sql);
                            rs=pst.executeQuery();
                            while(rs.next())
                            {
                                     Student stu=new Student();
                                     stu.setId(rs.getInt(1));
                                     stu.setName(rs.getString(2));
                                     stu.setBirthday(rs.getString(3));
                                     stu.setScore(rs.getFloat(4));
                                     stuList.add(stu);
                            }                          
                   } catch (SQLException e) {
                            e.printStackTrace();
                   }
                   finally
                   {
                            closeAll();
                   }

                   return stuList;
         }

         //5 根据主键查询当前记录信息
         public Student queryStudentById(int id)
         {
                   Student stu=new Student();
                   con=getConn();
                   String sql="select * from student where id=?";
                   try {
                            pst=con.prepareStatement(sql);
                            pst.setInt(1, id);
                            rs=pst.executeQuery();
                            if(rs.next())
                            {
                                     stu.setId(rs.getInt(1));
                                     stu.setName(rs.getString(2));
                                     stu.setBirthday(rs.getString(3));
                                     stu.setScore(rs.getFloat(4));

                            }                          
                   } catch (SQLException e) {
                            e.printStackTrace();
                   }
                   finally
                   {
                            closeAll();
                   }

                   return stu;
         }
}

(2)cn.sdut.po包

cn.sdut.po.Student.java
package cn.sdut.po;

public class Student {
         private int id;
         private String name;
         private String birthday;
         private float score;
         public Student(String name, String birthday, float score) {
                   super();
                   this.name = name;
                   this.birthday = birthday;
                   this.score = score;
         }
         public Student() {
                   super();
         }
         public int getId() {
                   return id;
         }
         public void setId(int id) {
                   this.id = id;
         }
         public String getName() {
                   return name;
         }
         public void setName(String name) {
                   this.name = name;
         }
         public String getBirthday() {
                   return birthday;
         }
         public void setBirthday(String birthday) {
                   this.birthday = birthday;
         }
         public float getScore() {
                   return score;
         }
         public void setScore(float score) {
                   this.score = score;
         }
         @Override
         public String toString() {
                   return "Student [id=" + id + ", name=" + name + ", birthday="
                                     + birthday + ", score=" + score + "]";
         }

}

另外:
日历控件canlender.js请在下载工具栏目下载,将其置于webroot/js路径下.
数据库连接JAR包需要加载到项目中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值