JSP&Servlet实现学生信息管理

首先声明,通过这个项目主要是想来学习java开发一个小项目的流程,各种包等关于后端的开发,因此对于前端的样式设计等没有介绍,不过在这个项目中关于样式之类的设计用的是EasyUI框架,现在,GO!

一、这个项目要实现什么?

要完成一个项目,你必须先知道这个项目要干什么,要完成什么样的功能,需要什么样的数据,这样我们才能一步步的进行实现。今天要学习的这个项目是学生信息管理,两个功能:班级信息管理和学生信息管理,从这两个功能应该能看到两张数据表:t_grade和t_student,还有两个界面,管理班级信息的页面:gradeInfoManage.jsp以及学生信息管理的页面:studentInfoManage.jsp;同样,我们还需要登录界面index.jsp,登陆成功会跳转到主界面main.jsp,还需要一张数据表t_user用作登录。因此本项目所需数据表3张,4个jsp页面。

二、建立工具包Util

我们会把重复使用的一些操作封装在Util中。

数据库封装:DBUtil.java

package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbUtil {
private String dbUrl="jdbc:mysql://127.0.0.1/db_studentsInfo";
private String dbUserName="root";
private String dbPassword="xxxxxx";
private String jdbcName="com.mysql.jdbc.Driver";
/*
 * 获取数据库的连接
 */
public Connection getCon() throws ClassNotFoundException, SQLException{
	Class.forName(jdbcName);
	Connection conn=(Connection) DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
	return conn;
}
/*
 * 关闭数据库连接
 */
public void close(Connection conn){
	if(conn!=null){
		try {
			conn.close();
			conn=null; 
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
/*
 * 测试
 */
public static void main(String[] args) {
	DbUtil dbUtil=new DbUtil();
	try {
		dbUtil.getCon();
		System.out.println("数据库连接成功");

	} catch (ClassNotFoundException | SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
}
判断字符串就是否为空的封装:StringUtil.java
package util;
/*
 * 判断空
 */
public class StringUtil {
	public static boolean isEmpty(String str){
		if("".equals(str)|| str==null){
			return true;
		}else{
			return false;
		}
	}
	public static boolean isNotEmpty(String str){
		if(!"".equals(str)&&str!=null){
			return true;
		}else{
			return false;
		}
	}
}

三、登录界面的实现

1.在数据库db_studentsinfo中建立第一张数据表t_user,下图是t_user的字段:


建好表以后,插入一条测试数据:


2.数据库的表建好以后紧跟着要做的就是封装数据表的字段,在src下新建model包,封装第一张数据表t_user。

User.java

package model;
public class User {
private String id;
private String userName;
private String password;
	public User(String name, String password) {
		this.userName=name;
		this.password=password;
	}
	public User(){
	}
	public User(String id, String userName, String userPassword) {
		super();
		this.id = id;
		this.userName = userName;
		this.password = userPassword;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

3.建立index.jsp这个页面包含两个文本框:输入姓名和输入密码,以及两个按钮确定和重置。

重置按钮:

<input type="button" value="重置" οnclick="resetValue()"/></td>
在点击重置时需要执行方法resetValue(),需要在这个jsp页面实现:
<script type="text/javascript">
function resetValue(){
	document.getElementById("userName").value="";
	document.getElementById("password").value="";
}
</script>

确定按钮:在点击确定以后,通过form表单提交就可以把我们在前台输入的内容传递到后台。



action表示你要把数据传递到哪里去,我们这里写的login是一个servlet的地址,下面再进行介绍;method表示提交方式,form有两种提交方式,post和get,get不安全,一般都选用post提交。

4.建立处理前台登录数据的Servlet:LoginServlet

(1)先建立Dao包,Dao包就是把对每个数据表的操作进行单独的封装,我们首先封装的是UserDao。

在这个dao里面,我们主要做的就是登录验证,把前台传过来的数据进行验证,如果数据库中有这个用户就允许他登录并且返回这个用户。

package dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.PreparedStatement;
import model.User;

/*
 * 登录验证
 */
public class UserDao {
public User login(Connection conn,User user) throws SQLException{
	User resultUser=null;
	String sql="select * from t_user where userName=? and password=?";
	PreparedStatement pSta=(PreparedStatement) conn.prepareStatement(sql);
	pSta.setString(1, user.getUserName());
	pSta.setString(2, user.getPassword());
	ResultSet rs=pSta.executeQ
  • 14
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 56
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值