哈尔滨建站模板源码小发明小制作简单易学

web/2025/10/6 20:04:38/文章来源:
哈尔滨建站模板源码,小发明小制作简单易学,旅行网站建设,网站建设pdf下载原本计划这一篇来总结JSP#xff0c;由于JSP的内容比较多#xff0c;又想着晚上跑跑步减减肥#xff0c;所以今天先介绍Filter以及它的使用举例#xff0c;这样的话还有些时间可以锻炼锻炼。言归正传#xff0c;过滤器从字面理解她的话有拦网、过滤的功能#xff0c;可以…原本计划这一篇来总结JSP由于JSP的内容比较多又想着晚上跑跑步减减肥所以今天先介绍Filter以及它的使用举例这样的话还有些时间可以锻炼锻炼。言归正传过滤器从字面理解她的话有拦网、过滤的功能可以算是JavaWeb的拦精灵。 一、由来 客户端发起请求那服务器不能什么请求都做出响应,做拦截处理不仅能减轻服务器的压力还能保护数据的安全同样服务端做出响应给客户端时有时也需要进行过滤比如我们常见的图片添加水印。为了处理这些问题于是过滤器出现了。有时不仅仅对请求与响应进行一层的过滤可能会过滤多层所以提出了滤镜链(FilterChain)的概念. 二、使用 在使用它之前先熟悉下它的作用的地方。过滤器作用在请求Request到达Servlet之前以及响应Response到达浏览器之前会依次经过过虑链。有些类似asp.net中的httpmodule.使用Filter主要是实现javax.servlet.filter接口。查看API可看到有3个方法。 1.public void init(FilterConfig filterConfig) throws ServletException 由 Web 容器调用指示将放入服务中的过滤器。servlet 容器只在实例化过滤器之后调用一次 init 方法。在要求过滤器做任何过滤工作之前init 方法必须成功完成。如果 init 方法抛出 ServletException或没有在 Web 容器定义的时间段内返回则 Web 容器无法将过滤器放入服务中。这个和Servlet的生命周期有点类似也是只初始化一次destroy()也是执行一次。 2.public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException 每次由于对链末尾的某个资源的客户端请求而通过链传递请求/响应对时容器都会调用 Filter 的 doFilter 方法。传入此方法的 FilterChain 允许 Filter 将请求和响应传递到链中的下一个实体。此方法的典型实现遵循以下模式1. 检查请求2. 有选择地将带有自定义实现的请求对象包装到用于输入过滤的过滤器内容或头中 3. 有选择地将带有自定义实现的响应对象包装到用于输出过滤的过滤器内容或头中 4. a) 既可以使用 FilterChain 对象 (chain.doFilter()) 调用链中的下一个实体 4. b) 也可以不将请求/响应对传递给过滤器链中的下一个实体从而阻塞请求处理5. 在调用过滤器链中的下一个实体之后直接设置响应上的头。 3.public void destroy() 由 Web 容器调用指示将从服务中取出的过滤器。此方法仅在过滤器的 doFilter 方法中的所有线程都已退出之后调用一次或者在过了超时期之后调用。在调用此方法之后Web 容器不会再对此过滤器实例调用 doFilter 方法。此方法为过滤器提供了一个清除持有的所有资源比如内存、文件句柄和线程的机会并确保任何持久状态都与内存中该过滤器的当前状态保持同步。 三、案例 使用过滤器的地方有很多这里就不一一举例下面的demo在上篇博客中HelloWorld项目的基础上实现防盗链的功能以此体会Filter的使用。 1.准备 在HelloWolrd项目中新增一个文件夹在文件夹中放入两个图片一个err.png 一个test.png两个图如下 2.创建Filter 这里也没新建Filter包直接在上一博客中的com.test.cyw包中创建Filter文件MyFilter,应该是创建一个包专门管理Filter类的额这里只是做测试。创建完成之后可以看到MyFilter继承Filter。 public class MyFilter implements Filter View Code 3.在doFilter中实现防盗链 package com.test.cyw;import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.*;/*WebFilter(/MyFilter)*/ public class MyFilter implements Filter {public MyFilter() {}public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest req(HttpServletRequest)request;HttpServletResponse res(HttpServletResponse)response;String refererreq.getHeader(referer);//链接来源地址if(referernull||!referer.contains(req.getServerName())){req.getRequestDispatcher(/Images/err.png).forward(req, res);return;}chain.doFilter(req, res);}public void init(FilterConfig fConfig) throws ServletException {} } View Code 4.Filter配置 上面只是创建了一个类实现了Filter接口如何让Tomcat知道呢这和Servlet类似需要在Web.xml中配置。和配置servlet有点相同。 filterfilter-nameMyFilter/filter-namefilter-classcom.test.cyw.MyFilter/filter-class/filterfilter-mappingfilter-nameMyFilter/filter-nameurl-pattern/Images/*/url-pattern/filter-mapping View Code 5.测试 新建一个test.jsp文件在jsp中显示img可以正常显示 % page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8% !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd html head meta http-equivContent-Type contenttext/html; charsetUTF-8 titleInsert title here/title /head body img alt防盗链 srcImages/test.png width400 /body /html View Code 如果直接在浏览器输入test.png的地址则会显示err.png 四、遇到的问题 开始的时候由于地址错误导致谷歌浏览器test.jsp中显示的也是err.png的图片但当我换过来时刷新页面还是没变这个让我很纳闷。有时候将Tomca重启也不行试了好几次都是这样实在不行了用IE试了下没想到显示是正确的原来谷歌浏览器有缓存导致显示的不正确。 五、总结 Filter用处很多网上也有好多的例子,做项目时可以先实现一些常用的例如水印等用的时候只需配置下xml就能解决很是方便。转载于:https://www.cnblogs.com/5ishare/p/6557079.html

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

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

相关文章

免费的x网站域名做酒店网站

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/docking-monitoring.html Android设备可以被放置在若干种不同的扩展坞中。这些扩展坞包括汽车坞与家庭坞以及数字与模拟坞。其中坞的状态与充电状态非常相近,因为这些坞也提供了…

石家庄微网站建设公司网页游戏平台十大排名

help是一个内置函数,在Python中被自动加载的函数,参数分两种: 如果传一个字符串做参数的话,它会自动搜索以这个字符串命名的模块,方法,等。如果传入的是一个对象,就会显示这个对象的类型的帮助例…

企业手机网站建设策划方案房产交易中心官网

CF1178H Stock Exchange 题目描述 简要题意:给定2n2n2n个一次函数yaixbi(a,b>0)ya_ixb_i(a,b>0)yai​xbi​(a,b>0),刚开始你有前nnn个函数各一个,在任意时刻ttt,xxx函数可以转换为yyy函数当且仅当axtbx>aytbya_xtb_…

网站域名地址做游戏交易网站

目录 初始阶段:基础版本估计:数据计算高层设计**数据存储**SQL数据库结构把它们放在一起规模化阶段:5000 万用户、2 亿首歌曲引入 CDN扩展数据库:领导者-跟随者技术推荐超级课程: Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战这是一道系统设计面…

做网站联系我们在那个板块里面伊春网站优化

299. 猜数字游戏 题目描述: 你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示&…

旅游网站网页设计报告包装设计模板设计素材

总线 AHB总线 AHB的全称是"Advanced High-performance Bus",中文翻译就是"高级高性能总线"。这是一种在计算机系统中用于连接不同硬件组件的总线架构,它可以帮助这些组件之间高效地传输数据和信息。这个总线架构通常用于处理速度较快且对性能要求较高的…

电子商务适合女生学吗专业seo推广

术语表 术语定义访问控制条目 安全对象的自由访问控制列表 (DACL) 或对象的系统访问控制列表 (SACL) 中的一项。在 DACL 中,该项向用户或组授予权限或者拒绝向用户或组授予权限。在 SACL 中,该项指定审核特定用户或组的哪些安全事件或者控制对象的 Wind…

高校官方网站建设专业网站优化方案

Gitlab架构设计 方案一:SaaS方案 依赖资源: PostgreSQL: 阿里云SAAS服务高可用版2c4g/100GRedis:阿里云SAAS服务高可用版2G代码存储:阿里云NAS盘500GGitLab服务架构: 2*4c8g1*SLB(复用官网SLB)n*GitlabRunner备份方案 PostgreSQL通过阿里云备份功能每天备份一次 代码…

百度图片点击变网站是怎么做的怎么查看网站访问速度

原文:https://www.liaoxuefeng.com/article/00151054582348974482c20f7d8431ead5bc32b30354705000在大型应用程序中,配置主从数据库并使用读写分离是常见的设计模式。在Spring应用程序中,要实现读写分离,最好不要对现有代码进行改…

建设网站需要哪些域名太原app开发公司

起步 在python中文件监控主要有两个库,一个是pyinotify,一个是watchdog。pyinotify依赖于Linux平台的inotify,后者则对不同平台的的事件都进行了封装。因为我主要用于Windows平台,所以下面着重介绍watchdog(推荐大家阅…

进行网站建设视频教程营销型 展示类网站模板

国内下载docker镜像大部分都比较慢,下面给大家介绍2个镜像源。 一、阿里云的docker镜像源 注册一个阿里云用户,访问 https://cr.console.aliyun.com/#/accelerator 获取专属Docker加速器地址 使用的时候修改/etc/docker/daemon.json文件就可以了,修改保…

电子商务网站名称和网址网站稳定性不好的原因

本篇文章主要为大家讲述的是关于HTML frame标签的用法,还有关于frame标签中的属性介绍。还有关于frame标签的使用实例,下面就让我们一起来看看这篇文章吧首先我们先看看HTML frame标签的用法:标签定义 frameset 中的一个特定的窗口(框架)。fr…

漳州微信网站开发网站建设wesnowsat

耦合: 有一对热恋中的男女,水深火热的,谁离开谁都不行了,离开就得死,要是对方有一点风吹草动,这一方就得地动山摇。可以按照琼瑶阿姨的路子继续想象,想成什么样都不过分,他们之间的…

石家庄网站推广排名网站管理系统开发的

在森林消防领域,水泵是一个至关重要的设备。它的主要功能是将水源输送到火灾现场,为消防人员提供足够的水源进行灭火。然而,传统的水泵往往面临着距离限制的问题,这对于远距离输水来说是一个巨大的挑战。幸运的是,高扬…

网站营销 优势百度上的网站怎么做

一、题目 描述 给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的漂亮度是其所有字母漂亮度的总和 每个字母都有一个漂亮度,范围在1到26之间。没有任何两个不同字母拥有相同的漂亮度。字母忽略大小写。 给出多个字符串&#xff…

网站设计的工作要求360crm客户管理系统

问题预览/关键词 梯度下降不正常工作的曲线是什么样子?如何调试学习率来检测代码中的bug?学习率过小的后果是?如何选择学习率? 笔记 1.曲线错误的样子 曲线没有逐步递减,由于学习率选择过大或代码有bug。 2.调试…

资阳网站设计陕西省咸阳市建设银行网站

介绍 进程间通信的方式 1.Linux原生支持的管道----匿名和命名管道 2.System V-----共享内存、消息队列、信号量 3.Posix------多线程、网路通信 进程间通信目的 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。…

网站建设冷色调dw手机版下载安装

在php5.4版本之后有很多的函数与功能进行丢弃与升级功能了,现在国内很多CMS都还未按php5.4标准来做了,下面我整理了一些在ecshop在PHP 5.4以上版本各种错误问题处理. 1、PHP 5.4.X环境下安装ECShop出现“includes/cls_template.php on line 406…

app免费制作网站模板上海建站推广公司

目录 官方文档 简述 Aggregate的原型方法 aggregate进行操作 官方文档 Mongoose v8.0.3: Aggregate 简述 在 Mongoose 中,Aggregate 是用于执行 MongoDB 聚合操作的类。MongoDB 聚合操作是一种强大的数据处理工具,可以用于对集合中的文档进行变换和…

攀枝花市建设银行网站在线制作图片及图片处理工具免费

2 可见性 2.1 什么是可见性 可见性问题是基于CPU位置出现的,CPU处理速度非常快,相对CPU来说,去主内存获取数据这个事情太慢了,CPU就提供了 L1,L2,L3的三级缓存,每次去主内存拿完数据后&#x…