2024年JavaWeb jsp 笔记总结(1),三个月啃透888页Java王者级核心宝典

最后

总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习

还有更多学习笔记面试资料也分享如下:

都是“Redis惹的祸”,害我差点挂在美团三面,真是“虚惊一场”

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

域对象是可以像Map一样存取数据的对象。

这些域对象的功能差不多,但是作用范围不同!!!

在这里插入图片描述

(request域对象的范围是一次请求及其抓发。)

在这里插入图片描述

scope.jsp页面:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

scope.jsp页面

<%

//往四个域中都分别保存了数据

pageContext.setAttribute(“key”, “pageContext”);

request.setAttribute(“key”, “request”);

session.setAttribute(“key”, “session”);

application.setAttribute(“key”, “application”);

%>

pageContext域值是否有值:<%=pageContext.getAttribute(“key”) %>

request域值是否有值:<%=request.getAttribute(“key”) %>

session域值是否有值:<%=session.getAttribute(“key”) %>

application域值是否有值:<%=application.getAttribute(“key”) %>

<%

//下面代码就是一个请求转发的一个过程,以此来测试4个域对象的范围有何不同。

request.getRequestDispatcher(“/scope2.jsp”).forward(request, response);

%>

scope2.jsp页面:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

scope2.jsp页面

pageContext域值是否有值:<%=pageContext.getAttribute(“key”) %>

request域值是否有值:<%=request.getAttribute(“key”) %>

session域值是否有值:<%=session.getAttribute(“key”) %>

application域值是否有值:<%=application.getAttribute(“key”) %>

7. jsp的 out 和 response输出区别

========================================================================================


out和response输出时,没什么不同,但是有一定的顺序!!

在这里插入图片描述

伴随上图,定义out.write(“xxx”)输出数据时,它会先进入out缓冲区,同样response.getWriter().write()写数据时,也是进入response缓冲区。之后,out缓冲区的内容会追加到response缓冲区中,才有了这种顺序。

out.flush()方法执行时,会清空当前缓冲区,如果缓冲区中有数据,则输出缓冲中的数据,直接将现在的out缓冲区内容直接添加到response缓冲区中,因此,调用该方法时,就会注意out输出和response的顺序问题!!

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

测试

<%

out.write(“out输出1
”);

out.flush();//注意flush方法不同!!

out.write(“out输出2
”);

response.getWriter().write(“response输出1
”);

response.getWriter().write(“response输出2
”);

%>


因为,我们底层信息之类的都是用out.write()方法来运行的,因此我们在jsp页面中定义java代码,也用out来进行输出,不然会遇到顺序混乱的问题。


jsp中的out变量中有两个输出方法:

  • out.write()方法:输出字符串没有问题。

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

out.print()方法它是不管接受的参数类型,它的底层都是转为字符串类型,之后调用write()方法。

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

<%

//传入int类型,write它返回的就是一个acill码对应的字符,因为他的底层原理是一个char[]数组。

out.write(12);

//print没事就是因为,它无论接受什么都先将该类型转为字符串类型,之后在调用write()方法。

out.print(12);

%>

在这里插入图片描述

因为可能出现类似上面这种情况的出现,因此我们在jsp页面中,统一使用out.print()方法来输出。

8. jsp 的包含功能

==========================================================================


包含引入功能如下:

在这里插入图片描述

8.1 jsp 静态包含



静态包含的格式: <%@include file=“要包含的jsp页面的路径” %>

注意这里的" / "斜杆表示也是:http://ip:port/工程路径 映射到代码的web目录。

main.jsp包含引入footer.jsp:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

头部信息

主体内容

<%@include file=“/include/footer.jsp” %>

footer.jsp:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

页脚信息

在这里插入图片描述

静态包含的特点:

  • 静态包含不会把被包含的jsp页面翻译为java代码。

  • 静态包含其实是把被包含的jsp页面的代码拷贝到包含的位置执行输出。

8.2 jsp 动态包含



动态包含的特点:

  • 动态包含会把包含的jsp页面也翻译成为java代码。

  • 动态包含底层代码使用如下代码调用被包含的jsp页面输出。

在这里插入图片描述

  • 动态包含,还可以传递参数。

main.jsp代码如下:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

头部信息

主体内容

<jsp:include page=“/include/footer.jsp”>

<%-- 使用jsp和param这种name,value格式可以向footer.jsp发送数据。 --%>

<jsp:param value=“zhangsan” name=“username”/>

<jsp:param value=“123” name=“password”/>

</jsp:include>

footer.jsp代码如下:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

页脚信息,动态包含

<%-- 使用request.getParameter()可以获取到传过来的参数内容。 --%>

<%=request.getParameter(“username”) %>

<%=request.getParameter(“password”) %>

8.3 jsp 请求转发


请求转发两种方式:

  • 通过代码方式进行的请求转发。

  • <jsp:forward page=“”></jsp:forward>是请求转发标签,它的功能就是请求转发。

a.jsp代码如下:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

<%–

<% //请求转发方式一:通过代码方式进行的请求转发如下:

request.getRequestDispatcher(“/include/b.jsp”).forward(request, response);%>

–%>

<%–

请求转发方式二: <jsp:forward page=“”></jsp:forward>是请求转发标签,它的功能就是请求转发。

page 属性设置请求转发的路径

–%>

<jsp:forward page=“/include/b.jsp”></jsp:forward>

b.jsp代码如下:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

我是页面b,请求转发过来的,第二种方式。

9. jsp页面代码和html页面 混合使用的案例

=======================================================================================


九九乘法表的案例:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”

pageEncoding=“UTF-8”%>

Insert title here

九九乘法表居中

<% for(int i=1;i<=9;i++){ %>

<% for(int j=1;j<=i;j++){ %>

<%=i+"x"+j+"="+(i*j)+" " %>

<%}%>

<% }%>


对于一些常用的情况,都有一定的设计结构步骤:

在这里插入图片描述


10. JSP 补充

========================================================================

10.1 为什么要设置UTF-8?



惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

image.png

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

在这里插入图片描述


10. JSP 补充

========================================================================

10.1 为什么要设置UTF-8?



惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

[外链图片转存中…(img-L4NnqXtU-1714840901304)]

[外链图片转存中…(img-UBahVeAk-1714840901305)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值