1、ServletContext
ServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象。
一个web应用对应一个ServletContext实例,这个实例是应用部署启动后,servlet容器为应用创建的。ServletContext实例包含了所有 servlet共享的资源信息。通过提供一组方法给servlet使用,用来和servlet容器通讯。
Session默认的生存时间是1800秒。
2、作用域对象
2、1 pageContext
ageContext对象:它的生命周期即page域,指存储在pageContext对象的数据只在当前页面有效,当发生页面跳转时,则在pageContext域的数据进行销毁。
2、2 request
request对象主要用于处理客户端请求,同时request对象也是作用域对象,它的作用域范围是同一个请求。
request对象常用方法
方法 | 说明 |
void setAttribute(String name,Object value) | 把name属性储存到request对象 |
Object getAttribute(String name) | 返回name属性的值 |
void removeAttribute(String name) | 从request对象中移除name属性 |
String getParameter(String name) | 返回指定name的参数值 |
Enumeration getParameterNames() | 以枚举类型返回所有的参数名称 |
String getParameterValues(String name) | 以字符数组类型返回所有指定name参数值 |
Map getParameterMap() | 以java.util.Map类型返回请求参数 |
2、3 session
session对象用来存储有关用户会话的所有信息,它的作用域范围是同一个会话
session对象常用方法:
void setAttribute(String key,Object value):以键/值的方式,将一个对象的值存放到session中
session.setAttribute("name","admin");
Object getAttribute(String key):根据名称去获取session中存放对象的值
String name =(string) session.getAttribute("name");
2、4 application
application类似于系统的“全局变量”,用于实现用户之间的数据共享,它的作用域范围是在服务器一开始执行服务,到服务器关闭为止。
application 对象实现了javax.servlet.ServletContext接口
application对象的常用方法:
void setAttribute(String key,Object value):以键/值的方式,将一个对象的值存放到application中
void getAttribute(String key)通过键的方式,把对应的值取出来。
pageContext只能当前页面定义数据,当前页面使用
request后端程序和页面有请求关系,则数据可以共享
session是当前会话有效(同一个人使用同一个浏览器在任何页面都可以数据共享)
application是整个服务器有效,所有用户的请求都可以数据共享
作用域对象测试
主页信息
<%@ page import="com.wen.bean.Goods" %>
<%@ page import="java.util.List" %><%--
Created by IntelliJ IDEA.
User: hcyns
Date: 2023/2/17
Time: 19:34
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--在页面导入jstl的核心类库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>主页</title>
</head>
<body>
<h2>欢迎来到主页!</h2>
<a href="addGoods.jsp">添加商品</a>
<table>
<thead>
<tr>
<th>商品编号</th>
<th>商品名称</th>
<th>商品价格</th>
<th>商品说明</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${goodsList}" var="goods">
<tr>
<td>${goods.gid}</td>
<td>${goods.gname}</td>
<td>${goods.price}</td>
<td>${goods.mark}</td>
<td>
<a href="#">修改</a>
<a href="del?gid=${goods.gid}">删除</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
添加信息操作
添加成功
删除信息操作
原来的商品信息
现在的商品信息
修改信息操作
修改成功
模糊查询操作