目录
什么是session?
客户端服务器的一次对(交互),每一个客户端都有自己的session与服务器交互
session配置:
1 服务器默认session是30分钟(从最后一次向服务器请求开始算时间)
<session-config>
<session-timeout>30</session-timeout>
</session-config>
2 硬编码设置session生命周期
session创建与常用方法
创建
HttpSession session=request.getSession(); 实例化session
方法
-
void setAttribute(String attribute, Object value) 设置Session属性。value参数可以 String getAttribute(String attribute) 返回Session属性 Enumeration getAttributeNames() 返回Session中存在的属性名 void removeAttribute(String attribute) 移除Session属性 String getId() 返回Session的ID。该ID由服务器自动创建,不会重复 long getCreationTime() 返回Session的创建日期。例如:Date createTime = new Date(session.getCreationTime()) long getLastAccessedTime() 返回Session的最后活跃时间。返回类型为long int getMaxInactiveInterval() 设置session时间。单位为秒。超过该时间没有访问,服务器认为该Session失效 void setMaxInactiveInterval(int second) 设置Session的超时时间。单位为秒 isNew() 方法来判断Session是不是新创建的
Cookie
cookie是客户端对象,不占用服务器对象,保存在本地浏览器中
cookie是不安全的,浏览器可以禁用cookie对象
cookie常保存数据:7天免登录、浏览商品记录等
列:实现session传递值
数据库中表的创建
java代码实现
导包
html页面
login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="login.do" method="post">
用户名:<input type="text" name="username"/><br>
密码:<input type="password" name="password"/><br>
<input type="submit" value="登录"/><br>
</form>
</body>
</html>
properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/00web
username=root
password=123
工具类
public class DBUTils {
public static String driver;
public static String url;
public static String user;
public static String password;
public static Properties prop;
static{
//只执行一次
try {
prop=new Properties();
prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
driver=prop.getProperty("driver");
url=prop.getProperty("url");
user=prop.getProperty("username");
password=prop.getProperty("password");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConn(){
try {
Class.forName(driver); //加载驱动
Connection conn=DriverManager.getConnection(url, user, password);
System.out.println("conn==="+conn);
return conn;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}
}
}
封装数据
public class User {
private Integer id;
private String userName;
private String password;
private String sex;
private String loves;
private String city;
private String memo;
public User() {
// TODO Auto-generated constructor stub
}
public User(String userName, String password, String sex, String loves,
String city, String memo) {
super();
this.userName = userName;
this.password = password;
this.sex = sex;
this.loves = loves;
this.city = city;
this.memo = memo;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getLoves() {
return loves;
}
public void setLoves(String loves) {
this.loves = loves;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
@Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", password="
+ password + ", sex=" + sex + ", loves=" + loves + ", city="
+ city + ", memo=" + memo + "]";
}
}
数据操作
数据操作接口
public interface UserDao {
public int addUser(User user);
public boolean login(String userName,String password);
}
数据操作类
public class UserDaoImpl implements UserDao{
private QueryRunner qr=new QueryRunner();
private Connection conn;
@Override
public int addUser(User user) {
// TODO Auto-generated method stub
try {
conn=DBUTils.getConn();
String sql="insert into 0604tb_users (userName,password,sex,loves