实验报告
1、编写一个学生信息注册页面,并把学生信息写入数据库名称为stuinfo的数据库中
2、编写一个学生登录页面(从stuinfo数据库中读取学生信息)
3、编写学生管理页面,实现学生信息的增删改查等操作
首先创建一个表单来限制登陆页面,限制表单的样式以及行类的变化:
<link rel="stylesheet" href="css/bootstrap.css">
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/bootstrap.bundle.js"></script>
<style>
.container{
width: 20%;
height: 20%;
margin-top:10% ;
}
</style>
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<form role="form" action="index.jsp">
<h3 style="text-align:center">登录 </h3>
<div class="form-group">
<label for="exampleInputEmail1">用户名:</label><input type="text" class="form-control" name = "username" id="exampleInputEmail1" />
</div>
<div class="form-group">
<label for="exampleInputPassword1">密码:</label><input type="password" class="form-control" name="password" id="exampleInputPassword1" />
</div>
<div class="form-group"></div>
<button type="submit" class="btn btn-default">提交</button>
</form>
</div>
</div>
</div>
实现以下的面板构造
登录
实现增删改查
增加
<%
String sql = "insert into user (username,password,gender,age) values (?,?,?,?)"; //在PreparedStatement 中使用问好代替实际参数
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1,user.getUsername());
ps.setString(2,user.getPassword());
ps.setInt(3,user.getGender());
ps.setInt(4,user.getAge());
ps.setInt(5,0);
ps.addBatch();
ps.setString(1,user.getUsername()+"123");
ps.setString(2,user.getPassword()+"123");
ps.setInt(3,user.getGender());
ps.setInt(4,user.getAge());
ps.setInt(5,0);
ps.addBatch();
int[] count={0};
try {//事务
count = ps.executeBatch();
connection.commit();
}
catch(SQLException e){
connection.rollback();
e.printStackTrace();
}
if(count[0] > 0){
out.print("添加成功");
}else{
out.print("添加失败");
}
%>
添加的代码应该与之前的主页相连,所以在跳转的时候需要:
response.setHeader("refresh","3;url=home.jsp");
删除
<%
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/book";
Connection connection = DriverManager.getConnection(url, "root", "root");
String sql = "select * from user where username = ? and password = ?";
PreparedStatement ps = connection.prepareStatement(sql);
int id=Integer.parseInt(request.getParameter("id"));
ps.setInt(1,id);
int count = ps.executeUpdate();
if(count > 0){
out.print("删除成功");
}
else{
out.print("删除失败");
}
%>
修改:
<%
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//建立数据库连接
String url = "jdbc:mysql://localhost:3306/book"; //数据库连接地址
Connection connection = DriverManager.getConnection(url,"root","root"); //第一个root为数据库的用户名 第二个root为数据库的密码
String sql = "update user set username = ? ,password = ? , gender = ?, age = ? where id = ?"; //在PreparedStatement 中使用问好代替实际参数
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1,user.getUsername());
ps.setString(2,user.getPassword());
ps.setInt(3,user.getGender());
ps.setInt(4,user.getAge());
ps.setInt(5,user.getId());
int count = ps.executeUpdate();
if(count > 0){
out.print("修改成功");
}else{
out.print("修改失败");
}
response.setHeader("refresh","3;url=home.jsp");
%>
其他代码有:
跳转
<%
if (session.getAttribute("username") == null){
out.print("你尚未登录,3秒之后跳转登陆页面");
response.setHeader("refresh","3;url=login.jsp");
}else {
out.print("<h3 style='text-align 欢迎来到个人主页!<br>");
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/book";
Connection connection = DriverManager.getConnection(url, "root", "root");
String sql = "select * from user where username = ? and password = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, request.getParameter("username"));
ps.setString(2, request.getParameter("password"));
ResultSet rs = ps.executeQuery();
while (rs.next()) {
out.print(rs.getString("username") + "-" + rs.getString(3) + "<br>");
}
%>
其中对于显示的个人主页也进行表单限制:
<div class ="container">
<div class="row clearfix">
<div class="col-md-12 column">
<table class="table table-striped">
<thead>
<th>ID</th>
<th>用户名</th>
<th>性别</th>
<th>年龄</th>
<th>操作</th>
</thead>
<tbody>
<%
while (rs.next()){
out.print("<tr>");
out.print(
"<td>"+rs.getString("id")
+"<td><td>"+rs.getString("username")
+"<td><td>"+rs.getString("gender")
+"<td><td>"+rs.getString("age")
+"<td>"
+"<td> a href='delete.jsp?id="+rs.getString("id")+"'>删除</a>"+ "</td>"
+"< > a href='delete.jsp?id="+rs.getString("id")+"'>修改</a>"+ "</td>"
);
out.print("</tr>");
}
}
%>
</tbody>
</table>
</div>
</div>
</div>
查找用户的代码显示:
UserBean user = new UserBean;
while(rs.next()){
out.print("<input type=\"hidden\" name='id' value="+id+">");
out.print("用户名:<input type='next' name='username' class=\"from-control\" values="+rs.getString("username")+"/><br>");
out.print("密码:<input type='next' name='password' class=\"from-control\" values="+rs.getString("username")+"/><br>");
out.print("性别:<input type='next' name='gender' class=\"from-control\" values="+rs.getString("username")+"/><br>");
out.print("年龄:<input type='next' name='age' class=\"from-control\" values="+rs.getString("username")+"/><br>");
}