JavaWeb学习笔记二 --- 会话机制、JSP、 EL+JSTL 总结(超详细的总结~~)

Session技术

session技术为服务器技术,将会话过程产生的数据保存到服务器内存中

在这里插入图片描述

浏览器第一次访问服务器时,服务器会在服务器端创建session文件

然后,将session文件名称(想象成钥匙)以cookie的形式响应给浏览器

当浏览器第二次访问服务器时,只需要随身携带钥匙(session文件名),再通过该钥匙找到内容

session基本操作

服务器创建session

@WebServlet(“/sessionTest”)

public class SessionServlet extends HttpServlet{

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//获取session(就是session文件)

HttpSession s1 = req.getSession();

//向session存储数据

s1.setAttribute(“name”, “张三”);

}

}

浏览器访问该地址:

在这里插入图片描述

再次访问请求头中会有服务器响应给浏览器的钥匙

在这里插入图片描述

设置Session有效期:

1.在web.xml文件中配置

在这里插入图片描述

2.在tomcat服务器配置文件中配置

session-config,默认值为:30分钟

30

在java程序中设置

s1.setMaxInactiveInterval(10);

参数为秒

JSP

JSP,Java Server Pages,Java服务器端页面(网页)技术

在JSP页面中,Java代码可以和HTML代码共存,其中Java代码负责处理数据,HTML代码负责显示数据

jsp就是一个Servlet

创建JSP页面

右击WebContent—New—JSP File—输入文件名

或者:右击WebContent—New—Other—Web—JSP File—输入文件名

在这里插入图片描述

修改jsp页面的编码为UTF-8

Window—Preferences----搜索JSP—Templates----

JSP基本语法

代码块

在JSP页面中可以将Java代码块写到:

<% Java代码块 %>

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

pageEncoding=“utf-8”%>

<% out.write(“helloword”) %>

输出变量/表达式结果:

<%=变量 或 表达式%>

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

pageEncoding=“utf-8”%>

<%

out.write(“helloword”)

int a = 12;

int b = 30;

%>

输出表达式结果

<%=a+b %>

输出变量结果

<%=b %>

JSP注释

HTML代码注释:

JSP代码注释: <%-- 注释的内容 --%>

注释的快捷键:ctrl + shift + /

JSP指令

在jsp2.0中共定义了page、include和taglib三种指令。

page指令, 配置JSP页面信息的。

include指令,页面包含的,导入页面的。

<%@include file=“top.jsp”%>

taglib指令, 导入资源,格式:

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

* prefix:前缀,自定义的

在这里插入图片描述

JSP内置对象

为了提升开发效率,JSP给我们提供了9大内置对象,不需要定义,我们在JSP脚本中可以直接使用。

在这里插入图片描述

4大域对象:

request域对象

session域对象

application域对象

pageContext域对象

在这里插入图片描述

四大域对象的作用范围:从大到小

application > session > request > pageContext

四大域对象的作用优先级范围:从大到小:

pageContext > request > session > application

EL+JSTL

EL

在JSP页面开发中,为了获取Servlet域对象中存储的数据,经常需要书写很多Java代码,这样的做法会使JSP页面混乱,难以维护,为此,在JSP2.0规范中提供了EL表达式。

EL是Expression Language的缩写,它是一种简单的数据访问语言。

EL的目的:简化JSP脚本的书写。

EL语法格式:${EL表达式}

EL表达式获取数据

使用EL表达式获取四大域对象中的数据

${key}

如果获取域中的数据时,如果没有指定所在的域,会按照下面的顺序依次查找

—依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找

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

pageEncoding=“UTF-8”%>

Insert title here

<%

/pageContext 对象只能在本页面才能访问到/

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

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

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

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

%>

${pageScope.name}

${requestScope.name}

${sessionScope.name}

${applicationScope.name}

浏览器访问该地址:

在这里插入图片描述

EL表达式获取基本数据类型

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

pageEncoding=“UTF-8”%>

Insert title here

<%

request.setAttribute(“name”, “张三”);

%>

${name }

EL表达式获取对象类型数据

对象:${域名称.键名.属性名}

  • 本质上会去调用对象的getter方法

在这里插入图片描述

获取List集合中的数据

List集合:${域名称.键名[索引]}

在这里插入图片描述

获取Map集合中的数据

Map集合:

${域名称.键名.key名称}

${域名称.键名[“key名称”]}

在这里插入图片描述

JSTL介绍

JSTL,JSP Standard Tag Lib,JSP标准标签库,提供了一些标签(<c:if> <c:forEach>),能够在JSP页面完成更加复杂的业务逻辑,总之用于简化和替换jsp页面上的java代码

使用步骤:

  1. 导入jstl相关jar包

  2. 引入标签库:taglib指令: <%@ taglib %>

<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

  1. 使用标签:

Java的标签库,常见的标签有:

<c:if></c:if>

<c:forEach></c:forEach>

<c:choose></c:choose>

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-70Dv3LLV-1715714675815)]

[外链图片转存中…(img-QuomxIko-1715714675816)]

[外链图片转存中…(img-bUK6AixY-1715714675816)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值