步骤 2 : 配置web.xml 步骤 3 : testRequest.jsp 步骤 4 : 测试
RequestListener 实现接口 ServletRequestListener和ServletRequestAttributeListener
requestInitialized() 当新创建了一个Request的时候触发,只要访问了服务端的资源,就会创建一个Request,无论是jsp,servlet还是html requestDestroyed() 当本次请求结束的时候触发 attributeAdded 当有新增属性时触发 attributeReplaced 当有替换属性时触发 attributeRemoved 当有移除属性时触发 package listener;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class RequestListener implements ServletRequestListener, ServletRequestAttributeListener {
@Override
public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("销毁了一个Request ");
}
@Override
public void requestInitialized(ServletRequestEvent arg0) {
System.out.println("创建了一个Request ");
}
@Override
public void attributeAdded(ServletRequestAttributeEvent e) {
System.out.println("request 增加属性 ");
System.out.println("属性是" + e.getName());
System.out.println("值是" + e.getValue());
}
@Override
public void attributeRemoved(ServletRequestAttributeEvent arg0) {
System.out.println("request 移除属性 ");
}
@Override
public void attributeReplaced(ServletRequestAttributeEvent arg0) {
System.out.println("request 替换属性 ");
}
}
<listener>
<listener-class>listener.RequestListener</listener-class>
</listener>
<listener> <listener-class>listener.RequestListener</listener-class> </listener>
测试页面,先在request中设置test,然后替换,最后移出掉test
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setAttribute("test", 1);
request.setAttribute("test", 2);
request.removeAttribute("test");
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setAttribute("test", 1); request.setAttribute("test", 2); request.removeAttribute("test"); %>
访问页面
http://127.0.0.1/testRequest.jsp 观察测试结果
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2019-01-14
这个request监听和销毁太频繁了吧,感觉没什么用
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2018-11-29
到底什么是request,什么是session?
4 个答案
VOID1 跳转到问题位置 答案时间:2021-04-07 作用域不一样
now2iava 跳转到问题位置 答案时间:2019-04-30 前面的知识有啊,不清楚的话再去网上看看。其实字面意思就能大概看到,request就是请求,鼠标点击一个按钮,客户端发送请求到服务器,服务器返回响应response给客户端,而session的意思是“会话”,相当于客户端与服务器之间的交流,生命周期比request长。另外还有application和page,前面都讲过的。
java迷途小菜鸡 跳转到问题位置 答案时间:2018-12-03 okay,谢谢解答
怪咖小森 跳转到问题位置 答案时间:2018-12-02 就是jsp代码的生命周期不同,request就是一次请求之后就释放了,session是一个用户打开浏览器开始直到关闭浏览器,之间无论浏览多少信息都是一个session(浏览器等待一般不超过30分钟),个人理解。
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2018-10-17
第二行的 request 替换属性 是怎么出现?
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|