学习javaWeb,首先要学习基础的jsp,servlet,弄通了机制然后就得心应手了。我们来实现一个简单的实例来学习。
我们的任务有:1.数据库及表创建
上节实现了用户删除,本节来实现用户信息的查看。
六、用户信息查看
用户信息操作是一浏览用户信息详情的操作,通过点击用户列表中的用户名超链接,会弹出新的页面显示详尽的数据。
需要实现:
示意图如下:
点击返回之后,重新跳回用户信息列表页面。
1.servlet跳转
在信息列表生成的时候用下面的语句来生成超链接:
1 <td><a href="servlet/ServletViewUser?userId=<%=user.getUserId() %>"><%=user.getUserName()%></a></td>
(注:页面详细代码,请参见:用户列表显示页面代码)
用超链接的方式提交给ServletViewUser.java 中的doGet(),并且传递过去userId
调用UserDao中selectOneUserInfo()方法,将查询结果返回给userview.jsp。ServletViewUser.java的doGet()方法如下:
1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 4 int userId = Integer.parseInt(request.getParameter("userId")); 5 UserDao userDao = new UserDao(); 6 UserVo user = userDao.selectOneUserInfo(userId); 7 8 request.setAttribute("user", user); 9 request.getRequestDispatcher("/userview.jsp").forward(request, response); 10 }
2.数据库操作层方法
UserDao中有一个selectOneUserInfo()方法,用以根据userId,查询一条用户信息,其代码如下:
1 public UserVo selectOneUserInfo(int userId) { 2 // 查看单一用户信息 3 Dbmanage dbmanage = new Dbmanage(); 4 Connection conn = null; 5 Statement sta = null; 6 ResultSet rs = null; 7 UserVo user = null; 8 9 try { 10 conn = dbmanage.initDB(); 11 sta = conn.createStatement(); 12 String sql = "SELECT * FROM userTable WHERE user_id = " + userId; 13 rs = sta.executeQuery(sql); 14 while (rs.next()) { 15 user = new UserVo(); 16 user.setUserId(rs.getInt("user_id")); 17 user.setUserName(rs.getString("user_name")); 18 user.setUserPassword(rs.getString("user_password")); 19 user.setUserProvince(rs.getString("user_province")); 20 user.setUserCity(rs.getString("user_city")); 21 user.setUserSex(rs.getString("user_sex")); 22 user.setUserHobby(rs.getString("user_hobby")); 23 user.setUserDescribe(rs.getString("user_describe")); 24 } 25 26 } catch (SQLException e) { 27 28 e.printStackTrace(); 29 } finally { 30 // 执行完关闭数据库 31 dbmanage.closeDB(rs, sta, conn); 32 } 33 return user; 34 35 }
该方法返回user对象给ServletViewUser.java,由其将信息转发给userview.jsp。
3.userview.jsp页面
userview.jsp页面用于显示详细的个人信息,页面代码如下:
1 <form name="myform" action = "servlet/ServletUserReturn" method="post"> 2 <table border = "1" align = "center" style="border-collapse:collapse;"> 3 <tr> 4 <td colspan="2">用户查看</td> 5 </tr> 6 <tr> 7 <td>用户名</td> 8 <td><%=user.getUserName() %></td> 9 </tr> 10 <tr> 11 <td>密 码</td> 12 <td><%=user.getUserPassword() %></td> 13 </tr> 14 <tr> 15 <td>地 址</td> 16 <td><%=user.getUserProvince() %>省 <%=user.getUserCity() %>市</td> 17 </tr> 18 <tr> 19 <td>性 别</td> 20 <td><%=user.getUserSex() %></td> 21 22 </tr> 23 <tr> 24 <td>爱 好</td> 25 <td><%=user.getUserHobby() %></td> 26 </tr> 27 <tr> 28 <td style="height:100px;">个<br/>人<br/>描<br/>述</td> 29 <td><%=user.getUserDescribe() %></td> 30 </tr> 31 <tr> 32 <td colspan="2"><input type = "submit" value = "返回" /></td> 33 </tr> 34 </table> 35 </form>
4.servlet跳回信息列表
当点击返回的时候,会跳到ServletUserReturn.java ,重新跳转到userlist.jsp页面中。
1 public void doPost(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 4 UserDao userDao = new UserDao(); 5 6 ArrayList<UserVo> list = userDao.selectNotDeleteList(); 7 request.setAttribute("list", list); 8 request.getRequestDispatcher("/userlist.jsp").forward(request, response); 9 }
到这里,用户信息的查看和返回就实现了。
链接导航 1.数据库及表创建