day82 过滤器 监听器

news2024/12/26 0:12:07

过滤器

监听器

一 过滤器

        手动在web.xml配置过滤器

        url-pattern设置过滤器要保护的资源的路径

         每当我打开一次index.jsp页面或者第一个jsp.jsp页面,都会在控制台输出:-------------   

        表示先走过一次过滤器

 添加注解的方式配置过滤器

           value值代表要保护的资源路径,多个资源路径用花括号和逗号拼接

 多个过滤器对同一个资源路径的执行顺序

        虽然添加注解的方式比较方便,但触发过滤器先后执行顺序依据web.xml文件的先后顺序为准,因为web.xml配置文件最先被解析执行。

        所以想要决定执行顺序,尽量在xml文件中配置过滤器。

        或者每个过滤器起名一样,在名字后加123数字来决定先后顺序

 过滤器的拦截目标

        默认拦截重定向的访问,转发请求可以直接绕过过滤器直接访问资源路径

需要设置 dispatcher标签对其他访问方式进行拦截

 

 对控制器所有以.do结尾设置请求数据和响应数据编码集为"utf-8"

        这样就不用在控制器中写请求数据的编码集格式了

         response.setContentType设置的是jsp界面文本的输出格式

 实现一个用户登录过滤请求


                    login.jsp  ,login.do  -->登录
                    index.jsp  (超链接: 登录 ,我的购物车,我的订单,商品列表)
                    car.jsp,car.do   -->购物车
                    orders.jsp,order.do  -->订单
                    goodsList.jsp,goodsList.do  -->商品列表
                    要求: 购物车,订单必须登录后可访问 ,未登录则跳转到登录页面
                2.1) 目录结构
                        1 需要登录后可访问 资源 都统一设置到/admin目录下
                        2 直接访问的资源 ,不放到此目录

 二 监听器

        可以监听WEB应用程序中request,session,application作用域 对象的状态。
        这些对象的状态的改变监听器都能捕获。
        当对象的状态产生了改变就自动被监听器捕获,并调用相应的方法。

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;

@WebListener
public class Listener implements ServletContextListener, HttpSessionListener, HttpSessionAttributeListener {

    public Listener() {
    }

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        /* This method is called when the servlet context is initialized(when the Web application is deployed). */
        System.out.println("-----------application创建");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        /* This method is called when the servlet Context is undeployed or Application Server shuts down. */
        System.out.println("------------application销毁");
    }

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        /* Session is created. */
        System.out.println("-------------session建立");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        /* Session is destroyed. */
        System.out.println("------------session销毁");
    }

    @Override
    public void attributeAdded(HttpSessionBindingEvent sbe) {
        /* This method is called when an attribute is added to a session. */
    }

    @Override
    public void attributeRemoved(HttpSessionBindingEvent sbe) {
        /* This method is called when an attribute is removed from a session. */
    }

    @Override
    public void attributeReplaced(HttpSessionBindingEvent sbe) {
        /* This method is called when an attribute is replaced in a session. */
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1605177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win11关闭Bitlocker

Win11关闭Bitlocker - 知乎 Win11默认开启 Bitlocker功能,如果想关闭,可参照以下步骤: 1.点击开始菜单,选择设置 2.点击左侧“隐私和安全性”菜单,然后进入右侧的“设备加密”选项 3.将设备加密选项关闭即可 点击关闭…

【Linux】Linux基础与常用指令大全

文章目录 操作系统是什么?1. Linux家族介绍2. Linux的安装方式3. 常用指令3.1 ls [选项] [目录/文件](显示目录或文件信息)3.2 pwd(显示当前所在目录)3.3 任意指令加上 --help(查看指令的用法)3…

腾讯云APP备案指南:一站式完成备案手续,助您顺利上线

工信部最新通知要求所有互联网信息服务提供者完成移动互联网应用程序备案手续。腾讯云为开发者提供了简单易行的备案流程,本文详细解答如何在腾讯云平台完成备案,帮助开发者快速上线自己的APP。从验证备案域名到腾讯云审核,一步步指导您完成备…

视频素材库在哪里找免费?几个短视频素材大全告诉您

在这个视觉传达愈发重要的数字时代,拥有一库多样而高质量的视频素材是每位创作者的必备武器。从广告制作到社交媒体分享,优质的视频素材不仅能够增强视觉效果,还能显著提升受众的参与度。以下是一系列精选的全球视频素材网站,旨在…

3W 1.5KVDC 隔离单输出 DC/DC 电源模块 ——TPL-3W 系列

TPL-3W系列是一款额定功率为3W的隔离产品,国际标准引脚,宽范围工作温度–40℃ 到 105℃,在此温度范围内都可以稳定输出3W,并且效率非常高,高达88%,同时负载调整率非常低,对于有输出电压精度有要…

汇编语言——将DX,AX组成的32位数循环左/右移3位

文章目录 将DX,AX组成的32位数循环左移3位将DX,AX组成的32位数循环右移3位 将DX,AX组成的32位数循环左移3位 data segment data ends stack segment stacktop label worddw 100 dup (?) stack ends code segmentassume cs:code,ds:data,ss:s…

web前端网络相关知识

一、OSI 7层参考模型 1.物理层(光纤、电缆等物理介质) 传播比特流(bit) 01010101的形式 2.数据链路层(交换机,mac地址) 将比特流组合成字节,组合成帧,用mac地址访问&…

Opentelemetry——分析C++项目链接时循环依赖导致的错误

大纲 环境分析过程函数是否真的未定义是否有完整实现被谁编译代码是否被编译到静态库 链接出现了什么问题原因猜想 解决方案参考资料 在《Opentelemetry-Language APIs & SDKs-CGetting Started》一文中,介绍了如果编译一个可以发出Trace遥测数据的C项目。虽然过…

制作直通网线和交叉网线

制作直通网线和交叉网线 1. 网络直通线2. 网络交叉线References 双绞线的连接方法有两种:直通连接和交叉连接 。 直通连接是将双绞线的两端分别都依次按白橙、橙、白绿、蓝、白蓝、绿、白棕、棕色的顺序 (国际 EIA/TIA 568B 标准) 压入 RJ45 水晶头内。这种方法制作…

SpringMVC(二)【请求与响应】

0、测试环境 我们简化开发,创建一个简单的环境(因为没有其它包比如 service、dao,所以这里不用 Spring 容器,只用 SpringMVC 容器): Servelet 容器配置: package com.lyh.config;import org.s…

物理学视角讲解diffusion生成模型——混合高斯扩散模型

学习评分函数 想要通过逆向扩散从某个目标分布中抽样——其功能形式未知,我们只能通过抽样来学习——但这需要我们知道对应于目标分布的评分函数。知道评分函数,即这个分布对数的梯度,似乎等同于知道分布本身。我们如何学习评分函数呢&#…

Android--ConnectivityManager使用

一、前言 Android10之后官方废弃了通过WifiManager连接WIFI的方式,现在要使用ConnectivityManager连接WIFI 二、连接WIFI public class MainActivity extends AppCompatActivity {private static final String TAG"lkx";Overrideprotected void onCrea…

【MongoDB】数据的自动过期,TTL索引

文章目录 1. 前言2.概念与使用2.1.使用方式2.2.数组中包含日期字段2.3.设置具体的过期时间点2.4.额外的过滤条件 3.总结 1. 前言 在近期的工作中,使用了MongoDB来保存了一些日志数据,但是这些日志数据具有一定的时效性,也就是按照业务的需要…

K8S部署Nginx与问题

【containerd错误解决系列】failed to create shim task, OCI runtime create failed, unable to retrieve OCI... 环境 # cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) # uname -r 4.18.0-348.rt7.130.el8.x86_64 问题及现象 1、pod的状态全部都是Conta…

lua学习笔记18(面相对象之多态)

print("*****************************面相对象多态*******************************") --相同方法不同执行逻辑 object{} object.id1 function object:new()local obj{}self.__indexself setmetatable(obj,self)return obj end function object:subClass(className)…

C/C++基础----内存相关

malloc分配内存 用法 参数为要开辟内存的大小&#xff08;字节为单位&#xff09;返回值为void*,所以要强转一下语法&#xff1a;malloc()动态开辟20个字节的内存&#xff0c;代码&#xff1a;#include <iostream>using namespace std;int main() {int *a (int *) mal…

利用常量数组解码的方法

【题目描述】 把手放在键盘上时&#xff0c;稍不注意就会往右错一位。这样&#xff0c;输入Q会变成输入W&#xff0c;输入J会变成输入K等。键盘如图所示。 输入错位后敲出的几行字符串&#xff0c;输出打字员本来想打出的句子。 输入仅包含数字、空格、大写字母或标点符号&am…

笔试题4 -- 除2!(k次机会偶数除2求最小和)

除2&#xff01;(k次机会偶数除2求最小和) 文章目录 除2&#xff01;(k次机会偶数除2求最小和)读懂题目方案一&#xff08;基于multiset实现 -- 超时&#xff09;方案二&#xff08;改进算法--基于 priority_queue 实现&#xff09;总结 题目链接&#xff1a; 除2&#xff01;…

【优质书籍推荐】《Effective Java》是人工智能的基石

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

3D可视化技术:研发基地的科技新篇章

在科技日新月异的今天&#xff0c;我们生活在一个充满无限可能性的时代。而在这个时代中&#xff0c;3D可视化技术正以其独特的魅力&#xff0c;引领着科技领域的新一轮变革。 3D可视化技术通过三维图像的方式&#xff0c;将现实世界或虚拟世界中的物体、场景等以立体、逼真的形…