TODO java-web相关 servlet过滤器+监听器
servlet过滤器
定义:
过滤器是小型的web组件,它负责拦截请求和响应,以便查看、提供或以某种方式操作正在客户机和服务器之间交换的数据。
与过滤器相关的servlet共包含3个简单接口:Filter/Filter-Chain/FilterConfig.
要实现过滤器功能,必须先实现Filter接口。
与servlet类似,Filter也需要在web.xml中配置。
过滤器的使用:
1.在实际应用中,可能会遇到需要对某些IP进行访问限制,不让非法的IP访问应用系统,这是就需要用到过滤器进行限制。
当一个用户发出访问请求时,首先通过过滤器进行判断,如果用户的IP地址呗限制,就禁止访问,只有合法的IP才可以继续访问。
2.打印版权有效期
servlet监听器
主要用来对web应用进行监听和控制,增强web应用的时间处理能力。
servlet监听就是指一些特殊的servlet类,这些类可以监听web应用上下文信息,servlet会话信息、servlet请求信息。
cookie是一种在客户端保存信息的技术。
在servlet中,使用java.servlet.http.Cookie类来封装一个Cookie消息,在HttpServletResponse接口中定义了一个addCookie方法来向浏览器发送Cookie消息(也就是Cookie对象),在HttpServletRequest接口中定义了一个getCookies方法来读取浏览器发送的web服务器的所有cookie消息。
SaveCookie
response.setContentType("text/html;charset=UTF-8");
//添加临时Cookie对象
PrintWriter out = response.getWriter();
//建立超时时间为0的Cookie
Cookie tempCookie = new Cookie("cookie","87654321");
cookie.setMaxAge(0);
response.addCookie(cookie);
String user = request.getParameter("user");
if(user!=null){
//建立永久cookie对象
cookie userCookie = new Cookie("user",user);
userCookie.setMaxAge(60*60*24);
userCookie.setPath("/");
//添加永久cookie对象
response.addCookie(userCookie);
}
RequestDispatcher readCookie =
getServletContext().getRequestDispatcher("/ReadCookie")
readCookie.include(request,response);
ReadCookie
public class ReadCookie extends HttpServlet{
protected Cookie getCookieValue(Cookie[] cookies,String name){
if(cookies !=null){
for(Cookie c :cookies){
if(c.getName().equals(name))
return c;
}
}
return null;
}
public void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//获取临时cookie
Cookie tempCookie =getCookieValue(request.getCookies(),"temp");
if(tempCookie!=null)
out.println("临时Cookie的值"+tempCookie.getValue()+"<br/>");
else
out.println("临时cookie未设置!<br/>");
//获取超时时间为0的cookie
Cookie cookie = getCookieValue(request.getCookies(),"cookie");
if(cookie!=null)
out.println("cookie:"+cookie.getValue()+"<br/>");
else
out.println("cookie已经被删除!<br/>");
//获取永久cookie
Cookie userCookie = getCookieValue(request.getCookies(),"userCookie");
if(userCookie!=null)
out.println("user:"+userCookie.getValue());
else
out.println("user未设置");
}
}
Session技术
session对象用来保存每个用户的用户信息和会话状态。
session对象有服务器端自动创建,可以跟踪每个用户的操作状态。
用户首次登陆系统是,服务器会自动给用户分配唯一表示的SessionID,可以用来区分开其他用户。相对Cookie,Session是存储在服务器端的会话,相对安全,而且其存储长度限制也比Cookie的存储长度限制扩大了。
通过Cookie跟踪Session;(尚不清楚什么原理)
//todo
通过URL跟踪Session;
TODO java-web相关 servlet过滤器+监听器的更多相关文章
- 在Java Web程序中使用监听器可以通过以下两种方法
之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...
- Java web相关内容
我们即将学习Java web 这是通过查阅资料找到的和Java web 相关的内容. 一:Java web的含义 JavaWeb,是用Java技术来解决相关web互联网领域的技术总和.web包括:we ...
- Java Web相关技术(汇聚页)
Java Web相关技术(汇聚页) 初学Java Web(2)——搭建Java Web开发环境
- Java Web之Servlet中response、request乱码问题解决
Java Web之Servlet中response.request乱码问题解决 一.request请求参数出现的乱码问题 get请求: get请求的参数是在url后面提交过来的,也就是在请求行中, ...
- java web中servlet、jsp、html 互相访问的路径问题
java web中servlet.jsp.html 互相访问的路径问题 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可 ...
- 使用Intellij idea新建Java Web项目(servlet) 原理及初步使用
准备 JDK (配置JDK_HOME\bin 和 CLASSPATH) 注:JDK8下载已经需要注册了,请使用JDK11(现在是官方长期支持的版本) 对于我们新手来说,JD ...
- JAVA WEB 用servlet实现分页,思路比较清晰和简单。
JAVA WEB 用servlet实现分页,思路比较清晰和简单.借鉴了其他大佬的思路.特别感谢. 是我第一次发表博客,如果有什么错误,欢迎大家指出!,谢谢 一.思路分析 前台一定是有类似这种的界面 点 ...
- 05).30分钟学会Servlet+过滤器+监听器+实际案例
一.Servlet简介: Servlet程序处理流程 二.Servlet程序实现 实现要求 Servlet属于java ee范畴,而java和javac属于java se范畴,要想编译servlet必 ...
- Java Web进阶——Filter过滤器
一.过滤器的介绍: 在Servlet规范2.3中定义了过滤器,它是一个服务器端的组件,可以截取用户端的请求与响应信息,并且对这些信息进行过滤. Servlet过滤器本身并不生成请求和响应对象,只是提供 ...
随机推荐
- 老男孩python学习自修第十九天【异常处理】
1.常见的错误 TypeError 类型错误 NameError 没有该变量 ValueError 不期望的值 AttributeError 没有该属性 UnboundLocalError 没有该局部 ...
- fiddler 笔记-重定向
重定向功能:主要是进行会话的拦截,然后替换原始资源的功能 选择请求-到autoresponser面板-勾选 enable rules :add rules 设置如下: 2 在浏览器中请示url-页面跳 ...
- Eclipse报错:An internal error has occurred. Widget is disposed
win10家庭版报错. 右键Eclipse的快捷方式,在兼容性窗口的兼容模式中,将“以兼容模式运行这个程序”选项打对勾.选择win8就可以解决问题.
- 二、两条Linux删除数据跑路命令
一.rm rm -rf / 无提示循环删除根目录,,删除存在被恢复的可能 二.dd dd if=/dev/urandom of=/dev/hda1 随机填写数据到相应分区,直到填满为止.重写后的分区无 ...
- 学习 Spring (十三) AOP 配置
Spring入门篇 学习笔记 Spring 所有的切面和通知器都必须放在一个 内(可以配置包含多个 元素),每一个 可以包含 pointcut, advisor 和 aspect 元素(它们必须按照这 ...
- 【Python】一份非常好的Matplotlib教程
Matplotlib 教程 本文为译文,原文载于此,译文原载于此.本文欢迎转载,但请保留本段文字,尊重作者和译者的权益.谢谢.: ) 介绍 Matplotlib 可能是 Python 2D-绘图领域使 ...
- 洛谷P1360 [USACO07MAR]黄金阵容均衡题解
题目 不得不说这个题非常毒瘤. 简化题意 这个题的暴力还是非常好想的,完全可以过\(50\%\)的数据.但是\(100\%\)就很难想了. 因为数据很大,所以我们需要用\(O(\sqrt n)\)的时 ...
- base64URL处理
加密 String str="hello world"; String encode= Base64.getUrlEncoder().encodeToString(str.getb ...
- restTemplate 发送http post请求带有文件流、参数
String httpMethod = ""; RestTemplate restTemplate = new RestTemplate(); String args = &quo ...
- 【GZOI2015】石子游戏 博弈论 SG函数
题目大意 有\(n\)堆石子,两个人可以轮流取石子.每次可以选择一堆石子,做出下列的其中一点操作: 1.移去整堆石子 2.设石子堆中有\(x\)个石子,取出\(y\)堆石子,其中\(1\leq y&l ...