在实际案例中使用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>
浙公网安备 33010602011771号