您的位置:首页 > Web前端 > JavaScript

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

2017-02-17 20:52 330 查看
主要内容:

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

<!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">姓       名:</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+"/";
%>

<!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">姓       名:</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+"/";
%>

<!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包需要加载到项目中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: