JAVA WEB 使用JSP从数据库读取数据并展示到网页上
2020-02-15
整个项目结构,jar包可网上下载导入
数据库链接以及增删改查方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| package com.Podcast.dbutil;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;
public class DBconn { //三属性,四方法 //三大核心接口 private Connection conn=null; private PreparedStatement pstmt=null; private ResultSet rs=null; String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/podcast"; String user="root"; String password="123456"; //四个方法 //method1:创建数据库的连接 private void getConntion(){ try{ //加载连接驱动 Class.forName(driver); //连接mysql数据库 conn=DriverManager.getConnection(url,user,password); } catch(ClassNotFoundException e){ e.printStackTrace(); } catch(SQLException e){ e.printStackTrace(); } } //method2:关闭数据库连接 public void closeConn(){ if(rs!=null){ try{ rs.close(); } catch(SQLException e){ e.printStackTrace(); } } if(pstmt!=null){ try{ pstmt.close(); } catch(SQLException e){ e.printStackTrace(); } } if(conn!=null){ try{ conn.close(); } catch(SQLException e){ e.printStackTrace(); } } } //method3:专门用于发送增删改语句的方法 public int execOther(final String strSQL, final Object[] params){ //连接 getConntion(); System.out.println("SQL:>"+strSQL); try{ //创建statement接口对象 pstmt=conn.prepareStatement(strSQL); //动态为pstmt对象赋值 for(int i=0;i<params.length;i++){ pstmt.setObject(i+1, params[i]); } //使用Statement对象发送SQL语句 int affectedRows=pstmt.executeUpdate(); return affectedRows; } catch(SQLException e){ e.printStackTrace(); return -1; } } //method4:专门用于发送查询语句 public ResultSet execQuery(final String strSQL,final Object[] params){ getConntion(); System.out.println("SQL:>"+strSQL); try{ pstmt=conn.prepareStatement(strSQL); for(int i=0;i<params.length;i++){ pstmt.setObject(i+1, params[i]); } rs=pstmt.executeQuery(); return rs; } catch(SQLException e){ e.printStackTrace(); return null; } } }
|
实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| package com.Podcast.entity;
public class PostBar { private int Pid;//帖子id private String Topic;//帖子主题 private String Message;//帖子内容 private String PDate;//帖子发布日期 private String ChangeDate;//帖子修改日期 private int Uid;//发布帖子的用户ID private String Pkind;//帖子类型 public int getPid() { return Pid; } public void setPid(int pid) { Pid = pid; } public String getTopic() { return Topic; } public void setTopic(String topic) { this.Topic = topic; } public String getMessage() { return Message; } public void setMessage(String message) { this.Message = message; } public String getDdate() { return PDate; } public void setPDate(String pdate) { PDate = pdate; } public String getChangeDate() { return ChangeDate; } public void setChangeDate(String changeDate) { ChangeDate = changeDate; } public int getUid() { return Uid; } public void setUid(int uid) { Uid = uid; } public String getPkinnd() { return Pkind; } public void setPkind(String pkind) { Pkind = pkind; } }
|
读取数据库数据具体方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| package com.Podcast.Dao;
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Connection; import java.sql.PreparedStatement;
import com.Podcast.entity.*; import com.Podcast.dbutil.*;
public class GetPostDao {
public List<PostBar> GetPost(int Pid){ List<PostBar> lstpost=new ArrayList<PostBar>(); DBconn dbconn=new DBconn(); String strSQL="select * from posttopic where Pid=?"; ResultSet rs=dbconn.execQuery(strSQL,new Object[]{Pid}); try{ while(rs.next()){ PostBar postbar=new PostBar(); postbar.setPid(rs.getInt("Pid")); postbar.setTopic(rs.getString("Topic")); postbar.setMessage(rs.getString("Message")); postbar.setPDate(rs.getString("PDate")); postbar.setChangeDate(rs.getString("ChangeDate")); postbar.setUid(rs.getInt("Uid")); postbar.setPkind(rs.getString("PKind")); lstpost.add(postbar); } return lstpost; } catch(Exception e){ e.printStackTrace(); return null; }finally{ dbconn.closeConn(); } } }
|
servlet方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| package com.Podcast.servlet;
import java.io.IOException; import java.io.PrintWriter; import java.util.List;
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import com.Podcast.Dao.GetPostDao;
/** * Servlet implementation class PostBar */ @WebServlet("/PostBar") public class PostBarServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public PostBarServlet() { super(); // TODO Auto-generated constructor stub }
/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub GetPostDao gpd=new GetPostDao(); List list=gpd.GetPost(4); request.setAttribute("list",list); request.getRequestDispatcher("/PostBar.jsp").forward(request, response); }
/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub }
}
|
jsp页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>贴吧</title> </head> <body>
<form action="servlet/PostBarServlet" method="get" name="postform"> <table border=1 cellpadding="10" cellspacing="0"> <c:forEach items="${list}" var="post"> <tr> <td>id</td> <td>${post.pid }</td> </tr> <tr> <td>主题</td> <td><a href="PostDetail.jsp">${post.topic }</a></td> </tr> <tr> <td>内容</td> <td>${post.message }</td> </tr> </c:forEach> </table> </form> </body> </html>
|
servlet注册xml文件
1 2 3 4 5 6 7 8 9 10
| <?xml version="1.0" encoding="UTF-8"?> <servlet> <servlet-name>PostBarServlet</servlet-name> <servlet-class>com.Podcast.servlet.PostBarServlet</servlet-class> </servlet>
<servlet-mappping> <servlet-name>PostBarServlet</servlet-name> <url-pattern>/servlet/PostBarServlet</url-pattern> </servlet-mappping>
|
至此,我们就实现了使用jsp从数据库读取数据并展示到网页上!