學生選課管理系統

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
Filter處理中文亂碼

package 過濾器;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;


@WebFilter("/*")
public class MycourseCourseFilter implements Filter {
	public void destroy() {
	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		response.setContentType("text/html;charset=utf-8");
		chain.doFilter(request, response);
	}

	public void init(FilterConfig fConfig) throws ServletException {
	}

}

數據庫連接池

package 數據庫連接池;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

public class ConnectionUtils {
	private static DataSource dataSource = null;
	static {
		try {
			Properties properties = new Properties();
			InputStream inStream = ConnectionUtils.class.getClassLoader().getResourceAsStream("db.properties");
			properties.load(inStream);
			dataSource = BasicDataSourceFactory.createDataSource(properties);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public static DataSource getConnection() {
		return dataSource;
	}
}

課程信息javabean
course

package 圖書信息javabean;

import java.io.Serializable;

public class Course implements Serializable {
	private Integer id;
	private String name;
	private String desc;
	private double price;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getDesc() {
		return desc;
	}
	public void setDesc(String desc) {
		this.desc = desc;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	@Override
	public String toString() {
		return "Book [id=" + id + ", name=" + name + ", desc=" + desc + ", price=" + price + "]";
	}
	
}

mycourse

package 圖書信息javabean;

import java.io.Serializable;
import java.util.List;

public class Mycourse implements Serializable {
	private Integer id;
	private Integer bookId;
	private Integer count;
	private Course book;

	public Course getBook() {
		return book;
	}

	public void setBook(Course book) {
		this.book = book;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Integer getBookId() {
		return bookId;
	}

	public void setBookId(Integer bookId) {
		this.bookId = bookId;
	}

	public Integer getCount() {
		return count;
	}

	public void setCount(Integer count) {
		this.count = count;
	}

	@Override
	public String toString() {
		return "Bar [id=" + id + ", bookId=" + bookId + ", count=" + count + "]";
	}

}

coursedao

package dao;

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

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import 圖書信息javabean.Course;
import 數據庫連接池.ConnectionUtils;

public class CourseDao {
	public List<Course> findAll() {
		QueryRunner runner = new QueryRunner(ConnectionUtils.getConnection());
		String sql = "select *from book";
		System.out.println("=============================================");
		try {
			return runner.query(sql, new BeanListHandler<Course>(Course.class));
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}
	}

	public Course findById(Integer id) {
		QueryRunner runner = new QueryRunner(ConnectionUtils.getConnection());
		 
		String sql = "select *from book where id=?";
		System.out.println("=============================================");
		try {
			return runner.query(sql, new BeanHandler<Course>(Course.class), id);
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}
	}
}

**`package dao;

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

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import 圖書信息javabean.Mycourse;
import 圖書信息javabean.Course;
import 數據庫連接池.ConnectionUtils;

public class MycourseDao {
public List findAll() {
QueryRunner runner = new QueryRunner(ConnectionUtils.getConnection());
String sql = “select * from car”;
try {
return runner.query(sql, new BeanListHandler(Mycourse.class));
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}

public Integer saveCar(Mycourse bar) {
	QueryRunner runner = new QueryRunner(ConnectionUtils.getConnection());
	String sql = "insert into car(bookId, count)values(?, ?)";
	try {
		return runner.update(sql, bar.getBookId(), bar.getCount());
	} catch (SQLException e) {
		e.printStackTrace();
		return 0;
	}
}

public Integer updateCar(Mycourse bar) {
	QueryRunner runner = new QueryRunner(ConnectionUtils.getConnection());
	String sql = "update car set bookId=?, count=? where id=?";
	try {
		return runner.update(sql, bar.getBookId(), bar.getCount(), bar.getId());
	} catch (SQLException e) {
		e.printStackTrace();
		return 0;
	}
}

public Mycourse findByBookId(Integer id) {
	QueryRunner runner = new QueryRunner(ConnectionUtils.getConnection());
	String sql = "select *from car where bookId=?";
	try {
		Mycourse bar = runner.query(sql, new BeanHandler<Mycourse>(Mycourse.class), id);
		return bar;
	} catch (SQLException e) {
		e.printStackTrace();
		return null;
	}
}

}
`**

servlet
CourseServlet

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 dao.CourseDao;
import 圖書信息javabean.Course;

@WebServlet(value = "/CourseServlet")
public class CourseServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		CourseDao bookDao = new CourseDao();
		List<Course> books = bookDao.findAll();
//		System.out.println(books);
		request.setAttribute("bookList", books);
		request.getRequestDispatcher("/WEB-INF/course.jsp").forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}

DownloadServlet`

package Servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;

@WebServlet("/download")
public class DownloadServlet extends HttpServlet {

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        // 設置響應數據的 MIME 類型
        resp.setContentType("application/x-msdownload");
        // 獲取文件名稱
        String fileName = req.getParameter("fileName");
        // 判斷瀏覽器是否是 IE
        String userAgent = req.getHeader("User-Agent");
        if (userAgent.contains("MSIE")) {
            // IE
            // 設置文件的名稱
            resp.setHeader("Content-Disposition", "attachment; fileName="
                    + URLEncoder.encode(fileName, "UTF-8"));
        } else {
            // 非IE
            resp.setHeader("Content-Disposition", "attachment; fileName="
                    + new String(fileName.getBytes("UTF-8"), "ISO-8859-1"));
        }

        // 獲取文件所在的路徑
        String path = req.getServletContext().getRealPath("/WEB-INF/download");

        // 獲取指定的文件對象
        File f = new File(path, fileName);
        ServletOutputStream out = resp.getOutputStream();
        // 將文件複製到輸出流中,響應給瀏覽器
        Files.copy(Paths.get(f.getAbsolutePath()), out);
    }
}

MycourseServlet

package Servlet;

import java.io.IOException;
import java.util.ArrayList;
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 dao.MycourseDao;
import dao.CourseDao;
import 圖書信息javabean.Mycourse;
import 圖書信息javabean.Course;

@WebServlet("/MycourseServlet")
public class MycourseServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		if (request.getParameter("id") == null) {
			this.showCar(request, response);
			return;
		}
		Integer para_id = Integer.parseInt(request.getParameter("id"));
		System.out.println(para_id);
		CourseDao bookDao = new CourseDao();
		Course hasBook = bookDao.findById(para_id);
		System.out.println(hasBook);
		if (hasBook == null) {
			request.getRequestDispatcher("/BookServlet").forward(request, response);
		} else {
			MycourseDao carDao = new MycourseDao();
			Mycourse car = carDao.findByBookId(para_id);
			if (car == null) {
				car = new Mycourse();
				car.setBookId(para_id);
				car.setCount(1);
				carDao.saveCar(car);
			} else {
				car.setCount(car.getCount() + 1);
				carDao.updateCar(car);
			}
			System.out.println(car);
			this.showCar(request, response);
			return;
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

	private void showCar(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		CourseDao bookDao = new CourseDao();
		MycourseDao carDao = new MycourseDao();
		List<Mycourse> bars = carDao.findAll();
		System.out.println(bars);
		for (Mycourse b : bars) {
			Course book = bookDao.findById(b.getBookId());
			book.setPrice(book.getPrice() * b.getCount());
			b.setBook(book);
		}
		request.setAttribute("barList", bars);
		request.getRequestDispatcher("/WEB-INF/mycourse.jsp").forward(request, response);
	}
}

db.properties
注意密碼(我的爲空)

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db
username=root
password=

course.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>課程管理模塊</title>
</head>
<body style="text-align:center;">
    <h2>學生選課表</h2>

	<table width="80%" border="3" align="center">
		<tr>
		<td>課程代碼</td>
			<td>課程名稱</td>
			<td>課時</td>
			<td>學生操作</td>
			
		</tr>
		<c:forEach items="${ bookList }" var="book">
			<tr>
				<td>${ book.name }</td>
				<td>${ book.desc }</td>
				<td>${ book.price }</td>
				<font color="green">
				<td><a href="MycourseServlet?id=${ book.id }">
				<font color="red">我要選課</font>
				</a></td>
			</font>
			</tr>
		</c:forEach>
	</table>
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	
	<a href="MycourseServlet">

	<a href="MycourseServlet"><font color="green">點擊查看已選課程</a>
	
</body>
</html>

mycourse.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>我的選課表</title>
</head>
<body style="text-align:center;">
    <h2>已選課程</h2>
	<table width="80%" border="5" align="center">

		<tr>
		
			<td>課程名</td>
			<td>總課時</td>
			<td>已選學生人數</td>
		</tr>
		<c:forEach items="${ barList }" var="car">
			<tr>
				<td>${ car.book.name }</td>
				<td>${ car.book.price }</td>
				<td>${ car.count }</td>
			</tr>
		</c:forEach>
	</table>
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	<a href="CourseServlet"><font color="green">點擊返回選課列表</a>
	<a href="download.jsp"><font color="green">點擊下載選課表</a>
</body>
</html>

download.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="download?fileName=test.png"}>點擊下載課程表</a>
</body>
</html>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>書城主界面</title>
</head>
<body>
//跳轉到商品頁面ShowServlet
<jsp:forward page="CourseServlet"></jsp:forward>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章