在实际案例中使用JSTL

①数据库

 create database student;
 
 use student;
 
 create table user(
 id int primary key auto_increment,
 username varchar(20),
 password varchar(20)
 );
 
 insert into user values
 (null,'admin','root');
 
 create table student(
 sid int primary key auto_increment,
 sname varchar(15),
 sage int,
 sex varchar(5),
 address varchar(20)
 );
 
 insert into student values
 (null,'Jack',25,'','南京'),
 (null,'Tom',28,'','北京'),
 (null,'Tony',45,'','深圳'),
 (null,'Lucy',65,'','天津'),
 (null,'Rose',24,'','上海');

②JDBC工具类

 1 package com.yxfyg.util;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.sql.Connection;
 6 import java.sql.DriverManager;
 7 import java.sql.ResultSet;
 8 import java.sql.SQLException;
 9 import java.sql.Statement;
10 import java.util.Properties;
11 
12 public class JDBCUtil {
13     
14     static String driverClass = null;
15     static String  url = null;
16     
17     static {
18         try {
19             Properties properties = new Properties();
20             InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
21             properties.load(is);
22             driverClass = properties.getProperty("driverClass");
23             url = properties.getProperty("url");
24             is.close();
25         } catch (IOException e) {
26             e.printStackTrace();
27         } 
28     }
29     
30     public static Connection getConn() {
31         Connection conn = null;
32         
33         try {
34             Class.forName(driverClass);
35             conn = DriverManager.getConnection(url);
36         } catch (ClassNotFoundException e) {
37             e.printStackTrace();
38         } catch (SQLException e) {
39             e.printStackTrace();
40         }
41         
42         return conn;
43     }
44     
45     public static void release(ResultSet rs,Statement st,Connection conn) {
46         closeRs(rs);
47         closeSt(st);
48         closeConn(conn);
49     }
50     
51     private static void closeRs(ResultSet rs) {
52         try {
53             if(rs != null) {
54                 rs.close();
55             }
56         } catch (SQLException e) {
57             e.printStackTrace();
58         } finally {
59             rs = null;
60         }
61     }
62     
63     private static void closeSt(Statement st) {
64         try {
65             if(st != null) {
66                 st.close();
67             }
68         } catch (SQLException e) {
69             e.printStackTrace();
70         } finally {
71             st = null;
72         }
73     }
74     
75     private static void closeConn(Connection conn) {
76         try {
77             if(conn != null) {
78                 conn.close();
79             }
80         } catch (SQLException e) {
81             e.printStackTrace();
82         } finally {
83             conn = null;
84         }
85     }
86     
87 }
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/student?user=root&password=root

③Bean

 1 package com.yxfyg.bean;
 2 
 3 public class Student {
 4     
 5     private int id;
 6     private String name;
 7     private int age;
 8     private String sex;
 9     private String address;
10     
11     public Student(int id, String name, int age, String sex, String address) {
12         super();
13         this.id = id;
14         this.name = name;
15         this.age = age;
16         this.sex = sex;
17         this.address = address;
18     }
19     
20     public int getId() {
21         return id;
22     }
23     public void setId(int id) {
24         this.id = id;
25     }
26     public String getName() {
27         return name;
28     }
29     public void setName(String name) {
30         this.name = name;
31     }
32     public int getAge() {
33         return age;
34     }
35     public void setAge(int age) {
36         this.age = age;
37     }
38     public String getSex() {
39         return sex;
40     }
41     public void setSex(String sex) {
42         this.sex = sex;
43     }
44     public String getAddress() {
45         return address;
46     }
47     public void setAddress(String address) {
48         this.address = address;
49     }
50     
51     
52 }

④HTML页面(登录页面)

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Login</title>
 6 </head>
 7 <body>
 8     <form action="LoginServlet" method="post">
 9         账号:<input type="text" name="username"/><br/>
10         密码:<input type="password" name="password"/><br/>
11         <input type="submit" value="登录">
12     </form>
13 </body>
14 </html>

⑤处理登录信息的Servlet

 1 package com.yxfyg.servlet;
 2 
 3 import java.io.IOException;
 4 import java.sql.Connection;
 5 import java.sql.SQLException;
 6 import java.util.List;
 7 
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 import javax.servlet.http.HttpSession;
13 
14 import com.yxfyg.bean.Student;
15 import com.yxfyg.dao.impl.StudentDaoImpl;
16 import com.yxfyg.dao.impl.UserDaoImpl;
17 import com.yxfyg.util.JDBCUtil;
18 
19 public class LoginServlet extends HttpServlet{
20     
21     @Override
22     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
23         
24         String username = req.getParameter("username");
25         String password = req.getParameter("password");
26         resp.setContentType("text/html;charset=UTF-8");
27         
28         if(new UserDaoImpl().login(username, password)) {
29             List<Student> list = new StudentDaoImpl().findAll();
30             HttpSession session = req.getSession();
31             session.setAttribute("stuList", list);
32             resp.sendRedirect("stuList.jsp");
33         }else {
34             resp.getWriter().write("登录失败");
35         }
36         
37         
38     }
39     
40     @Override
41     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
42         doGet(req, resp);
43     }
44 }

⑥验证登录信息的UserDao及其实现类,获取所有学生信息的StudentDao及其实现类

 1 package com.yxfyg.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.yxfyg.bean.Student;
 6 
 7 public interface UserDao {
 8     
 9     boolean login(String username,String password);
10     
11 }
 1 package com.yxfyg.dao.impl;
 2 
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.util.ArrayList;
 8 import java.util.List;
 9 
10 import com.yxfyg.bean.Student;
11 import com.yxfyg.dao.UserDao;
12 import com.yxfyg.util.JDBCUtil;
13 
14 public class UserDaoImpl implements UserDao{
15 
16     @Override
17     public boolean login(String username,String password) {
18         
19         Connection conn = null;
20         PreparedStatement ps = null;
21         ResultSet rs = null;
22         
23         try {
24             conn = JDBCUtil.getConn();
25             String sql = "select * from user where username = ? and password = ?";
26             ps = conn.prepareStatement(sql);
27             ps.setString(1, username);
28             ps.setString(2, password);
29             rs = ps.executeQuery();
30             return rs.next();
31         } catch (SQLException e) {
32             e.printStackTrace();
33         } finally {
34             JDBCUtil.release(rs, ps, conn);
35         }
36         return false;
37     }
38     
39 }
 1 package com.yxfyg.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.yxfyg.bean.Student;
 6 
 7 public interface StudentDao {
 8     
 9     List<Student> findAll();
10     
11 }
 1 package com.yxfyg.dao.impl;
 2 
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.util.ArrayList;
 8 import java.util.List;
 9 
10 import com.yxfyg.bean.Student;
11 import com.yxfyg.dao.StudentDao;
12 import com.yxfyg.util.JDBCUtil;
13 
14 public class StudentDaoImpl implements StudentDao{
15     
16     @Override
17     public List<Student> findAll() {
18         Connection conn = null;
19         PreparedStatement ps = null;
20         ResultSet rs = null;
21         List<Student> list = new ArrayList<Student>();
22         try {
23             conn = JDBCUtil.getConn();
24             String sql = "select * from student";
25             ps = conn.prepareStatement(sql);
26             rs = ps.executeQuery();
27             while(rs.next()) {
28                 int sid = rs.getInt("sid");
29                 String sname = rs.getString("sname");
30                 int sage = rs.getInt("sage");
31                 String sex = rs.getString("sex");
32                 String address = rs.getString("address");
33                 list.add(new Student(sid, sname, sage, sex, address));
34             }
35         } catch (SQLException e) {
36             e.printStackTrace();
37         } finally {
38             JDBCUtil.release(rs, ps, conn);
39         }
40         return list;
41     }
42     
43 }

⑦JSP页面(学生列表)

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 4 <!DOCTYPE html>
 5 <html>
 6 <head>
 7 <meta charset="UTF-8">
 8 <title>Student List</title>
 9 </head>
10 <body>
11     <h2>学生列表</h2>
12     <table border="1px" width="700px">
13         <tr align="center">
14             <td>编号</td>
15             <td>姓名</td>
16             <td>年龄</td>
17             <td>性别</td>
18             <td>地址</td>
19         </tr>
20         <c:forEach items="${ sessionScope.stuList }" var="stu">
21         <tr align="center">
22             <td>${ stu.id }</td>
23             <td>${ stu.name }</td>
24             <td>${ stu.age }</td>
25             <td>${ stu.sex }</td>
26             <td>${ stu.address }</td>
27         </tr>
28         </c:forEach>
29     </table>
30 </body>
31 </html>

 

posted @ 2020-05-08 10:06  yxfyg  阅读(155)  评论(0)    收藏  举报