【JavaWeb】课程管理---------JSP+Servlet+JavaBean+DAO(service解耦)

用到了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()">&nbsp;&nbsp;&nbsp;&nbsp;</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

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