1      Servlet线程安全问题

1st.              为什么说servlet会有线程安全问题?

  1. 容器默认情况下,对于某个servlet,只会创建一个实例.
  2. 容器收到一个请求,就会启动一个线程来处理请求.这样,就有可能有多个线程同时调用同一个servlet实例,就有可能产生线程安全问题(比如,多个线程同时修改某个属性);

2nd.              如何解决?

  1. 使用synchronized对线程安全问题代码进行加锁;注:会影响性能.
  2. 尽量避免写有线程安全的代码,比如,不要修改属性.

2     
Jsp基础

1st.             
Jsp是什么?

本质就是一个servlet

2nd.             
如何写jsp?

  1. Html直接写
  2. Java代码(java脚本)

I)         
<% %>

II)       
<%=
%>

III)     
Jsp声明(a1.jsp)

<&!  变量或者方法  &>

声明以后可以直接在代码片段中使用

  1. 指令

I)         
什么是指令?

告诉容器执行的一些配置

II)       
Page指令

i.             
Import属性:导包

ii.             
Pageencoding属性:设置编码集

iii.             
Contenttype属性:设置输出属性编码集

iv.             
Session属性:true(默认)/false  当值为false时,不能够直接使用session隐含对象了.(a2.jsp)

v.             
Errorpage属性:指定一个异常处理页面,当异常发生后,容器会调用异常处理页面.(a3.jsp)

vi.             
Iserrorpage属性:true/false(默认) 当值为true的时候,表示这是一个异常处理页面,可以使用exeception隐含对象.(a4.jsp)

III)     
Incloud指令

i.             
File属性:包含的文件

IV)     
Taglib指令

i.             
用于导入jsp标签.

  1. 隐含对象

I)         
什么是隐含对象…可以直接使用的对象

II)       
为什么可以直接使用

III)     
有哪些隐含对象

out,request,response,session,application,

exeception,异常处理对象,只能在异常处理界面使用

pagecontext(a6.jsp  a7.jsp)

  1. 容器会为每一个jsp实例创建一个唯一的符合pagecontext接口要求对象

    特点:

a)        
唯一性:jsp实例对应一个pagecontext

b)        
持久性:只要jsp实例存在,pagecontext就在(不会销毁)

  1. 作用:

a)        
绑定数据    注:绑定在pagecontext上的数据只有对应的jsp可以访问

b)        
获取其他所有隐含对象.

config(a5.jsp) 
servletconfig(jsp也可以设置配置信息并获取到)

page(从来不使用)jsp实例,   注:jsp先转化成servlet,然后容器将这个servlet实例化.

  1. 注释

I)         
<!—注释内容 -->z注释内容是java代码会执行,但是因为外面是html注释,所以不会将时间显示到界面上

II)       
<%-- 注释内容 --%>注释内容是java代码不会执行,在这个注释中不论是不是java代码都不会执行.

3     
Jsp如何执行的?

a)        
将jsp转换为一个servlet类

htmlàservice方法,使用out输出

<%   %>à照搬

<%=   %>àout输出

<&!  变量或者方法  &>   添加新的属性或者方法

b)        
调用servlet

4     
Jsp标签和El表达式

1st.             
什么是jsp标签?

jsp标签类似于html标签,用于替代jsp中的java代码.

    注:因为直接在jsp中写java代码,不方便jsp文件的维护,比如讲jsp文件交给美工修改就很不方便,所以sun制定了jsp标签技术规范.

2nd.             
什么是el表达式?

是一套简单的运算规则,用于给jsp标签的属性赋值,也可以脱离标签直接使用.

3rd.             
El表达式的基本使用

  1. 访问bean的属性(e1.jsp)

I)         
${user.name}   容器依次从pagecontext,request,session,application中查找绑定名为user的对象.接下来会调用这个对象的gername方法并输出该方法的结果.

注:如果找不到对应的对象,会输出””.

   会将null转换为””输出.

   可以使用pageScope,requestScope,sessionScope,applicationScope指定查找范围.

II)       
${user[‘name’]}   

注:

  1. []里可以使用绑定名
  2. []里面可以使用从0开始的下标,用于访问数组的某个元素.
  3. 运行一些简单的运算.

       注:运算结果可以直接输出也可以给属性赋值.
    1. 算数运算:+-*/%    注:+只能求和.
    2. 关系运算 <
      <= = > >= == !=;
    3. 逻辑运算 &&
      || !
    4. 空运算 empty  判断是否为空是不是一个空字符串.找不到绑定也是true.
  4. 读取请求参数值(e3.jsp)
    1. ${param.name}
      等价于 request.getParameter(string name)
    2. ${paramValues.city}
      等价于request.getParameterValues(‘city’)

4th.             
Jsp标签  jstl (java
standard tag lib)àjava标准标签库

  1. Jstl是什么?

    Apache开发的一套jsp标签,后来捐献给sun,sun将其命名为jstl
  2. 如何使用jspl?
    1. 导包
    2. 使用指令taglib导入要使用的jsp标签.

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

      uri属性:指定要导入的标签的命名空间(命名空间”namesoace”是为了区分同名的元素在元素前面添加的一个限定,通常是一个域名)

      prefix属性:前缀,命名空间的别名.
  3. 几个核心标签

I)         
If标签

i.             
<c:if
test=””>

<c:if>

当test属性值为true,容器执行标签体的内容.可以使用el表达式给test赋值,

var属性:指定一个绑定名

scope属性:指定绑定范围,page 
request  session  application

ii.             
Choose标签(c2.jsp)

<c:choose>

    <c:when test=””>

    <c:otherwise>

    <c:otherwise>

</c:choose>

when可以出现1次 otherwise可以出现0到1次

iii.             
ForEach标签(c3.jsp)

<c:forEach  items=”” var=”” varStatus=””></c:forEach>

java-servlet-EL表达式和java标签的更多相关文章

  1. JAVA WEB EL表达式注入

    看猪猪侠以前的洞,顺便总结下: 一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的we ...

  2. 杂项-Java:EL表达式

    ylbtech-杂项-Java:EL表达式 EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提 ...

  3. JavaWeb(七)Cookie,EL表达式,标准标签库

    Cookie Cookie概述 Cookie译为小型文本文件或小甜饼,Web应用程序利用Cookie在客户端缓存服务器端文件.Cookie是以键值对形式存储在客户端主机硬盘中,由服务器端发送给客户端, ...

  4. JSP、EL表达式、JSTL标签库干货(建议收藏)

    JSP(Java Server Pages)类似于ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件, ...

  5. 在EL表达式或者Struts标签库中格式化日期对象,即将Date转换为yyyy-MM-dd格式

    一.EL表达式 首先,在jsp页面引入<fmt> tags,<%@ taglib prefix="fmt" uri="http://java.sun.c ...

  6. jsp EL表达式和JSTL标签if-else if-else用法

    java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...

  7. EL表达式、JSTL标签库

    一.EL(Expression Language)表达式 语法结构:${var} 若要停用对EL表达式的评估的话,需要使用page指令将isELIgnored属性值设为true: <%@ pag ...

  8. (十)EL表达式和JSTL标签快速入门

    目录 什么是 el 表达式 示例:使用EL表达式获取pageContext .request.session.application域中的数据: 示例:使用EL表达式获取Bean属性 获取当前WEB应 ...

  9. Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

    一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成se ...

  10. Java第三阶段学习(十四、JSP动态页面、EL表达式、JSTL标签库)

    一.JSP技术 1.jsp脚本和注释 jap脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部,比如写在doget.dopost 内的代码 2) ...

随机推荐

  1. ERP采购收货在标准成本和移动平均价下的差别

    欢迎关注微信公众号:iERPer (ERP咨询顾问之家) ERP系统在处理主要的采购流程有: 下采购合同->下采购订单->收货->发票校验->付款(财务) 其中 收货和发票校验 ...

  2. 解决Docker运行命令时提示"Got permission denied while trying to connect to the Docker daemon socket"类情况

    Docker安装命令: 解决Docker运行命令时提示"Got permission denied while trying to connect to the Docker daemon ...

  3. React Suspense 尝鲜,处理前后端IO异步操作

    简单介绍一下Suspense Suspense主要用来解决网络IO问题,它早在2018年的React 16.6.0版本中就已发布.它的相关用法有些已经比较成熟,有的相对不太稳定,甚至经历了重命名.删除 ...

  4. C++ 炼气期之算术运算符

    1. 前言 编写程序时,数据确定后,就需要为数据提供相应的处理逻辑(方案或算法).所谓逻辑有 2 种存在形态: 抽象形态:存在于意识形态,强调思考过程,与具体的编程语言无关. 具体形态:通过代码来实现 ...

  5. 02 CSS块级元素和行内元素

    02 CSS块级元素和行内元素 划分依据:根据标签内部可以存放的元素内容不同进行划分,它与CSS样式无关. 要先了解这个 得先了解 什么是容器级别的标签和文本级? 容器级标签 什么是容器级标签? 内部 ...

  6. 隐私计算FATE-离线预测

    一.说明 Fate 的模型预测有 离线预测 和 在线预测 两种方式,两者的效果是一样的,主要是使用方式.适用场景.高可用.性能等方面有很大差别:本文分享使用 Fate 基于 纵向逻辑回归 算法训练出来 ...

  7. 【python基础】第10回 周总结

    路径 可以简单的理解为路径就是某个事物所在的具体位置(坐标) 1.相对路径:必须有一个参考系,就是相对于自己的目标文件的位置. 2.绝对路劲:不需要有参考系,是指文件在硬盘上真正存在的路径. 计算机五 ...

  8. Python-基础知识汇集

    1.列表 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可 代码理解:列表 ...

  9. Markdown第一次学习

    # # Markdown学习 一级标题: #空格+标题名称+回车得到一级标题 ## 二级标题 一级标题方法中变成两个##号 ### 三级标题 变成三个###号,以此类推,最多到六级标题 ## 字体 h ...

  10. wsl2安装百度apollo及其基本配置

    一. wsl2的开启 首先 WSL2 gui 需要Windows 11 Build 22000版本以上才支持 利用管理员权限打开PowerShell 执行 dism.exe /online /enab ...