web复习day06:jsp&el&jstl

web复习day06:jsp&el&jstl,第1张

概述回顾: 会话: 一次通话 会话作用: 保存浏览器和服务器交互过程中所产生的数据. 会话cookie: 浏览器端 由服务器创建保存在浏览器上存放的数据不安全存放的大小受限(4kb)存放文本格式的数据cookie属于缓存的一种 cookie中不能存放特殊的字符API: Cookie c = new Cookie(String,String); c. 回顾:

会话: 一次通话

会话作用: 保存浏览器和服务器交互过程中所产生的数据.

会话cookie: 浏览器端

由服务器创建保存在浏览器上存放的数据不安全存放的大小受限(4kb)存放文本格式的数据cookie属于缓存的一种    cookie中不能存放特殊的字符API:    cookie c = new cookie(String,String);    c.setMaxAge(3600秒);    response.addcookie(c); // 本质上就是给set-cookie头设置信息    默认绑定路径: 访问路径的上一层    c.setPath("/项目名称/aa");    携带cookie:        规则: 访问路径字符串包含原则    cookie []cookies = request.getcookies();    cookie.getname();    cookie.getValue();

会话session: 服务器

执行流程:    请求没有携带JsessionID:        request.getSession(); // 创建空间并返回JsessionID    JsessionID丢失: 请求没有携带JsessionID    携带JsessionID:        找到了session空间,直接使用        没有找到session空间,创建一个新的session,并返回JsessionIDAPI:    request.getSession();        //1.创建session空间,并返回JsessionID(session的唯一标识)        //2.根据JsessionID找到对应的session空间,进行使用session的声明周期:    创建:        请求不携带JsessionID就会创建session对象        请求携带JsessionID,但未找到对应的session空间    销毁:        服务器非正常关闭        session超时        手动销毁            session.invalIDate();

servlet中三大作用域:

request: 请求对象    创建: 请求来的时候    销毁: 响应信息生成的时候    作用域范围: 当前请求    API:        setAttribute(String,Object); // 设置同名属性即是修改        getAttribute(String);        removeAttribute(String);session: 会话对象    创建:        请求不携带JsessionID就会创建session对象        请求携带JsessionID,但未找到对应的session空间    销毁:        服务器非正常关闭        session超时        手动销毁            session.invalIDate();        作用域范围: 当前会话        API:            setAttribute(String,Object); // 设置同名属性即是修改            getAttribute(String);            removeAttribute(String);servletContext: 上下文对象    创建: 服务器启动时    销毁: 服务器关闭时,或项目从服务器上移除    作用范围: 当前项目    API:            setAttribute(String,Object); // 设置同名属性即是修改            getAttribute(String);            removeAttribute(String);

Jsp&el&Jstl

JsP(java服务器页面)

Jsp概述:

JsP全名为Java Server Pages,中文名称java服务器页面,本质上就是一个Servlet,是服务器上的一种动态的网页技术.简单理解    在HTML页面中嵌套java代码高大上理解    将页面的展示 和 内容的生成相分离

作用:

展示动态的信息

Jsp后缀名

*.Jsp

Jsp组成部分

HTML + java + Jsp特有内容(三大指令,四大作用域,九大内置对象)// 需求: 访问servlet返回一个表格// 由于通过servlet返回HTML信息相当痛苦,我们使用Jsp代替servlet完成展示.

Jsp执行流程

第一次访问Jsp(index.Jsp)页面时,服务器接收请求,由Jspservlet来处理该请求.1.Jspservlet会去查找对应的Jsp文件2.找到之后,服务器会将Jsp文件转换成java文件(index_Jsp.java)3.服务器编译java文件,生成class文件4.服务器运行class文件,生成动态的内容,并返回给浏览器.==理解:==     当浏览器访问 *.Jsp 时,统一由JspServlet处理这类请求,找到对应的Jsp页面,转成java类(就是Servlet)    然后让转完后的servlet执行(_JspService),返回的信息就是Jsp页面中的HTML代码

Jsp特有内容

Jsp脚本

如何在Jsp页面写java代码

编写java程序片段    <% ...... %>输出信息表达式    <%= ... %>声明成员变量    <%! ... %>

Jsp注释

<%-- 注释内容 --%>    注释使用时: ctrl+shift+ /

扩展:
Jsp特有内容(三大指令,九大内置对象)
三大指令:
page
taglib : 引入第三方标签库
include : 包含其他页面
四大作用域:
pageContext(PageContext) : 当前页面
request(httpServletRequest)
session(httpSession)
application(ServletContext)
九大内置对象:
JspServlet在将Jsp页面转成java时,实现定义好的9个对象,目的是给Jsp页面提供方便,在Jsp页面中可以直接使用内置对象
request
response
session
application
pageContext
page
config
out
exception
HTML + AJAX:
Jsp本质上就是一个servlet
Jsp组成:
HTML + java + Jsp特有内容(三大指令,九大内置对象)
java:
<% java代码片段 %>
<%=输出的内容 %>
<%! 声明全局变量 %>
在Jsp页面上获取 request session 和 servletContext作用域中的数据信息
<% String str = request.getAttribute("aa"); .... %>
<%=str%>
EL表达式作用: 代替输出<%=request.getAttribute("aa")%>
${"aa"}
el和Jstl: 简化Jsp页面中的java代码,增强Jsp页面的功能
el表达式

全称:Expression Language(表达式语言) Jsp2.0以后内置el

作用:

主要用来代替 <%= %>

格式:

${表达式}

常见功能

获取作用域中的数据

获取指定域中的数据信息:
<%@ page ContentType="text/HTML;charset=UTF-8" language="java" %>
<HTML>
<head>
<Title>Title</Title>
</head>
<body>
<h3>获取域中的简单数据信息</h3>
<%
// 向域中存放数据信息
pageContext.setAttribute("pkey","pvalue"); // 当前页面的作用域
request.setAttribute("rkey","rvalue");
session.setAttribute("skey","svalue");
application.setAttribute("akey",47); // servletContext

request.setAttribute("aa.bb","哈哈哈");%><%-- pageScope: 代表的就是pageContext对象 --%>获取pageContext域中的数据信息: <br>原始: <%=pageContext.getAttribute("pkey")%> <br>EL表达式: ${pageScope.pkey} <br><hr>获取request域中的数据信息: <br>原始: <%=request.getAttribute("rkey")%> <br>EL表达式: ${requestScope.rkey} <br><hr>获取session域中的数据信息: <br>原始: <%=session.getAttribute("skey")%> <br>EL表达式: ${sessionScope.skey} <br><hr>获取servletContext域中的数据信息: <br>原始: <%=application.getAttribute("akey")%> <br>EL表达式: ${applicationScope.akey} <br><hr>获取request域中的数据信息: <br>原始: <%=request.getAttribute("aa.bb")%> <br>EL表达式: ${requestScope["aa.bb"]} <br><hr>获取不到信息时: <br>原始: <%=request.getAttribute("aaaaaa")%> <br>EL表达式: ${requestScope.aaaaaa} <br>

</body>
</HTML>
获取简单数据信息
pageScope : pageContext
requestScope : request
sessionScope : session
applicationScope : servletContext
==便捷查找==

${域中属性的名称}    注释: 在所有作用域中依次从小到大查找指定的属性名所对应的值         若找到立即返回并结束查询             若找不到返回 ""    pageContext  request  session  application

注意事项

属性名中一旦使用了"." "+" "-"等特殊符号的时候${属性名}就取不到了,要使用{域Scope["属性名"]}    例如:${requestScope["aa.bb"]}<%    request.setAttribute("aa.bb","abc");%><hr>老方式: <%=request.getAttribute("aa.bb")%> <br>el方式: ${aa.bb}  ---  ${requestScope["aa.bb"]}    获取复杂数据

获取数组中的数据

格式    ${数组属性名称[index]}例子:    request.setAttribute("arr",new String[]{"aa","bb","cc"});获取的时候    ${arr[1]}

获取List中的数据

格式    ${List属性名[index]}

获取map中的数据

格式    ${map属性名称.键名}

获取javabean中的数据

格式    ${javabean在域中的属性名称.属性名称}

Jstl:

apache出品的标签库语言

作用:

增强Jsp页面的功能,在Jsp页面上少写java代码

分类

core:核心(目前还在使用)fmt:格式化(国际化)xml:和xml相关的(过时了)    Jsonsql:和sql相关的(过时了)fn:对字符串处理的函数库(用的很少了)

使用步骤:

1.导入jar包2.在页面上引入标签库<%@ taglib prefix="c" uri="http://java.sun.com/Jsp/Jstl/core" %>

if标签的使用

格式:

<!--当el表达式返回true时,标签体中的数据会被输出-->
<c:if test="el表达式">...</c:if>
<!--扩展(了解)
将el表达式的结果起个名称为flag 默认会放入page域中
page pageContext
request request
session session
application application
-->
<c:if test="el表达式" var="flag" scope="">...</c:if>
forEach标签的使用
<!-- 基本使用 -->
<c:forEach begin="从哪开始" end="到哪结束" step="步长" var="给变量起个名称">${i }</c:forEach>

<!-- 例子 -->
<c:forEach begin="1" end="20" step="1" var="i">
${i}
</c:forEach>

<!-- 高级使用 -->
<!-- 在页面上遍历数组,单列集合和map -->
<!-- 格式: -->
<c:forEach items="从域中通过el获取集合" var="n">
${n}
</c:forEach>
<!--属性:varStatus
用来记录循环状态的,有几个常用的属性:
index:
count:
first:
last:
-->
javaEE开发的模式(思想 理解)

MVC模式 -- 属于所有的web开发

发展历史

model1

技术架构: Jsp + javaBean            Jsp:负责处理业务逻辑  页面展示            javaBean: 实体封装  负责处理简单的业务逻辑          优缺点            优点                开发效率高            缺点                随着业务的复杂性,导致Jsp中的业务越来越多,不方便维护

model2

技术架构:Jsp+servlet+javaBean            Jsp:页面展示            servlet:负责处理业务逻辑            javaBean:负责处理业务逻辑  实体封装        优缺点            优点                逻辑清晰 方便维护            缺点                小型项目开发没有 model1 效率高

M:model 模型

封装数据 ---- javaBean    主要封装数据 业务处理

V:vIEw 视图

页面展示 ---- Jsp    作用:页面展示

C:controller 控制器

控制执行流程---- servlet    作用:与客户端交互

javaEE的三层架构

通过分包实现        web(action | controller ): 接收请求和前台交互        service: 处理业务逻辑        dao:  *** 作数据库        domain: 实体        utils:        Jsp: 展示信息
总结

以上是内存溢出为你收集整理的web复习day06:jsp&el&jstl全部内容,希望文章能够帮你解决web复习day06:jsp&el&jstl所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075990.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存