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 + "/";
%> 

<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’main.jsp’ starting pagetitle>

         <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">
         

  head>

  <body>
  <%
       StudentDao studentDao = new StudentDao();
       List 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>     
      <a href=""> 修改a>
   td>
   tr>
 <% } %>
   table>
   <br>
             
   <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+"/";
%>


<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’add.jsp’ starting pagetitle>

         <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">
         
         <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">姓       名: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">成        绩: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="提交">
               
          <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+"/";
%>


<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP ’doAdd.jsp’ starting pagetitle>
         <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">
         
  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+"/";
%>


<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’doDelete.jsp’ starting pagetitle>

         <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">
         

  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+"/";
%>


<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’add.jsp’ starting pagetitle>

         <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">
         
         <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">姓       名: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">成        绩: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="提交">
               
          <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+"/";
%>


<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ’doUpdate.jsp’ starting pagetitle>

         <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">
         

  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 queryAll()
         {
                   List stuList=new ArrayList();
                   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包需要加载到项目中。

你可能感兴趣的:(java,web)