用到了EL和JSTL
Course.java
package javabean;
public class Course {
private int id;
private String name;
private String teacher;
private String classroom;
public Course() {
}
public Course(String name, String teacher, String classroom) {
super();
this.name = name;
this.teacher = teacher;
this.classroom = classroom;
}
public Course(int id, String name, String teacher, String classroom) {
super();
this.id = id;
this.name = name;
this.teacher = teacher;
this.classroom = classroom;
}
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 getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public String getClassroom() {
return classroom;
}
public void setClassroom(String classroom) {
this.classroom = classroom;
}
}
DBUtil.java
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBUtil {
private static String driverName="com.mysql.jdbc.Driver";
private static String userName="root";
private static String userPwd="1234";
private static String dbName="course";
private static String url="jdbc:mysql://localhost:3306/"+dbName+"?useUnicode=true&characterEncoding=utf-8";
//获取数据库连接
public static Connection getConnection() {
Connection conn=null;
try {
Class.forName(driverName);
conn=DriverManager.getConnection(url,userName,userPwd);
} catch (Exception e) {
System.out.println("获取连接失败!");
}
return conn;
}
//关闭连接
public static void close(Connection conn,Statement stmt) {
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) {
System.out.println("关闭失败!");
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
System.out.println("关闭失败!");
}
}
}
//关闭连接
public static void close(Connection conn,Statement stmt,ResultSet rs) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
System.out.println("关闭失败!");
}
}
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) {
System.out.println("关闭失败!");
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
System.out.println("关闭失败!");
}
}
}
}
CourseDao.java
package Dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import Util.DBUtil;
import javabean.Course;
//与数据库进行交流
public class CourseDao {
//添加
public boolean add(Course course) {
Connection conn=DBUtil.getConnection();
Statement stmt=null;
String sql="insert into course(name,teacher,classroom) values('"+course.getName()+"','"+course.getTeacher()+"','"+course.getClassroom()+"')";
int k=0;
try {
stmt=conn.createStatement();
k=stmt.executeUpdate(sql);
} catch (SQLException e) {
System.out.println("添加操作失败!");
}finally{
DBUtil.close(conn, stmt);
}
if(k>0) {
return true;
}else {
return false;
}
}
//删除
public boolean delete(int id) {
Connection conn=DBUtil.getConnection();
Statement stmt=null;
String sql="delete from course where id="+id;
int k=0;
try {
stmt=conn.createStatement();
k=stmt.executeUpdate(sql);
} catch (SQLException e) {
System.out.println("删除操作失败!");
}finally {
DBUtil.close(conn, stmt);
}
if(k>0) {
return true;
}else {
return false;
}
}
//修改
public boolean update(Course course) {
Connection conn=DBUtil.getConnection();
Statement stmt=null;
String sql="update course set name='"+course.getName()+"',teacher='"+course.getTeacher()+"',classroom='"+course.getClassroom()+"' where id="+course.getId();
int k=0;
try {
stmt=conn.createStatement();
k=stmt.executeUpdate(sql);
} catch (SQLException e) {
System.out.println("修改操作失败!");
}finally {
DBUtil.close(conn, stmt);
}
if(k>0) {
return true;
}else {
return false;
}
}
//验证课程名称是否唯一
//true代表唯一
//false代表不唯一
public boolean name(String name) {
boolean flag=true;
Connection conn=DBUtil.getConnection();
Statement stmt=null;
ResultSet rs=null;
String sql="select name from course where name='"+name+"'";
try {
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()) {
flag=false;
}
} catch (SQLException e) {
System.out.println("验证姓名是否唯一操作失败!");
}finally {
DBUtil.close(conn, stmt, rs);
}
return flag;
}
//通过id得到课程信息
public Course getCourseById(int id) {
Connection conn=DBUtil.getConnection();
Statement stmt=null;
ResultSet rs=null;
Course course=null;
String sql="select name,teacher,classroom from course where id="+id;
try {
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()) {
String name=rs.getString(1);
String teacher=rs.getString(2);
String classroom=rs.getString(3);
course=new Course(id,name,teacher,classroom);
}
} catch (SQLException e) {
System.out.println("根据id查找操作失败!");
}finally {
DBUtil.close(conn, stmt, rs);
}
return course;
}
//通过name得到课程信息
public Course getCourseByName(String name) {
Connection conn=DBUtil.getConnection();
Statement stmt=null;
ResultSet rs=null;
Course course=null;
String sql="select id,teacher,classroom from course where name='"+name+"'";
try {
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()) {
int id=rs.getInt(1);
String teacher=rs.getString(2);
String classroom=rs.getString(3);
course=new Course(id,name,teacher,classroom);
}
} catch (SQLException e) {
System.out.println("根据name查找操作失败!");
}finally {
DBUtil.close(conn, stmt, rs);
}
return course;
}
//模糊查找(根据name,teacher,classroom)
public List<Course> search(String name,String teacher,String classroom){
Connection conn=DBUtil.getConnection();
Statement stmt=null;
ResultSet rs=null;
List<Course> list=new ArrayList<Course>();
String sql="select * from course where 1=1 ";
if(name!="") {
sql+=" and name like '%"+name+"%' ";
}
if(teacher!="") {
sql+=" and teacher like '%"+teacher+"%' ";
}
if(classroom!=null) {
sql+=" and classroom like '%"+classroom+"%' ";
}
try {
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()) {
int id=rs.getInt(1);
String name2=rs.getString(2);
String teacher2=rs.getString(3);
String classroom2=rs.getString(4);
Course course=new Course(id,name2,teacher2,classroom2);
list.add(course);
}
} catch (SQLException e) {
System.out.println("模糊查找失败!");
}finally {
DBUtil.close(conn, stmt, rs);
}
return list;
}
//全部数据
public List<Course> list(){
Connection conn=DBUtil.getConnection();
Statement stmt=null;
ResultSet rs=null;
List<Course> list=new ArrayList<Course>();
String sql="select * from course";
try {
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()) {
int id=rs.getInt(1);
String name2=rs.getString(2);
String teacher2=rs.getString(3);
String classroom2=rs.getString(4);
Course course=new Course(id,name2,teacher2,classroom2);
list.add(course);
}
} catch (SQLException e) {
System.out.println("查询全部数据操作失败!");
}finally {
DBUtil.close(conn, stmt, rs);
}
return list;
}
}
CourseService.java
package Service;
import java.util.List;
import Dao.CourseDao;
import javabean.Course;
//目的是解耦
public class CourseService {
CourseDao dao=new CourseDao();
//添加
public boolean add(Course course) {
boolean k=false;
if(dao.name(course.getName())) {
k=dao.add(course);
}
return k;
}
//删除
public boolean delete(int id) {
boolean k=false;
k=dao.delete(id);
return k;
}
//修改
public boolean update(Course course) {
boolean k=false;
k=dao.update(course);
return k;
}
//通过id得到一个Course
public Course getCourseById(int id) {
Course course=null;
course=dao.getCourseById(id);
return course;
}
//通过name得到一个Course
public Course getCourseByName(String name) {
Course course=null;
course=dao.getCourseByName(name);
return course;
}
//模糊查找
public List<Course> search(String name,String teacher,String classroom){
List<Course> list=null;
list=dao.search(name, teacher, classroom);
return list;
}
//全部数据
public List<Course> list(){
List<Course> list=null;
list=dao.list();
return list;
}
}
CourseServlet.java
package servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import Service.CourseService;
import javabean.Course;
@WebServlet("/CourseServlet")
public class CourseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
CourseService service = new CourseService();
public CourseServlet() {
super();
}
/**
* 方法选择
*/
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String method = request.getParameter("method");
if ("add".equals(method)) {
add(request, response);
} else if ("delete".equals(method)) {
delete(request, response);
} else if ("update".equals(method)) {
update(request, response);
} else if ("search".equals(method)) {
search(request, response);
} else if ("getCourseById".equals(method)) {
getCourseById(request, response);
} else if ("getCourseByName".equals(method)) {
getCourseByName(request, response);
} else if ("list".equals(method)) {
list(request, response);
}
}
// 添加
public void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String teacher = request.getParameter("teacher");
String classroom = request.getParameter("classroom");
Course course = new Course(name, teacher, classroom);
if (service.add(course)) {
request.setAttribute("message", "添加成功。");
request.getRequestDispatcher("add.jsp").forward(request, response);
} else {
request.setAttribute("message", "课程名称重复,请重新录入。");
request.getRequestDispatcher("add.jsp").forward(request, response);
}
}
// 根据name获得Course
private void getCourseByName(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
Course course = service.getCourseByName(name);
if (course != null) {
request.setAttribute("course", course);
request.getRequestDispatcher("/delete2.jsp").forward(request, response);
} else {
request.setAttribute("message", "查无此课程。");
request.getRequestDispatcher("/delete.jsp").forward(request, response);
}
}
// 删除
private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
int id = Integer.parseInt(request.getParameter("id"));
if (service.delete(id)) {
request.setAttribute("message", "删除成功。");
request.getRequestDispatcher("delete.jsp").forward(request, response);
} else {
request.setAttribute("message", "删除失败!");
request.getRequestDispatcher("delete.jsp").forward(request, response);
}
}
// 显示全部
private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
List<Course> list = service.list();
if (list != null) {
request.setAttribute("list", list);
request.getRequestDispatcher("all.jsp").forward(request, response);
}
}
// 根据id获得Course
private void getCourseById(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
int id = Integer.parseInt(request.getParameter("id"));
Course course = service.getCourseById(id);
request.setAttribute("course", course);
request.getRequestDispatcher("update.jsp").forward(request, response);
}
// 修改
private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String teacher = request.getParameter("teacher");
String classroom = request.getParameter("classroom");
System.out.println(id+" "+name+" "+teacher+" "+classroom);
Course course = new Course(id, name, teacher, classroom);
service.update(course);
request.setAttribute("message", "修改成功");
request.getRequestDispatcher("CourseServlet?method=list").forward(request,response);
}
//模糊查询
private void search(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String teacher = request.getParameter("teacher");
String classroom = request.getParameter("classroom");
List<Course> list = service.search(name, teacher, classroom);
if (list.size()>0) {
request.setAttribute("list", list);
request.getRequestDispatcher("all.jsp").forward(request, response);
}else {
request.setAttribute("message", "未查询到相关课程。");
request.getRequestDispatcher("search.jsp").forward(request, response);
}
}
}
homePage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<br><br><br><br><br><br>
<center>
<h2><a href="add.jsp">添加课程</a></h2>
<h2><a href="delete.jsp">删除课程</a></h2>
<h2><a href="CourseServlet?method=list">全部课程</a></h2>
<h2><a href="search.jsp?method=search">查询课程</a></h2>
</center>
</body>
</html>
add.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加页面</title>
</head>
<style>
td {
padding-top: 10px;
}
</style>
<script type="text/javascript">
function check() {
var name = document.getElementById("name");
var teacher = document.getElementById("teacher");
var classroom = document.getElementById("classroom");
if (name.value =="") {
alert("课程名称为空。");
name.focus();
return false;
}else if (teacher.value =="") {
alert("任课教师为空。");
teacher.focus();
return false;
}else if (classroom.value =="") {
alert("上课地点为空。");
classroom.focus();
return false;
}
}
</script>
<body>
<%
String message=(String)request.getAttribute("message");
if(message!=null&&message!=""){
%>
<script type="text/javascript">
alert("<%=message%>");
</script>
<%
}
%>
<br>
<br>
<br>
<br>
<center>
<h2>课程信息录入</h2>
<a href=homePage.jsp>返回主页</a>
<form action="CourseServlet?method=add" method="post"
onsubmit="return check()">
<table>
<tr>
<td>课程名称</td>
<td><input name="name" id="name"></td>
</tr>
<tr>
<td>任课教师</td>
<td><input name="teacher" id="teacher"></td>
</tr>
<tr>
<td>上课地点</td>
<td><input name="classroom" id="classroom"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="保存"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
delete.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>删除页面</title>
<style>
td {
padding-top: 30px;
}
</style>
<script type="text/javascript">
function check(){
var name=document.getElementById("name");
if(name.value==""){
alert("课程名称为空。");
name.focus();
return false;
}
}
</script>
</head>
<body>
<%
String message=(String)request.getAttribute("message");
if(message!=null&&message!=""){
%>
<script type="text/javascript">
alert("<%=message%>");
</script>
<%
}
%>
<br>
<br>
<br>
<br>
<center>
<h2>课程信息删除</h2>
<a href=homePage.jsp>返回主页</a>
<form action="CourseServlet?method=getCourseByName" method="post" onsubmit="return check()">
<table>
<tr>
<td>课程名称</td>
<td><input name="name" id="name"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="查找"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
delete2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>删除页面</title>
<style type="text/css">
td{
padding-top:15px;
}
</style>
<script type="text/javascript">
function check(){
if(confirm("确认删除?")){
return true;
}else{
return false;
}
}
</script>
</head>
<body>
<br>
<br>
<br>
<br>
<center>
<h2>课程信息删除</h2>
<a href=homePage.jsp>返回主页</a>
<table>
<tr>
<td>课程名称:</td>
<td>${course.name}</td>
</tr>
<tr>
<td>任课教师:</td>
<td>${course.teacher}</td>
</tr>
<tr>
<td>上课地点:</td>
<td>${course.classroom}</td>
</tr>
<tr>
<td colspan="2" align="center">
<a href="CourseServlet?method=delete&id=${course.id}" onclick="return check()">删 除</a>
</td>
</tr>
</table>
</center>
</body>
</html>
all.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
import="java.util.*" import="javabean.Course"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>显示全部页面</title>
<style type="text/css">
td{
padding-top:10px;
border:thin solid;
}
table{
width:600px;
border:thin solid;
}
</style>
</head>
<body>
<%
List<Course> list=(List)request.getAttribute("list");
%>
<%
String message=(String)request.getAttribute("message");
if(message!=null&&message!=""){
%>
<script type="text/javascript">
alert("<%=message%>");
</script>
<%
}
%>
<br>
<br>
<br>
<br>
<center>
<h2>课程信息列表</h2>
<a href=homePage.jsp>返回主页</a><br>
<table>
<tr>
<td>id</td>
<td>课程名称</td>
<td>任课教师</td>
<td>上课地点</td>
<td>操作</td>
</tr>
<c:forEach items="${list}" var="item">
<tr>
<td>${item.id}</td>
<td>${item.name}</td>
<td>${item.teacher}</td>
<td>${item.classroom}</td>
<td><a href="CourseServlet?method=getCourseById&id=${item.id}">修改</a></td>
</tr>
<tr>
</c:forEach>
</table>
</center>
</body>
</html>
update.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改页面</title>
<style type="text/css">
td{
padding-top:10px;
}
</style>
<script type="text/javascript">
function check() {
var name = document.getElementById("name");
var teacher = document.getElementById("teacher");
var classroom = document.getElementById("classroom");
if (name.value == "") {
alert("课程名称为空。");
name.focus();
return false;
} else if (teacher.value == "") {
alert("任课教师为空。");
teacher.focus();
return false;
} else if (classroom.value == "") {
alert("上课地点为空。");
classroom.focus();
return false;
}
}
</script>
</head>
<body>
<br>
<br>
<br>
<br>
<center>
<h2>课程信息修改</h2>
<a href=homePage.jsp>返回主页</a>
<form action="CourseServlet?method=update&id=${course.id}"
method="post" " οnsubmit="return check()">
<table>
<tr>
<td>课程名称</td>
<td><input name="name" id="name" value="${course.name}"></td>
</tr>
<tr>
<td>任课教师</td>
<td><input name="teacher" id="teacher"
value="${course.teacher}"></td>
</tr>
<tr>
<td>上课地点</td>
<td><input name="classroom" id="classroom"
value="${course.classroom}"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="修改"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
search.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查找页面</title>
<style>
td {
padding-top: 10px;
}
</style>
<script type="text/javascript">
function check(){
var name = document.getElementById("name");;
var teacher = document.getElementById("teacher");
var classroom = document.getElementById("classroom");
if(name.value == '' && teacher.value == '' && classroom.value == '') {
alert('请填写一个条件');
return false;
}
}
</script>
</head>
<body>
<%
String message=(String)request.getAttribute("message");
if(message!=null&&message!=""){
%>
<script type="text/javascript">
alert("<%=message%>");
</script>
<%
}
%>
<br>
<br>
<br>
<br>
<center>
<h2>课程信息查询</h2>
<a href=homePage.jsp>返回主页</a>
<form action="CourseServlet?method=search" method="post"
onsubmit="return check()">
<table>
<tr>
<td>课程名称</td>
<td><input name="name" id="name"></td>
</tr>
<tr>
<td>任课教师</td>
<td><input name="teacher" id="teacher"></td>
</tr>
<tr>
<td>上课地点</td>
<td><input name="classroom" id="classroom"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="查询"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
资料:https://www.cnblogs.com/Zjm15511858030/p/10092002.html