十、点击查看弹出个人信息以及志愿者活动

详细信息的页面

包含学生信息,以及工时信息,也就是志愿者活动信息

如图:


其实方法和删除的方法是类似的,让我们来写一下

因为每个查询页面都有这样一个按钮,所以我以其中一个查询的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();  
	    	        }  
	    	    }  
}

-----------------------------------------------------------------------

然后就没有然后了

这个项目就终结了,如果想要看打包的代码的,已经上传了文件的,欢迎下载

不过仅供参考

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值