详细信息的页面
包含学生信息,以及工时信息,也就是志愿者活动信息
如图:
其实方法和删除的方法是类似的,让我们来写一下
因为每个查询页面都有这样一个按钮,所以我以其中一个查询的JSP为例子
--------------------------------------------------------------------------
JSP代码:
在想要添加这个功能的JSP中添加如下代码
<a href="Detail?num=<%=times.getNum() %>">查看</a>
也就是调用Detail这个名字的Servlet
------------------------------------------------------------------------------
在web.xml中
然后根据先前servlet的名字,找到对应的servlet
<servlet>
<servlet-name>Detail</servlet-name>
<servlet-class>servlet.Detail</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Detail</servlet-name>
<url-pattern>/Detail</url-pattern>
</servlet-mapping>
找到的就是servlet-class的内容,也就是servlet包的detail文件
-------------------------------------------------------------------------
让我们来看detail文件的内容
因为要调用数据库中两张表的数据,所以基本上是类似的操作
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.AddWorkTime;
import bean.AddMessageBean;
public class Detail extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8"); //设置编码格式
response.setCharacterEncoding("UTF-8"); //设置编码格式
List<AddMessageBean> classList= new ArrayList<AddMessageBean>();
try {
//先获取学生信息
Connection conn=null;
Statement stmt=null;
conn=connect();
stmt=conn.createStatement();
//将JSP中num=<%=times.getNum() %>的num的值赋给num1
//就是相对应的那个学生的ID
String num1=request.getParameter("num");
//准备好sql语句
String sql="select * from stumessage where num ='";
sql+=num1+"'";
//执行sql语句, 将查询的值给rs
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {
//将rs的值取出
String num =rs.getString("num");
String name=rs.getString("name");
String sex =rs.getString("sex");
String college =rs.getString("college");
String year =rs.getString("year");
String major =rs.getString("major");
String poor =rs.getString("poor");
//新建bean类,将值赋给对应的属性
AddMessageBean bean = new AddMessageBean();
bean.setNum(num);
bean.setName(name);
bean.setSex(sex);
bean.setCollege(college);
bean.setYear(year);
bean.setMajor(major);
bean.setPoor(poor);
//将bean类的值给classList
classList.add(bean);
//这个setAttribute跟Delete的相同解释,还不清楚的可以翻回去看看
request.setAttribute("classList", classList);
}
//获取志愿者服务的信息,和上面类似,就不写注释了
List<AddWorkTime> work= new ArrayList<AddWorkTime>();
conn=connect();
stmt=conn.createStatement();
String sql2="select * from stuworktime where number ='";
sql2+=num1+"'";
ResultSet rs2=stmt.executeQuery(sql2);
while(rs2.next()) {
//获取参数
String ID=rs2.getString("number");
String activity=rs2.getString("workname");
String time=rs2.getString("worktime");
String date=rs2.getString("datetime");
//创建AddWorkTimeBean对象保存信息
AddWorkTime bean2 =new AddWorkTime();
bean2.setAct(activity);
bean2.setTime(time);
bean2.setID(ID);
bean2.setDate(date);
work.add(bean2);
request.setAttribute("classList2", work);
}
//完成操作后,返回信息到DetailMessage.jsp页面,然后清除rs,rs2的信息
request.getRequestDispatcher("DetailMessage.jsp").forward(request, response);
rs2.close();
rs.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
//数据库连接方法
public Connection connect() throws ClassNotFoundException, SQLException{
Connection conn=null;
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/project?"
+ "user=root&password=root&useUnicode=true&characterEncoding=UTF8";
conn=DriverManager.getConnection(url);
return conn;
}
//关闭数据库资源
public void close(Statement stat,Connection conn) throws SQLException{
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
}
}
------------------------------------------------------------
DetailMessage.jsp
服务器返回信息到这个页面,并将信息显示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="bean.AddMessageBean" %>
<%@ page import ="bean.AddWorkTime" %>
<%@ page import ="java.util.List" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/daohanglan1.css"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>详细信息</title>
<style>
td{
text-align: center;
width:100px;
}
</style>
</head>
<body>
<div>
<ul class="nav">
<li><a href="AddMessage.jsp">学生录入</a></li>
<li><a href="AddWorkTime.jsp">工时录入</a></li>
<li><a href="TimeManage">工时管理</a></li>
</ul>
</div>
<div id="div1">
<div >
<form style="width:800px;margin-left: auto; margin-right: auto;">
<fieldset>
<legend>学生信息</legend>
<table border="1.5" bordercolor="black" style="border-collapse:collapse;">
<tr><td>学号</td><td>学生姓名</td><td>性别</td><td>入学年份</td><td>学院</td><td>专业</td><td>贫困等级</td></tr>
<%
List<AddMessageBean> TimeManage = (List<AddMessageBean>) request.getAttribute("classList");
if(TimeManage!=null && !TimeManage.isEmpty()){
for(AddMessageBean times : TimeManage){
%>
<tr>
<td><%=times.getNum() %></td>
<td><%=times.getName() %></td>
<td><%=times.getSex() %></td>
<td><%=times.getYear() %></td>
<td><%=times.getCollege() %></td>
<td><%=times.getMajor() %></td>
<td><%=times.getPoor() %></td>
</tr>
<%}
}%>
</table>
</fieldset>
</form>
</div>
<div>
<form style="width:600px;margin-left: auto; margin-right: auto;">
<fieldset>
<legend>工时信息</legend>
<table border="1.5" bordercolor="black" style="border-collapse:collapse;margin-left: auto; margin-right: auto;">
<tr><td>学生学号</td><td>活动名称</td><td>工时数</td><td>活动日期</td><td>是否删除</td></tr>
<%
List<AddWorkTime> TimeManage2 = (List<AddWorkTime>) request.getAttribute("classList2");
if(TimeManage2!=null && !TimeManage2.isEmpty()){
for(AddWorkTime work : TimeManage2){
%>
<tr>
<td><%=work.getID() %></td>
<td><%=work.getAct() %></td>
<td><%=work.getTime() %></td>
<td><%=work.getDate() %></td>
<td>
<a href="DeleteWork?id=<%=work.getID() %>&act=<%=work.getAct() %>&date=<%=work.getDate() %>">删除</a>
</td>
</tr>
<%}
}%>
</table>
</fieldset>
</form>
</div>
</div>
</body>
</html>
---------------------------------------------------------------
然后就完成了查看的功能
剩下的就是志愿者服务后面的那个删除功能,效仿之前第九节的内容
这里我就直接贴servlet代码了
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.AddWorkTime;
import bean.AddMessageBean;
public class DeleteWork extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
try {
Connection conn=null;
Statement stat=null;
conn=connect();
stat=conn.createStatement();
String num=request.getParameter("id");
String act=request.getParameter("act");
String date=request.getParameter("date");
//System.out.println(id2);
String sql="delete from stuworktime where number=? and workname=? and datetime=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1, num);
ps.setString(2, act);
ps.setString(3, date);
ps.executeUpdate();
ps.close();
request.getRequestDispatcher("TimeManage.jsp").forward(request, response);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
//数据库连接方法
public Connection connect() throws ClassNotFoundException, SQLException{
Connection conn=null;
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/project?"
+ "user=root&password=root&useUnicode=true&characterEncoding=UTF8";
conn=DriverManager.getConnection(url);
return conn;
}
//关闭数据库资源
public void close(Statement stat,Connection conn) throws SQLException{
if(stat!=null){
stat.close();
}
if(conn!=null){
conn.close();
}
}
}
-----------------------------------------------------------------------
然后就没有然后了
这个项目就终结了,如果想要看打包的代码的,已经上传了文件的,欢迎下载
不过仅供参考