核心标签c:forEach将数据库的数据遍历展示

<c:forEach>为循环控制标签,功能是将集合中的成员按顺序浏览一遍

我的user表:
在这里插入图片描述

数据库的连接

ULutil.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DLutil {


		//驱动名称
		 private String driver = "com.mysql.cj.jdbc.Driver";
		 // 获取mysql连接地址
	     private String url = "jdbc:mysql://localhost:3306/dbjsp?&useSSL=false&serverTimezone=UTC";//dbjsp是数据库名称
	      // 数据名称
	     private String username ="root";
	      // 数据库密码
	     private String password ="hh20000220!@#";
	      
	    //连接数据库 
	     public Connection getCon() {
	              try {
					Class.forName(driver);
				} catch (ClassNotFoundException e) {
					// TODO Auto-generated catch block
					  System.out.println("数据库驱动加载失败!");
					e.printStackTrace();
				}
	             
	    	  Connection conn = null;
	    	  try {
	              //getConnection()方法,连接MySQL数据库! 
	              
	              conn=DriverManager.getConnection(url,username,password);
	      }
	              catch(SQLException e1){
	                  //数据库连接失败异常处理
	                   e1.printStackTrace();
	                  }
	    return conn;  }
	     
	     //关闭数据库连接
	     public void CloseCon(Connection conn) throws Exception {
	    	 if(conn!=null) {
	    		 conn.close();
	    	 }
	     }
	     
	     public static void main(String[] args) {
	    	 DLutil dlu=new DLutil();
	    	try { dlu.getCon();
	    	System.out.println("数据库连接成功"); 
	     }
	    	catch(Exception e2){
	    		System.out.println("数据库连接失败");
	            e2.printStackTrace();
	            }
	     }
	     }

实体类User.java

public class User {
private String userid;
private String passwd;
private String name;
public User() {
	super();
	// TODO Auto-generated constructor stub
}

public String getUserid() {
	return userid;
}
public void setUserid(String userid) {
	this.userid = userid;
}
public String getPasswd() {
	return passwd;
}
public void setPasswd(String passwd) {
	this.passwd = passwd;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}

}

获取数据库的数据

EightDao.java

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 java.util.Vector;

import bean.User;
import util.DLutil;

public class EightDao {
	
 public List AllUser() {
	 List<User> arr=new ArrayList<User>();
try {	 DLutil dtl=new DLutil();
	 Connection conn=dtl.getCon();	
	 Statement stmt = conn.createStatement();
	
	 	ResultSet rs = stmt.executeQuery("select * from user");
	  User user	=null;
			while (rs.next()) {
 user=new User();
 user.setUserid(rs.getString("userid")); 
 user.setName(rs.getString("name"));
 user.setPasswd(rs.getString("passwd"));
 
 arr.add(user);//集合保存user实体
 }
			return arr;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
return arr;

}
}

Show.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
  <%@ taglib prefix="p" uri="http://java.sun.com/jsp/jstl/core" %>
  <%@ page import="dao.EightDao"%>
  <%@ page import="bean.User"%>
  <%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>

<body>

<table border="1" >
<tr>
<th>账号id</th>
<th>姓名</th>
<th>密码</th>
</tr>

<% 
EightDao ed=new EightDao();
List<User> al=ed.AllUser();
session.setAttribute("arrs",al);
%>

<tr>

<p:forEach items="${arrs}" var="user">

<td>${user.userid }</td>
<td>${user.name }</td>
<td>${user.passwd }</td>

</p:forEach>

</tr>
</table>
</body>
</html>

运行结果如下:
在这里插入图片描述

若想Show.jsp里不出现Java代码,我在用于验证用户登录信息LoginServlet那放写在jsp里的那块代码,不过有需要注意的点

LoginServlet.java里的跳转到Show,jsp时进行数据库的遍历查询存储
在这里插入图片描述

在Show.jsp的代码如下:

因为前面是用request去存储对象,所以在Show.jsp中需要用requestScope去接收对象
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值