Skip to content

Commit 1168e90

Browse files
author
cicadasmile
committed
JavaEE基础(04):会话跟踪,Session和Cookie详解
1 parent 9c3d9cd commit 1168e90

9 files changed

Lines changed: 253 additions & 1 deletion

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ Java基础类型,容器,并发,IO流,面向对象,Web编程等代码
1818

1919
|项目名称|GitHub地址|GitEE地址|推荐指数|
2020
|:---|:---|:---|:---|
21+
|Java描述常用设计模式,算法,数据结构|[GitHub·点这里](https://github.com/cicadasmile/model-arithmetic-parent)|[GitEE·点这里](https://gitee.com/cicadasmile/model-arithmetic-parent)|☆☆☆☆☆|
22+
|Java基础、进阶、并发、面向对象、Web开发|[GitHub·点这里](https://github.com/cicadasmile/java-base-parent)|[GitEE·点这里](https://gitee.com/cicadasmile/java-base-parent)|☆☆☆☆|
2123
|SpringCloud微服务架构实战综合案例|[GitHub·点这里](https://github.com/cicadasmile/husky-spring-cloud)|[GitEE·点这里](https://gitee.com/cicadasmile/husky-spring-cloud)|☆☆☆☆☆|
2224
|SpringCloud微服务基础组件案例详解|[GitHub·点这里](https://github.com/cicadasmile/spring-cloud-base)|[GitEE·点这里](https://gitee.com/cicadasmile/spring-cloud-base)|☆☆☆|
2325
|SpringCloud实现分库分表模式下数据库实时扩容|[GitHub·点这里](https://github.com/cicadasmile/cloud-shard-jdbc)|[GitEE·点这里](https://gitee.com/cicadasmile/cloud-shard-jdbc)|☆☆☆☆☆|
2426
|SpringBoot框架基础应用入门到进阶|[GitHub·点这里](https://github.com/cicadasmile/spring-boot-base)|[GitEE·点这里](https://gitee.com/cicadasmile/spring-boot-base)|☆☆☆☆|
2527
|SpringBoot框架整合开发常用中间件|[GitHub·点这里](https://github.com/cicadasmile/middle-ware-parent)|[GitEE·点这里](https://gitee.com/cicadasmile/middle-ware-parent)|☆☆☆☆☆|
2628
|Spring+Mvc框架基础案例详解|[GitHub·点这里](https://github.com/cicadasmile/spring-mvc-parent)|[GitEE·点这里](https://gitee.com/cicadasmile/spring-mvc-parent)|☆☆|
27-
|Java描述常用设计模式,算法,数据结构|[GitHub·点这里](https://github.com/cicadasmile/model-arithmetic-parent)|[GitEE·点这里](https://gitee.com/cicadasmile/model-arithmetic-parent)|☆☆☆☆☆|
2829
|Linux系统基础、运维,常用操作积累|[GitHub·点这里](https://github.com/cicadasmile/linux-system-base)|[GitEE·点这里](https://gitee.com/cicadasmile/linux-system-base)|☆☆☆|
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>java-ee-base-parent</artifactId>
7+
<groupId>com.java.ee.parent</groupId>
8+
<version>1.0-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
<groupId>com.node04.session</groupId>
12+
<artifactId>node04-servlet-session</artifactId>
13+
<packaging>war</packaging>
14+
15+
<properties>
16+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17+
<maven.compiler.source>1.8</maven.compiler.source>
18+
<maven.compiler.target>1.8</maven.compiler.target>
19+
<jstl.version>1.2</jstl.version>
20+
<servlet-api.version>2.5</servlet-api.version>
21+
<jsp-api.version>2.0</jsp-api.version>
22+
</properties>
23+
24+
<dependencies>
25+
<!-- JSP相关 依赖包-->
26+
<dependency>
27+
<groupId>jstl</groupId>
28+
<artifactId>jstl</artifactId>
29+
<version>${jstl.version}</version>
30+
</dependency>
31+
<dependency>
32+
<groupId>javax.servlet</groupId>
33+
<artifactId>jsp-api</artifactId>
34+
<version>${jsp-api.version}</version>
35+
<scope>provided</scope>
36+
</dependency>
37+
<!-- servlet依赖包 -->
38+
<dependency>
39+
<groupId>javax.servlet</groupId>
40+
<artifactId>servlet-api</artifactId>
41+
<version>${servlet-api.version}</version>
42+
<scope>provided</scope>
43+
</dependency>
44+
<dependency>
45+
<groupId>junit</groupId>
46+
<artifactId>junit</artifactId>
47+
<version>4.12</version>
48+
</dependency>
49+
</dependencies>
50+
</project>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.node04.servlet.impl;
2+
3+
import javax.servlet.ServletException;
4+
import javax.servlet.http.Cookie;
5+
import javax.servlet.http.HttpServlet;
6+
import javax.servlet.http.HttpServletRequest;
7+
import javax.servlet.http.HttpServletResponse;
8+
import java.io.IOException;
9+
10+
public class CookieServletOne extends HttpServlet {
11+
@Override
12+
protected void doGet(HttpServletRequest request, HttpServletResponse response)
13+
throws ServletException, IOException {
14+
response.setContentType("text/html;charset=utf-8");
15+
// 创建Cookie
16+
Cookie cookie = new Cookie("author","cicada");
17+
// 设置生命周期 1小时
18+
cookie.setMaxAge(60*60);
19+
response.addCookie(cookie) ;
20+
response.getWriter().print("Hello:Cookie");
21+
}
22+
23+
@Override
24+
protected void doPost(HttpServletRequest request, HttpServletResponse response)
25+
throws ServletException, IOException {
26+
System.out.println("doPost...");
27+
Cookie[] cookies = request.getCookies() ;
28+
for (Cookie cookie:cookies){
29+
System.out.println("Name:"+cookie.getName());
30+
System.out.println("Value:"+cookie.getValue());
31+
}
32+
response.setContentType("text/html;charset=utf-8");
33+
String userName = request.getParameter("userName") ;
34+
response.getWriter().print("Hello:"+userName);
35+
}
36+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.node04.servlet.impl;
2+
3+
import javax.servlet.ServletException;
4+
import javax.servlet.http.Cookie;
5+
import javax.servlet.http.HttpServlet;
6+
import javax.servlet.http.HttpServletRequest;
7+
import javax.servlet.http.HttpServletResponse;
8+
import java.io.IOException;
9+
10+
public class CookieServletTwo extends HttpServlet {
11+
@Override
12+
protected void doGet(HttpServletRequest request, HttpServletResponse response)
13+
throws ServletException, IOException {
14+
response.setContentType("text/html;charset=utf-8");
15+
// 创建Cookie
16+
Cookie cookie = new Cookie("author","smile");
17+
// 设置生命周期 2小时
18+
cookie.setMaxAge(60*60*2);
19+
response.addCookie(cookie) ;
20+
response.getWriter().print("Hello:Cookie");
21+
}
22+
23+
@Override
24+
protected void doPost(HttpServletRequest request, HttpServletResponse response)
25+
throws ServletException, IOException {
26+
response.setContentType("text/html;charset=utf-8");
27+
Cookie[] cookies = request.getCookies() ;
28+
for (Cookie cookie:cookies){
29+
if (cookie.getName().equals("author")){
30+
cookie.setMaxAge(0);
31+
response.addCookie(cookie);
32+
}
33+
}
34+
String userName = request.getParameter("userName") ;
35+
response.getWriter().print("Hello:"+userName);
36+
}
37+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.node04.servlet.impl;
2+
3+
import javax.servlet.ServletException;
4+
import javax.servlet.http.HttpServlet;
5+
import javax.servlet.http.HttpServletRequest;
6+
import javax.servlet.http.HttpServletResponse;
7+
import javax.servlet.http.HttpSession;
8+
import java.io.IOException;
9+
import java.text.SimpleDateFormat;
10+
import java.util.Date;
11+
12+
public class SessionServletOne extends HttpServlet {
13+
@Override
14+
protected void doGet(HttpServletRequest request, HttpServletResponse response)
15+
throws ServletException, IOException {
16+
response.setContentType("text/html;charset=utf-8");
17+
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
18+
HttpSession session = request.getSession(true) ;
19+
Date createTime = new Date(session.getCreationTime());
20+
Date lastAccessTime = new Date(session.getLastAccessedTime());
21+
session.setAttribute("author","cicada");
22+
response.getWriter().print(
23+
"SessionId:" + session.getId() + "<br/>"+
24+
"User Author:" + session.getAttribute("author")+"<br/>"+
25+
"Create Time:" + dateFormat.format(createTime)+"<br/>"+
26+
"Last Access Time:"+dateFormat.format(lastAccessTime));
27+
}
28+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns="http://java.sun.com/xml/ns/javaee"
5+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
6+
id="WebApp_ID" version="3.0">
7+
8+
<display-name>cicada_servlet</display-name>
9+
<context-param>
10+
<param-name>encoding</param-name>
11+
<param-value>UTF-8</param-value>
12+
</context-param>
13+
14+
<servlet>
15+
<servlet-name>cookieServletOne</servlet-name>
16+
<servlet-class>com.node04.servlet.impl.CookieServletOne</servlet-class>
17+
</servlet>
18+
<servlet-mapping>
19+
<servlet-name>cookieServletOne</servlet-name>
20+
<url-pattern>/cookieServletOne</url-pattern>
21+
</servlet-mapping>
22+
23+
<servlet>
24+
<servlet-name>cookieServletTwo</servlet-name>
25+
<servlet-class>com.node04.servlet.impl.CookieServletTwo</servlet-class>
26+
</servlet>
27+
<servlet-mapping>
28+
<servlet-name>cookieServletTwo</servlet-name>
29+
<url-pattern>/cookieServletTwo</url-pattern>
30+
</servlet-mapping>
31+
32+
<servlet>
33+
<servlet-name>sessionServletOne</servlet-name>
34+
<servlet-class>com.node04.servlet.impl.SessionServletOne</servlet-class>
35+
</servlet>
36+
<servlet-mapping>
37+
<servlet-name>sessionServletOne</servlet-name>
38+
<url-pattern>/sessionServletOne</url-pattern>
39+
</servlet-mapping>
40+
</web-app>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<html>
2+
<body>
3+
<hr/>
4+
<h2>Session</h2>
5+
<hr/>
6+
</body>
7+
</html>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<html>
2+
<head>
3+
<title>index.html</title>
4+
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
5+
</head>
6+
<body>
7+
<hr/>
8+
<h2>CREATE Cookie</h2>
9+
<form method="GET" action="/cookieServletOne">
10+
userName:<input type="text" name="userName"/>
11+
<input type="submit" value="SUBMIT"/>
12+
</form>
13+
<hr/>
14+
<h2>GET Cookie</h2>
15+
<form method="POST" action="/cookieServletOne">
16+
userName:<input type="text" name="userName"/>
17+
<input type="submit" value="SUBMIT"/>
18+
</form>
19+
<hr/>
20+
<h2>UPDATE Cookie</h2>
21+
<form method="GET" action="/cookieServletTwo">
22+
userName:<input type="text" name="userName"/>
23+
<input type="submit" value="SUBMIT"/>
24+
</form>
25+
<hr/>
26+
<h2>DELETE Cookie</h2>
27+
<form method="POST" action="/cookieServletTwo">
28+
userName:<input type="text" name="userName"/>
29+
<input type="submit" value="SUBMIT"/>
30+
</form>
31+
</body>
32+
</html>

java-ee-base-parent/pom.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>java-base-parent</artifactId>
7+
<groupId>com.java.parent</groupId>
8+
<version>1.0-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
<groupId>com.java.ee.parent</groupId>
12+
<artifactId>java-ee-base-parent</artifactId>
13+
<packaging>pom</packaging>
14+
<modules>
15+
<module>node01-servlet-life</module>
16+
<module>node02-servlet-api</module>
17+
<module>node03-servlet-http</module>
18+
<module>node04-servlet-session</module>
19+
</modules>
20+
21+
</project>

0 commit comments

Comments
 (0)