JavaWeb--快速入门JSP(2)

151 阅读4分钟

「这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战

前言

路遥说,在一个平凡的世界里,人要承受一定的痛苦和不安。但只要相信个体奋斗的力量,坚定地与生存搏斗,就能过上想要的生活。

很喜欢《平凡的世界》的一句话,一直不断的鼓励我努力向前,也送个各位看到这个写的很烂的文章的人,共勉~

四.jsp九大内置对象

jsp 中的内置对象,是指 Tomcat 在翻译 jsp 页面成为 Servlet 源代码后,内部提供的九大对象,叫内置对象。

request 请求对象

response 响应对象

pageContext jsp的上下文对象

session 会话对象

application ServletContext对象

config ServletConfig对象

out jsp输出流对象

page 指向当前jsp的对象

exception 异常对象

五.jsp四大域对象

四个域对象分别是: pageContext (PageContextlmpl类) 当前jsp页面范围内有效

request (HttpServletRequest类) 一次请求内有效

session (HttpSession类) 一个会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)

application (ServletContext类) 整个web 工程范围内都有效(只要web 工程不停止,数据都在)

域对象是可以像Map一样存取数据的对象。四个域对象功能一样。不同的是它们对数据的存取范围。 ==域对象是可以像Map一样存取数据的对象。==四个域对象功能一样。不同的是它们对数据的存取范围。

第一次请求

请求转发了,但pageContext只在jsp页面范围内有效,所以为null

image-20211225203608702

第二次请求

request域也失效了,因为request一次请求内有效

image-20211225203716513

第三次请求

我们关闭浏览器在访问这个地址,session域的内容也会消失

image-20211225203944191

第四次请求

重启工程,再次访问application域内容也会消失

image-20211225204136922

虽然四个域对象都可以存取数据。在使用上它们是有优先顺序的。

四个域在使用的时候,优先顺序分别是,他们从小到大的范围的顺序。

pageContext =》 request =》session =》 application

选择最小的有效范围,他就会在最短时间内得到内存的释放,其实是对服务器内存压力的释放

六.jsp中的out输出和resonse.getWriter输出的区别

response 中表示响应,我们经常用于设置返回给客户端的内容(输出)

out 也是给用户做输出使用的

image-20211225205435708

由于 jsp 翻译之后,底层源代码都是使用 out 来进行输出,所以一般情况下。我们在 jsp 页面中统一使用 out 来进行输出。避 免打乱页面输出内容的顺序。

out.write() 输出字符串没有问题 

​ out.print() 输出任意数据都没有问题(都转换成为字符串后调用的 write

七.jsp的常用标签

jsp 静态包含

在实际运用中也是,web工程有很多子页面,页面最下面都是一样的。如果要更改的话,通过静态包含不用把代码写上去,只要写个静态包含即可

<%--

​ <%incLude file=""%>就是静态包含 ​ fiLe 属性指定你要包含的jsp页面的路径 ​ 地址中第一个斜杠│表示为http:/ /ip:port/工程路径/映射到代码的web目录

静态包含的特点: ​ 1、静态包含不会翻译被包含的jsp页面。 ​ 2、静态包含其实是把被包含的jsp页面的代码拷贝到包含的位置执行输出。

<%@ include file="/include/footer.jsp"%>

jsp 动态包含

<%-- <jsp:include page=""></jsp:incLude>这是动态包含

​ page属性是指定你要包含的jsp页面的路径

​ 动态包含也可以像静态包含一样。把被包含的内容执行输出到包含位置

​ 动态包含的特点: ​ 1、动态包含会把包含的jsp页面也翻译成为java 代码

​ 2、动态包含底层代码使用如下代码去调用被包含的jsp 页面执行输出。

​ JspRuntimeLibrary.include(request,response,"/include/footer.jsp" , out,false);

​ 3、动态包含,还可以传递参数 --%>

<jsp:include page=" /include/footer.jsp">
	<jsp:param name="username" value="bbj"/>
	<jsp:param name="password" value="root" /></jsp:include>

image-20211225133804552

我们了解即可~~

jsp 标签转发

<%--
	<jsp:forward page=""></jsp:forward>是请求转发标签,它的功能就是请求转发
		page 属性设置请求转发的路径
--%>

<jsp:forward page=" / scope2.jsp"></jsp:forward>

八.什么是Listener监听器

1、Listener监听器它是JavaWeb 的三大组件之一。JavaWeb的三大组件分别是: Servlet程序、Filter过滤器、Listener l监听器。

2、Listener 它是JavaEE的规范,就是接口

3、监听器的作用是,监听某种事物的变化。然后通过回调函数,反馈给客户(程序)去做一些相应的处理。

ServletContextListener它可以监听servletContext对象的创建和销毁。

ServletContext对象在 web工程启动的时候创建,在web工程停止的时候销毁。

监听到创建和销毁之后都会分别调用servletContextListener监听器的方法反馈。

image-20211225134535772

image-20211225134602611