利用servlet獲取數據庫數據

數據庫的數據傳到前臺

數據庫建表:(圖片的話存放到第一個裏面,自己選圖片地址添加數據庫)

CREATE TABLE COURSE(
	COURSE_imgurl VARCHAR(150),
	COURSE_title VARCHAR(150),
	COURSE_num INT(255),
	COURSE_price INT(255) 	
 );
 SELECT * FROM COURSE;
 INSERT INTO COURSE VALUE('','在線美女','54567218','2000');
 INSERT INTO COURSE VALUE('','在線美女','54567218','2000');

controller層:

@WebServlet("/CourseServlet")
public class CourseServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 處理請求
		// 傳遞請求到service層
		CourseService serice = new CourseServiceImpl();
		List<Course> courseList = serice.findAllCourse();
		// 處理響應
		// 轉發給jsp進行數據的展示
		request.setAttribute("courseList", courseList);
		request.getRequestDispatcher("/course_List.jsp").forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

service層:

public interface CourseService {
	// 傳遞請求到dao層
	public List<Course> findAllCourse();
}

serviceImpl層:

public class CourseServiceImpl implements CourseService {

	@Override
	public List<Course> findAllCourse() {
		// 傳遞請求到dao層
		CourseDaoImpl courseDao = new CourseDaoImpl();
		return courseDao.findAllCourse();
	}
}

dao層:

public interface CourseDao {
	public List<Course> findAllCourse();
}

daoImpl層

public class CourseDaoImpl implements CourseDao{

	@Override
	public List<Course> findAllCourse() {
		List<Course> courseList = new ArrayList<Course>();
		ResultSet rs = null;
		Statement stat = null;
		Connection con = null;
		try {
			//1.註冊驅動
			Class.forName("com.mysql.jdbc.Driver");
			//2.獲得連接
			String  url = "jdbc:mysql://localhost:3306/course";
			String user = "root";
			String password = "123456";
			con = DriverManager.getConnection(url,user,password);
			String sql = "SELECT * FROM COURSE";
			stat = con.prepareStatement(sql);
			rs = stat.executeQuery(sql);
			//6.處理結果集resulrset boolean next 返會true,有結果集,返回false則沒有
			while(rs.next()){
				Course s = new Course();
				s.setCourse_imgurl(rs.getString("COURSE_imgurl"));
				s.setCourse_title(rs.getString("COURSE_title"));
				s.setCourse_price(rs.getInt("COURSE_price"));
				s.setCourse_num(rs.getInt("COURSE_num"));
				courseList.add(s);
			}
		}catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(rs != null){
				try {
					rs.close();
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if(stat != null){
				try {
					stat.close();
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if(con != null){
				try {
					con.close();
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return courseList;
	}
}

pojo層:

public class Course {
	private String course_imgurl;
	private String course_title;
	private int course_num;
	private double course_price;

	public Course() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Course(String course_imgurl, String course_title, int course_num, double course_price) {
		super();
		this.course_imgurl = course_imgurl;
		this.course_title = course_title;
		this.course_num = course_num;
		this.course_price = course_price;
	}

	public String getCourse_imgurl() {
		return course_imgurl;
	}

	public void setCourse_imgurl(String course_imgurl) {
		this.course_imgurl = course_imgurl;
	}

	public String getCourse_title() {
		return course_title;
	}

	public void setCourse_title(String course_title) {
		this.course_title = course_title;
	}

	public int getCourse_num() {
		return course_num;
	}

	public void setCourse_num(int course_num) {
		this.course_num = course_num;
	}

	public double getCourse_price() {
		return course_price;
	}

	public void setCourse_price(double course_price) {
		this.course_price = course_price;
	}

	@Override
	public String toString() {
		return "Course [course_imgurl=" + course_imgurl + ", course_title=" + course_title + ", course_num="
				+ course_num + ", course_price=" + course_price + "]";
	}
}

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 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>測試數據庫數據</title>
	<!-- 引入公共樣式 -->
	<link type="text/css" rel="stylesheet" href="css/public.css"/>
	<!-- 引入course_list.css -->
	<link type="text/css" rel="stylesheet" href="css/course_list.css"/>
</head>
<body>
	<div id="main">
		<c:forEach items="${courseList}" var="course">
			<div class="c">
				<img src="${course.course_imgurl }">
				<p>${course.course_title }</p>
				<p>${course.course_num }</p>
				<p>${course.course_price }</p>
			</div>
		</c:forEach>
	</div>
</body>
</html>

public.css公共樣式:

@CHARSET "UTF-8";
*{
	margin:0px;
	padding:0px;
	font-size:16px;
}
li{
	list-style-type:none;
}
a{
	text-decoration:none;
	corlor:inherit
}

course_list的樣式:

@CHARSET "UTF-8";
#main{
	width: 780px;
	margin: 20px auto;
	padding: 0px 50px;
	border: 1px solid red;
}
#main::after{
	content: "";
	display: block;
	clear: both;
}
.c{
	margin: 20px;
	padding: 10px;
	box-shadow: 0px 0px 10px gray;
	float: left;
}
.c img{
	width: 200px;
}

記得導mysql,standard,jstl的jar包
還有就是配置路徑,一定要看好,位置具體,加/(不用xml的話)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章