BaseDao
session一般是存在浏览器里,从服务器里调取出来以后,下次调取就是直接在session里进行操作。
package com.hr.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao {
static {
// 导入驱动包jar
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 打开连接
public static Connection getCon() {
Connection con = null;
try {
// 获取连接对象 DriverManager.getConnection
// url连接地址 jdbc:mysql://localhost:3306/hrit
// mysql中自己写的数据库名称 hrit
// 用户名密码 root : ccat
// url错误 No suitable driver found for
// jdbc:msql://localhost:3306/hrit
// 用户名密码错误 Access denied for user 'oot'@'localhost' (using password:
// YES)
// 出现保存乱码请添加
// ?useUnicode=true&characterEncoding=utf-8
con = DriverManager
.getConnection(
"jdbc:mysql://localhost:3306/zdl?useUnicode=true&characterEncoding=utf-8",
"root", "ccat");
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
// 关闭连接
public static void closeCon(Connection con, PreparedStatement pstat,
ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (pstat != null) {
pstat.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// com.mysql.jdbc.Connection@16b98e56 返回内存地址
System.out.println(getCon());
}
}
登录dao方法
package com.hr.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.hr.entity.Person;
public class PersonDao {
/**
* 查询所有
*
* @return
*/
public ArrayList<Person> queryAll() {
ArrayList<Person> list = new ArrayList<Person>();
Connection con = BaseDao.getCon();
// con.createStatement();
PreparedStatement pstat = null;
ResultSet rs = null;
try {
pstat = con.prepareStatement("select * from person");
rs = pstat.executeQuery();
while (rs.next()) {
// char sex = rs.getString("sex").charAt(0);
list.add(new Person(rs.getInt("id"), rs.getString("name"), rs
.getInt("age"), rs.getString("sex"), rs
.getString("pwd")));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭
BaseDao.closeCon(con, pstat, rs);
return list;
}
}
/**
* 验证用户名或者密码
* @param name
* @param pwd
* @return
*/
public Person checkUser(String name, String pwd) {
Person p = null;
Connection con = BaseDao.getCon();
PreparedStatement pstat = null;
ResultSet rs = null;
try {
pstat = con
.prepareStatement("SELECT * FROM person WHERE NAME=? AND pwd=?");
pstat.setString(1, name);
pstat.setString(2, pwd);
rs = pstat.executeQuery();
if (rs.next()) {
p = new Person(rs.getInt("id"), rs.getString("name"), rs
.getInt("age"), rs.getString("sex"), rs
.getString("pwd"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
BaseDao.closeCon(con, pstat, rs);
return p;
}
}
}
实体类
package com.hr.entity;
/**
* 实体类型
*
* @author Administrator `
*/
public class Person {
private int id;
private String name;
private int age;
private String sex;
private String pwd;
public Person() {
}
public Person(int id, String name, int age, String sex, String pwd) {
super();
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
this.pwd = pwd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
serlet文件
package com.hr.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.hr.dao.PersonDao;
import com.hr.entity.Person;
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String name = req.getParameter("name");
String pwd = req.getParameter("pwd");
//调用方法验证用户是否成功登录
PersonDao pd=new PersonDao();
Person p = pd.checkUser(name, pwd);
HttpSession session = req.getSession();
//判断p是否为null
//如果是null表示登录失败,登录失败给页面传递一个字符串"用户名或者密码错误!"
if(p==null){
String msg="用户名或者密码错误";
req.setAttribute("msg", msg);
req.getRequestDispatcher("login.jsp").forward(req, resp);
}else{
session.setAttribute("p", p);
//不管是重定向还是转发都不影响session中取值
resp.sendRedirect("sucess.jsp");
}
}
}
查询全部serlet
```java
package com.hr.servlet;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.hr.dao.PersonDao;
import com.hr.entity.Person;
public class QueryAllServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 调用PersonDao的查询方法
PersonDao pd = new PersonDao();
ArrayList<Person> list = pd.queryAll();
// 打包
//req.setAttribute("list", list);
//请求对象
//request
//响应对象
//response
//会话对象
//session
//那它来保存数据--打包
HttpSession session = req.getSession();
session.setAttribute("list", list);
//浏览器如果关闭session会被清除
// 发送
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
}
求个关注和收藏。
1337

被折叠的 条评论
为什么被折叠?



