From 50325a1413f8900fa332ed0fe995378bc5fd6398 Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Mon, 14 Oct 2019 21:02:51 +0800 Subject: [PATCH] 2019-10-14 21:02:51 --- docs/servlet/17.md | 36 +++++++++++------------ docs/servlet/18.md | 71 +++++++++++++++++++++++----------------------- 2 files changed, 53 insertions(+), 54 deletions(-) diff --git a/docs/servlet/17.md b/docs/servlet/17.md index 93d16f4..d1ffa32 100644 --- a/docs/servlet/17.md +++ b/docs/servlet/17.md @@ -1,12 +1,12 @@ -# HttpSession 与 Servlet 中的示例 +# Servlet 中的`HttpSession` > 原文: [https://beginnersbook.com/2013/05/http-session/](https://beginnersbook.com/2013/05/http-session/) -`HttpSession`对象用于会话管理。会话包含特定于整个应用中的特定用户的信息。当用户第一次通过 request.getSession()获得 HttpSession 时进入网站(或在线应用)时,将为用户提供唯一 ID 以标识其会话。此唯一 ID 可以存储在 cookie 或请求参数中。 +`HttpSession`对象用于会话管理。会话包含特定于整个应用中的特定用户的信息。当用户第一次通过`request.getSession()`获得`HttpSession`时进入网站(或在线应用)时,将为用户提供唯一 ID 以标识其会话。此唯一 ID 可以存储在 cookie 或请求参数中。 -HttpSession 保持活动状态,直到它的使用时间超过部署描述符文件(web.xml)中 tag 中指定的超时值。默认超时值为 30 分钟,如果未在标记中指定值,则使用此值。这意味着当用户未访问指定的 Web 应用时间时,会话将被 servlet 容器销毁。后续请求将不再从此会话提供,servlet 容器将创建新会话。 +`HttpSession`保持活动状态,直到它的使用时间超过部署描述符文件(`web.xml`)中标签中指定的超时值。默认超时值为 30 分钟,如果未在标记中指定值,则使用此值。这意味着当用户未访问指定的 Web 应用时间时,会话将被 servlet 容器销毁。后续请求将不再从此会话提供,servlet 容器将创建新会话。 -这是您创建 HttpSession 对象的方法。 +这是您创建`HttpSession`对象的方法。 ```java protected void doPost(HttpServletRequest req, @@ -16,7 +16,7 @@ protected void doPost(HttpServletRequest req, } ``` -您可以使用 setAttribute()方法将用户信息存储到会话对象中,稍后在需要时可以从会话中获取此信息。这是您在会话中存储信息的方式。这里我们分别在属性名称为 uName,uemailId 和 uAge 的会话中存储用户名,emailid 和 userage。 +您可以使用`setAttribute()`方法将用户信息存储到会话对象中,稍后在需要时可以从会话中获取此信息。这是您在会话中存储信息的方式。这里我们分别在属性名称为`uName`,`uemailId`和`uAge`的会话中存储用户名,`emailid`和`userage`。 ```java session.setAttribute("uName", "ChaitanyaSingh"); @@ -24,9 +24,9 @@ session.setAttribute("uemailId", "[email protected]"); session.setAttribute("uAge", "30"); ``` -第一个参数是属性名称,第二个是属性值。对于例如 uName 是属性名称,ChaitanyaSingh 是上面代码中的属性值。 +第一个参数是属性名称,第二个是属性值。对于例如`uName`是属性名称,`ChaitanyaSingh`是上面代码中的属性值。 -要从会话中获取值,我们使用 HttpSession 接口的 getAttribute()方法。这里我们使用属性名称获取属性值。 +要从会话中获取值,我们使用`HttpSession`接口的`getAttribute()`方法。这里我们使用属性名称获取属性值。 ```java String userName = (String) session.getAttribute("uName"); @@ -34,23 +34,23 @@ String userEmailId = (String) session.getAttribute("uemailId"); String userAge = (String) session.getAttribute("uAge"); ``` -## HttpSession 的方法 +## `HttpSession`的方法 -**public void setAttribute(String name,Object value)**:使用名称绑定对象,并将名称/值对存储为 HttpSession 对象的属性。如果属性已存在,则此方法将替换现有属性。 +`public void setAttribute(String name,Object value)`:使用名称绑定对象,并将名称/值对存储为 HttpSession 对象的属性。如果属性已存在,则此方法将替换现有属性。 -**public Object getAttribute(String name)**:从会话对象返回参数中指定的 String 对象。如果未找到指定属性的对象,则 getAttribute()方法返回 null。 +`public Object getAttribute(String name)`:从会话对象返回参数中指定的`String`对象。如果未找到指定属性的对象,则`getAttribute()`方法返回`null`。 -**public Enumeration getAttributeNames()**:返回一个 Enumeration,其中包含作为会话对象的属性绑定的所有对象的名称。 +`public Enumeration getAttributeNames()`:返回一个`Enumeration`,其中包含作为会话对象的属性绑定的所有对象的名称。 -**public void removeAttribute(String name)**:从会话中删除给定的属性。 +`public void removeAttribute(String name)`:从会话中删除给定的属性。 -**setMaxInactiveInterval(int interval)**:以秒为单位设置会话不活动时间。这是以秒为单位的时间,指定自客户端上次收到请求后会话保持活动状态的时间。 +`setMaxInactiveInterval(int interval)`:以秒为单位设置会话不活动时间。这是以秒为单位的时间,指定自客户端上次收到请求后会话保持活动状态的时间。 有关方法的完整列表,请参阅[官方文档](https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpSession.html)。 ## 会话示例 -index.html +`index.html` ```java
@@ -60,7 +60,7 @@ index.html
``` -MyServlet1.java +`MyServlet1.java` ```java import java.io.*; @@ -88,7 +88,7 @@ public class MyServlet1 extends HttpServlet { } ``` -MyServlet2.java +`MyServlet2.java` ```java import java.io.*; @@ -111,7 +111,7 @@ public class MyServlet2 extends HttpServlet { } ``` -web.xml +`web.xml` ```java @@ -136,7 +136,7 @@ web.xml **输出:** -**第一屏:** +**第一个界面:** ![](img/6cd6dfe925532e16af2cd98d1a4996b9.jpg) diff --git a/docs/servlet/18.md b/docs/servlet/18.md index d35a77c..aa419fe 100644 --- a/docs/servlet/18.md +++ b/docs/servlet/18.md @@ -1,37 +1,37 @@ -# Servlet 中的 Cookie 示例 +# Servlet 中的`Cookie` > 原文: [https://beginnersbook.com/2013/05/servlet-cookies/](https://beginnersbook.com/2013/05/servlet-cookies/) -在上一篇指南中,我介绍了 Servlet 中的[会话。在这里,我们将讨论用于会话管理的 Cookie。让我们回顾一下上一篇教程中的一些内容,以便我们可以关联会话和 cookie。当用户第一次访问 Web 应用时,servlet 容器通过调用 request.getSession()来创建新的 HttpSession 对象。为会话分配唯一​​的 ID。 **Servlet 容器还在 HTTP 响应的标头中设置 Cookie,其中包含 cookie 名称和唯一会话 ID 作为其值。**](https://beginnersbook.com/2013/05/http-session/) +在上一篇指南中,我介绍了 Servlet 中的[会话](https://beginnersbook.com/2013/05/http-session/)。在这里,我们将讨论用于会话管理的`Cookie`。让我们回顾一下上一篇教程中的一些内容,以便我们可以关联会话和`cookie`。当用户第一次访问 Web 应用时,servlet 容器通过调用`request.getSession()`来创建新的`HttpSession`对象。为会话分配唯一​​的 ID。Servlet 容器还在 HTTP 响应的标头中设置`Cookie`,其中包含`cookie`名称和唯一会话 ID 作为其值。 -cookie 存储在用户浏览器中,客户端(用户的浏览器)将此 cookie 发送回服务器以获取所有后续请求,直到 cookie 有效。 **Servlet 容器检查 cookie 的请求标头,并从 cookie 获取会话信息,并使用服务器内存中的关联会话。** +`cookie`存储在用户浏览器中,客户端(用户的浏览器)将此`cookie`发送回服务器以获取所有后续请求,直到`cookie`有效。Servlet 容器检查`cookie`的请求标头,并从`cookie`获取会话信息,并使用服务器内存中的关联会话。 -会话在 web.xml 中的 tag 中指定的时间内保持活动状态。如果未在 web.xml 中设置标记,则会话将保持活动状态 30 分钟。 **只要用户的浏览器正在运行**,Cookie 就会保持活动状态,一旦浏览器关闭,cookie 和相关的会话信息就会被破坏。因此,当用户再次打开浏览器并向 Web 服务器发送请求时,将创建新会话。 +会话在`web.xml`中的标签中指定的时间内保持活动状态。如果未在`web.xml`中设置标记,则会话将保持活动状态 30 分钟。 **只要用户的浏览器正在运行**,`Cookie`就会保持活动状态,一旦浏览器关闭,`cookie`和相关的会话信息就会被破坏。因此,当用户再次打开浏览器并向 Web 服务器发送请求时,将创建新会话。 -## 饼干的类型 +## `Cookie`的类型 -我们可以根据 Cookie 的到期时间对 Cookie 进行分类: +我们可以根据`Cookie`的到期时间对`Cookie`进行分类: -1. 会议 -2. 一贯 +1. 会话 +2. 持久 -**1)会话 Cookie:** +**1)会话`Cookie`:** -会话 Cookie 没有到期时间。它存在于浏览器内存中。一旦 Web 浏览器关闭,该 cookie 就会被破坏。 +会话`Cookie`没有到期时间。它存在于浏览器内存中。一旦 Web 浏览器关闭,该`cookie`就会被破坏。 -**2)持久性 Cookie:** +**2)持久性`Cookie`:** -与会话 Cookie 不同,它们具有到期时间,它们存储在用户硬盘中,并根据到期时间被销毁。 +与会话`Cookie`不同,它们具有到期时间,它们存储在用户硬盘中,并根据到期时间被销毁。 -## 如何将 Cookie 发送给客户 +## 如何将`Cookie`发送给客户 -以下是向客户端发送 cookie 的步骤: +以下是向客户端发送`cookie`的步骤: -1. 创建一个 Cookie 对象。 +1. 创建一个`Cookie`对象。 2. 设置最大年龄。 -3. 将 Cookie 放在 HTTP 响应标头中。 +3. 将`Cookie`放在 HTTP 响应标头中。 -#### 1)创建一个 Cookie 对象: +#### 1)创建一个`Cookie`对象: ```java Cookie c = new Cookie("userName","Chaitanya"); @@ -40,23 +40,23 @@ Cookie c = new Cookie("userName","Chaitanya"); #### 2)设置最大年龄: -通过使用 **setMaxAge()**方法,我们可以设置特定 cookie 的最大年龄(以秒为单位)。 +通过使用`setMaxAge()`方法,我们可以设置特定`cookie`的最大年龄(以秒为单位)。 ```java c.setMaxAge(1800); ``` -#### 3)将 Cookie 放在 HTTP 响应头中: +#### 3)将`Cookie`放在 HTTP 响应头中: -我们可以通过`response.addCookie()`方法将 cookie 发送到客户端浏览器。 +我们可以通过`response.addCookie()`方法将`cookie`发送到客户端浏览器。 ```java response.addCookie(c); ``` -## 如何阅读 cookies +## 如何阅读`cookie` ```java Cookie c[]=request.getCookies(); @@ -66,9 +66,9 @@ for(int i=0;i @@ -79,7 +79,7 @@ for(int i=0;i @@ -184,21 +184,20 @@ public class MyServlet2 extends HttpServlet { ![](img/8a4f68e6533768d919f075ed9e2c2c12.jpg) -## Cookie 类的方法 +## `Cookie`类的方法 -**public void setComment(String purpose)**:此方法用于在 cookie 中设置注释。这主要用于描述 cookie 的用途。 +`public void setComment(String purpose)`:此方法用于在`cookie`中设置注释。这主要用于描述`cookie`的用途。 -**public String getComment()**:返回描述此 cookie 用途的注释,如果 cookie 没有注释,则返回 null。 +`public String getComment()`:返回描述此`cookie`用途的注释,如果`cookie`没有注释,则返回`null`。 -**public void setMaxAge(int expiry)**:以秒为单位设置 cookie 的最大年龄。 +`public void setMaxAge(int expiry)`:以秒为单位设置`cookie`的最大年龄。 -**public int getMaxAge()**:获取此 Cookie 的最大年龄(以秒为单位)。 -默认情况下,返回-1,表示 cookie 将持续到浏览器关闭。 +`public int getMaxAge()`:获取此`Cookie`的最大年龄(以秒为单位)。默认情况下,返回 -1,表示`cookie`将持续到浏览器关闭。 -**public String getName()**:返回 cookie 的名称。创建后无法更改名称。 +`public String getName()`:返回`cookie`的名称。创建后无法更改名称。 -**public void setValue(String newValue)**:为此 Cookie 指定一个新值。 +`public void setValue(String newValue)`:为此`Cookie`指定一个新值。 -**public String getValue()**:获取此 Cookie 的当前值。 +`public String getValue()`:获取此`Cookie`的当前值。 -上面的列表只有常用的方法。要获得 Cookie 类的完整方法列表,请参阅[官方文档](https://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html)。 \ No newline at end of file +上面的列表只有常用的方法。要获得`Cookie`类的完整方法列表,请参阅[官方文档](https://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html)。 \ No newline at end of file -- GitLab