admin管理员组

文章数量:1033057

JavaWeb后端入门案例三—查询数据库信息并显示到JSP

1. 案例分析

提前创建一个数据库,通过Servlet查询数据库信息并将结果返回jsp页面

代码语言:javascript代码运行次数:0运行复制
create database web04_student;
use web04_student;
create table student(
	sid int primary key auto_increment,
	sname varchar(20),
	sex varchar(10),
	age int
);
insert into student values (null,'张三','男',20);
insert into student values (null,'李四','女',23);
insert into student values (null,'王五','女',18);
insert into student values (null,'赵六','男',25);
insert into student values (null,'冰冰','男',21);

2.流程

2.1 导入jar包

2.2 引入c3p0-config.xml文件(代码略)

2.3 创建包结构

2.4 引入JDBCUtils.java

代码语言:javascript代码运行次数:0运行复制
package cn.wuter.utils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * JDBC的工具类
 * @author jt
 *
 */
public class JDBCUtils {
	// 创建一个连接池:但是这个连接池只需要创建一次即可。
	private static final ComboPooledDataSource dataSource = new ComboPooledDataSource();
	
	/**
	 * 获得连接的方法
	 * @throws SQLException 
	 */
	public static Connection getConnection() throws SQLException{
		return dataSource.getConnection();
	}
	
	/**
	 * 获得连接池:
	 */
	public static DataSource getDataSource(){
		return dataSource;
	}
	
}

2.5 创建Student.java实体类

代码语言:javascript代码运行次数:0运行复制
package cn.wuter.domain;

public class Student {
	private Integer sid;
	private String sname;
	private String sex;
	private Integer age;
	public Integer getSid() {
		return sid;
	}
	public void setSid(Integer sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
}

2.6 创建查询方法StudentModel.java

代码语言:javascript代码运行次数:0运行复制
package cn.wuter.model;

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

import org.apachemons.dbutils.QueryRunner;
import org.apachemons.dbutils.handlers.BeanListHandler;

import cn.wuter.domain.Student;
import cn.wuter.utils.JDBCUtils;
/**
 * 处理数据的Java类
 * */
public class StudentModel {

	//查询所有学生信息的方法
	public List<Student> findAll() throws SQLException {
		QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
		List<Student> list = queryRunner.query("select * from student", new BeanListHandler<Student>(Student.class));
		return list;
	}
}

2.6 创建核心ServletStudentServlet.java

代码语言:javascript代码运行次数:0运行复制
package cn.wuter.controller;

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

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.wuter.domain.Student;
import cn.wuter.model.StudentModel;

/**
 * 查询学生信息的Servlet
 */
public class StudentServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
			//1.调用Java类处理数据
			StudentModel studentModel = new StudentModel();
			List<Student> list = studentModel.findAll();
			//2.显示到JSP页面
			
			request.setAttribute("list", list);
			request.getRequestDispatcher("/jsp/list.jsp").forward(request, response);
			
//			request.getSession().setAttribute("list", list);
//			response.sendRedirect("/web04_student/jsp/list.jsp");
			
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}

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

2.7 创建前台页面index.html

代码语言:javascript代码运行次数:0运行复制
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>学生信息查询简单案例</h1>
	
	<h2><a href="./StudentServlet">点击查询并跳转到结果页</a></h2>
</body>
</html>

2.8 创建查询结果页list.jsp

代码语言:javascript代码运行次数:0运行复制
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="; prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>学生信息显示页面</h1>
<table border="1" width="500">
	<tr>
		<td>学生编号</td>
		<td>姓名</td>
		<td>性别</td>
		<td>年龄</td>
	</tr>
	<c:forEach var="student" items="${list }">
		<tr>
			<td>${student.sid }</td>
			<td>${student.sname }</td>
			<td>${student.sex }</td>
			<td>${student.age }</td>
		</tr>
	</c:forEach>
</table>
</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2021-04-23 ,如有侵权请联系 cloudcommunity@tencent 删除jspimport后端入门数据

JavaWeb后端入门案例三—查询数据库信息并显示到JSP

1. 案例分析

提前创建一个数据库,通过Servlet查询数据库信息并将结果返回jsp页面

代码语言:javascript代码运行次数:0运行复制
create database web04_student;
use web04_student;
create table student(
	sid int primary key auto_increment,
	sname varchar(20),
	sex varchar(10),
	age int
);
insert into student values (null,'张三','男',20);
insert into student values (null,'李四','女',23);
insert into student values (null,'王五','女',18);
insert into student values (null,'赵六','男',25);
insert into student values (null,'冰冰','男',21);

2.流程

2.1 导入jar包

2.2 引入c3p0-config.xml文件(代码略)

2.3 创建包结构

2.4 引入JDBCUtils.java

代码语言:javascript代码运行次数:0运行复制
package cn.wuter.utils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * JDBC的工具类
 * @author jt
 *
 */
public class JDBCUtils {
	// 创建一个连接池:但是这个连接池只需要创建一次即可。
	private static final ComboPooledDataSource dataSource = new ComboPooledDataSource();
	
	/**
	 * 获得连接的方法
	 * @throws SQLException 
	 */
	public static Connection getConnection() throws SQLException{
		return dataSource.getConnection();
	}
	
	/**
	 * 获得连接池:
	 */
	public static DataSource getDataSource(){
		return dataSource;
	}
	
}

2.5 创建Student.java实体类

代码语言:javascript代码运行次数:0运行复制
package cn.wuter.domain;

public class Student {
	private Integer sid;
	private String sname;
	private String sex;
	private Integer age;
	public Integer getSid() {
		return sid;
	}
	public void setSid(Integer sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
}

2.6 创建查询方法StudentModel.java

代码语言:javascript代码运行次数:0运行复制
package cn.wuter.model;

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

import org.apachemons.dbutils.QueryRunner;
import org.apachemons.dbutils.handlers.BeanListHandler;

import cn.wuter.domain.Student;
import cn.wuter.utils.JDBCUtils;
/**
 * 处理数据的Java类
 * */
public class StudentModel {

	//查询所有学生信息的方法
	public List<Student> findAll() throws SQLException {
		QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
		List<Student> list = queryRunner.query("select * from student", new BeanListHandler<Student>(Student.class));
		return list;
	}
}

2.6 创建核心ServletStudentServlet.java

代码语言:javascript代码运行次数:0运行复制
package cn.wuter.controller;

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

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.wuter.domain.Student;
import cn.wuter.model.StudentModel;

/**
 * 查询学生信息的Servlet
 */
public class StudentServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
			//1.调用Java类处理数据
			StudentModel studentModel = new StudentModel();
			List<Student> list = studentModel.findAll();
			//2.显示到JSP页面
			
			request.setAttribute("list", list);
			request.getRequestDispatcher("/jsp/list.jsp").forward(request, response);
			
//			request.getSession().setAttribute("list", list);
//			response.sendRedirect("/web04_student/jsp/list.jsp");
			
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}

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

2.7 创建前台页面index.html

代码语言:javascript代码运行次数:0运行复制
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>学生信息查询简单案例</h1>
	
	<h2><a href="./StudentServlet">点击查询并跳转到结果页</a></h2>
</body>
</html>

2.8 创建查询结果页list.jsp

代码语言:javascript代码运行次数:0运行复制
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="; prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>学生信息显示页面</h1>
<table border="1" width="500">
	<tr>
		<td>学生编号</td>
		<td>姓名</td>
		<td>性别</td>
		<td>年龄</td>
	</tr>
	<c:forEach var="student" items="${list }">
		<tr>
			<td>${student.sid }</td>
			<td>${student.sname }</td>
			<td>${student.sex }</td>
			<td>${student.age }</td>
		</tr>
	</c:forEach>
</table>
</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2021-04-23 ,如有侵权请联系 cloudcommunity@tencent 删除jspimport后端入门数据

本文标签: JavaWeb后端入门案例三查询数据库信息并显示到JSP