Java——Web开发之简单的学生信息管理系统

这仅仅是一个跟着视频学习的小系统,大牛就绕道啦~

系统实现的功能:

  • 与mysql数据库连接,实现登陆功能
  • 管理员登陆成功后能查看学生信息
  • 扩展功能(完成删除与更新学生信息的操作)

系统实现过程:

  • 写一个简单的登陆界面login.jsp ,并且使用LoginServlet获取登陆信息
  • 在数据库里创建用户信息表
  • 创建UserDao接口,定义登陆方法,创建UserDaoImpl类,实现UserDao接口的登陆方法
  • 在LoginServlet里面访问UserDao ,判断登陆是否成功
  • 创建stu_list.jsp,登陆成功则跳转
  • 在数据库创建学生表
  • 定义学生的StuDao接口,再定义一个StuDaoImpl实现StuDao接口的查询所有学生信息的方法
  • 登陆成功后,查询所有学生,把这个所有的学生集合存储到session作用域中,跳转到stu_list.jsp
  • 在stu_list.jsp中取出session作用域中的集合,然后使用jstl里的c标签遍历集合

 

先给出web工程的目录结构~

代码给出~

 

jdbc.properties

login.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>
	StuManagerSystem:<br>
	<form action="LoginServlet" method="post">
		账号:<input type="text" name="username"><br>
		账号:<input type="password" name="password"><br>
		<input type="submit" value="登陆"><br>
	</form>
</body>
</html>

LoginServlet.java

package web.stu.servlet;

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

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import web.stu.bean.Student;
import web.stu.dao.StuDao;
import web.stu.dao.UserDao;
import web.stu.dao.impl.StuDaoImpl;
import web.stu.dao.impl.UserDaoImpl;
//用于处理登陆的Servlet
public class LoginServlet extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=utf-8");
		//1.获取客户端提交的信息
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		
		//2.去访问dao,是否满足登陆
		UserDao dao=new UserDaoImpl();
		boolean isSuccess=dao.login(username, password);
		
		//3.根据dao的返回结果,做出响应
		if(isSuccess){
			//response.getWriter().write("登陆成功!");
			//1.查询所有的学生信息
			StuDao studao=new StuDaoImpl();
			List<Student> list=studao.findAll();
			//2.把该集合存储到作用域
			request.getSession().setAttribute("list", list);
			//3.重定向  跳转
			response.sendRedirect("stu_list.jsp");
		}else{
			response.getWriter().write("登陆失败!");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
		doGet(request,response);
	}

}

UserDao.java

package web.stu.dao;
/*
 	该dao定义了对用户表的访问规则
 */
public interface UserDao {
	boolean login(String username,String password);
}

UserDaoImpl.java

package web.stu.dao.impl;

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

import web.stu.dao.UserDao;
import web.stu.util.JDBCUtil;

public class UserDaoImpl implements UserDao {

	public boolean login(String username,String password) {
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			//1.得到连接对象
			conn=JDBCUtil.getConn();
			String sql="select *from user where username=? and password=?";
			//2.创建ps对象
			ps=conn.prepareStatement(sql);
			ps.setString(1, username);
			ps.setString(2, password);
			//3.开始执行
			rs=ps.executeQuery();	//如果能成功移到下一条记录,则说明有这个用户
			return rs.next();
		} catch (SQLException e) {
			
			e.printStackTrace();
		}finally{
			JDBCUtil.release(conn, ps,rs);
		}
		return false;
	}
}

stu_list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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>StuManagerSystem</title>
</head>
<body>
<br><h2>学生列表</h2><br>
<table border="1" width="700">
	<tr align="center">
		<td>编号</td>
		<td>姓名</td>
		<td>年龄</td>
		<td>电话号码</td>
		<td>操作</td>
	</tr>
	<c:forEach items="${sessionScope.list }" var="stu">
		<tr align="center">
			<td>${stu.id }</td>
			<td>${stu.name }</td>
			<td>${stu.age }</td>
			<td>${stu.num }</td>
			<td><a href="#">更新</a>  <a href="#">删除</a></td>
		</tr>
	</c:forEach>

</table>
</body>
</html>

JDBCUtil.java

package web.stu.util;

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtil {
	
	static String driverClass = null;
	static String url = null;
	static String name = null;
	static String password= null;
	
	static{
		try {
			//1. 创建一个属性配置对象
			Properties properties = new Properties();
//			InputStream is = new FileInputStream("jdbc.properties");
			
			//使用类加载器,去读取src底下的资源文件。 后面在servlet
			InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
			//导入输入流。
			properties.load(is);
			
			//读取属性
			driverClass = properties.getProperty("driverClass");
			url = properties.getProperty("url");
			name = properties.getProperty("name");
			password = properties.getProperty("password");
				
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 获取连接对象
	 * @return
	 */
	public static Connection getConn(){
		Connection conn = null;
		try {
			Class.forName(driverClass);
			//静态代码块 ---> 类加载了,就执行。 java.sql.DriverManager.registerDriver(new Driver());
			//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
			//DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");
			//2. 建立连接 参数一: 协议 + 访问的数据库 , 参数二: 用户名 , 参数三: 密码。
			conn = DriverManager.getConnection(url, name, password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	/**
	 * 释放资源
	 */
	public static void release(Connection conn , Statement st , ResultSet rs){
		closeRs(rs);
		closeSt(st);
		closeConn(conn);
	}
	public static void release(Connection conn , Statement st){
		closeSt(st);
		closeConn(conn);
	}
	private static void closeRs(ResultSet rs){
		try {
			if(rs != null){
				rs.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			rs = null;
		}
	}
	private static void closeSt(Statement st){
		try {
			if(st != null){
				st.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			st = null;
		}
	}
	private static void closeConn(Connection conn){
		try {
			if(conn != null){
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			conn = null;
		}
	}
}

Student.java

package web.stu.bean;
public class Student {
	private int id;
	private String name;
	private String num;
	private int age;
	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 getNum() {
		return num;
	}
	public void setNum(String num) {
		this.num = num;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

StuDao.java

package web.stu.dao;
import java.util.List;
import web.stu.bean.Student;
public interface StuDao {
	//查询所有学生信息,返回List集合
	List<Student> findAll();
	
}

StuDaoImpl.java

package web.stu.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import web.stu.bean.Student;
import web.stu.dao.StuDao;
import web.stu.util.JDBCUtil;

public class StuDaoImpl implements StuDao {

	//实现StuDao接口,做查询功能
	public List<Student> findAll() {
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		List<Student> list=new ArrayList<Student>();
		try {
			//1.得到连接对象
			conn=JDBCUtil.getConn();
			String sql="select *from stu";
			ps=conn.prepareStatement(sql);
			rs=ps.executeQuery();
			while(rs.next()){
				Student stu=new Student();
				stu.setId(rs.getInt("id"));
				stu.setAge(rs.getInt("age"));
				stu.setName(rs.getString("name"));
				stu.setNum(rs.getString("number"));
				list.add(stu);
			}
		} catch (SQLException e) {
			
			e.printStackTrace();
		}finally{
			JDBCUtil.release(conn, ps,rs);
		}
		return list;
	}
}

 

 

  • 11
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值