作用域对象,基于MVC模型使用分层模式完成添加,删除,修改,模糊查询

本文介绍了在Java环境下,基于MVC模型和分层模式实现的添加、删除、修改功能,详细讲解了ServletContext、pageContext、request、session和application的作用域对象,并展示了在页面中如何进行数据操作。此外,还涵盖了模糊查询的实现方法,包括搜索表单页面的定义和查询结果的展示。
摘要由CSDN通过智能技术生成

一、作用域对象:

1. 什么是作用域

作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。

作用域就是一个独立的地盘,让变量不会外泄、暴露出去。也就是说作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。

作用域是分层的,内层作用域可以访问外层作用域的变量,反之则不行。

ServletContext:

Web容器在启动时,会为每一个Web程序都创建一个对应的ServletContext对象。它是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。

作用域对象:pageContext:request:session:application:

pageContext::只能在当前页面定义数据,当前页面使用。

request:后端程序和页面有请求关系,则数据可以共享。

session:是当前会话有效(同一个人使用同一个浏览器在任何页面都可以数据共享)

application:是整个服务器有效,所有用户的请求都可以数据共享。

pageContext:

pageContext对象:它的生命周期即page域,指储存在pageContext对象的数据只在当前页面有效,当页面跳转时,则在pageContext域的数据进行销毁。


request:

request对象主要用于处理客户端请求,同时request对象也是作用域对象,它的作用域范围是同一个请求。


session:

session对象用来储存有关用户会话的所有信息,它的作用域范围是同一个会话


session对象常用的方法:

void setAttribute(String key,object value):application:以键/值的方式,将一个对象的值存放到session中

session.setAttribute("name","admin");

Object getAttribute(String key):根据名称去获取session中存放对象的值

String name=(String ) session.getAttribute("name");
 

application:

application类似于系统的“全局变量”,用于实现用户之间的数据共享,它的作用域范围是在服务器一开始执行服务,到服务器关闭为止。


注:请求转发:会保留原来的地址不变

application 对象实现了javax.servlet.ServletContext 接口

application对象的常用方法:
void setAttribute(String key,Object value): 以键/值的方式,将一个对象的值存放到application中

void getAttribute(String key)通过键的方式,把对应的值取出来 。


 作用域对象测试:

package com.su.servlet;
 
import javax.servlet.ServletContext;
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 java.io.IOException;
 
public class Test01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.pageContext
        //2.request
        request.setAttribute("name","request");
        //3.session
        HttpSession session=request.getSession();
        session.setAttribute("name","session");
        //4.application
        ServletContext application = request.getServletContext();
        application.setAttribute("name","application");
 
 
    }
}

<%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2023/2/23
  Time: 11:05
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>作用域对象测试</title>
</head>
<body>
<%--
EL表达式获取作用域对象得顺序是:pageContext(当前页面)、request(请求问)、session(当前会话)、application(应用程序)
--%>
<h2>
    pageContext只能当前页面定义数据,当前页面使用
    request后端程序和页面有情关系,则数据可以共享
    session是当前会话有效(同一个人使用同一个浏览器在任何页面都可以数据共享)
    application是整个服务器有效,所有用户得请求可以数据共享
</h2>
${name}
</body>

二、 基于MVC模型使用分层模式完成添加

编辑主页内容

 创建用户自主添加商品信息页面

 请求转发执行查询所有

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值