java的jstl的标签库,JSP页面+EL表达式+JSTL标签库

1.JSP java server pages.代替servlet程序 回传 html页面的数据给客户端进行显示。

创建:new java enterprise,在web下new jsp

访问:第一次访问jsp页面时,tomcat服务器会将jsp页面翻译成java源文件,并对其编译形成.class字节码文件。

翻译出来的文件位置:C:\Users\VICTORIA\.IntelliJIdea2019.3\system\tomcat\Tomcat_8_5_54_tomcat8\work\Catalina\localhost\tomcat8_war_exploded\org\apache\jsp

本质:jsp程序通过继承HttpJspBase类间接继承HttpServlet类,实质就是将jsp程序翻译成servlet程序后,在servlet程序中,通过输出流将html数据回传至客户端

语法:

jsp头部page指令:修改jsp页面的属性和行为     

属性含义:

language             Jsp文件经翻译后形成什么语言的文件,暂时只支持java

contentType        jsp返回的数据类型,即源码中response.setContentType()的值

pageEncoding     当前jsp文件本身使用的字符集

import                  与java源文件一样,用于导包导类

对于out输出流:  autoFlush设置out输出流缓冲区,满后是否自动刷新,默认值ture    buffer设置out输出流缓冲区大小,默认值8kb

errorPage            jsp页面出错后,跳转的页面位置

isErrorPage         设置当前页面是否为jsp出错页面,默认值false;当设置为ture时可以对其进行异常错误信息的获取

session                设置当前jsp页面是否会创建HttpSession对象,默认为ture

extends                设置由jsp文件翻译出来的java类默认继承谁

2.错误类型

JSP Buffer overflow:JSP缓冲区满了之后不能自动刷新。

3.jsp常用脚本:声明脚本、表达式脚本、代码脚本

声明脚本(不常使用嘞)

f3115ca83e3c3ccf2ff8fc1b56ea5f35.png

表达式脚本:在jsp页面上输出数据 ,可输出整型、浮点型、字符串和对象。

表达式脚本都会被翻译到相应java文件的_jspService()方法中,并可以使用该方法中定义的对象。使用out.print()将内容输出到页面上。结尾不加;

在浏览器中输出。

代码脚本:在其中编译我们需要的功能。

代码脚本都会被翻译到相应java文件的_jspService()方法中,并可以使用该方法中方法。

可由多个代码脚本组合完成一个功能,且可与表达式脚本组合使用

在控制台输出。例如if,for,重写_jspService中的方法

4.jsp三种注释:html注释、java注释、jsp注释

html注释:翻译到java文件中的_jspService()中,以out.writer()输出到客户端

java注释:// /**/  在声明脚本和代码脚本中使用

jsp注释:可注释掉jsp文件中的代码

5.jsp九大内置对象:

8070d0c5957b9f62ea743dc17ec14ecd.png

response响应对象,

request请求对象,

pageContext: jsp上下文对象,

session会话对象,

application:ServletContext对象,

config:ServletConfig对象,

out: jsp输出对象,

page:指向当前jsp页面的对象,

exception:在jsp声明中添加isErrorPage='true'后得到的异常对象。

6.jsp四大域对象:像map一样存取数据,但各自对数据的存取范围不同。

PageContextImpl类pageContext:当前jsp页面范围内有效。使用request.getRequestDispatcher("/scope2.jsp").forward(request,response)验证

HttpServletRequest类request:一次请求内有效

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

ServletContext类application:整个web工程范围内。只要web工程不停止,该对象的数据一直存在

7.jsp中的out.write(" "),response.getWriter().write(" "):表示响应,用于给客户端回传内容的。

区别:由于jsp页面在执行完全部代码后,调用out.flush()将out缓冲区中的数据追加到response缓冲区末尾;最后response缓冲区刷新将全部数据写回到客户端。

因jsp翻译成java底层使用out输出,故使用out输出,避免打乱

out.write()和out.print()区别

out.write()输出字符串没有问题(输出其他整型等有问题的原因,底层将整型先转换成ASCIII码后输出)

out.print()输出任何类型都没有问题(原因,底层将数据转换成字符串后使用out.write()输出)

jsp页面使用out.print()进行输出

8.jsp标签:

静态包含:  可用在对网站页面中重复引用的模块 进行维护

不翻译被包含的jsp页面,仅将被包含的代码拷贝到包含的位置,进行输出。

动态包含:

翻译被包含的jsp页面为 java文件,

底层执行 org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/index.jsp", out, false); 调用被包含的页面进行输出

中间定义的参数可在 被包含的文件中获取requesr.getparameter("name");

请求转发:

9.javaweb三大组件:Servlet程序,Filter过滤器,Listener监听器

Listener监听器:JavaEE规范,一种接口,监听事物变化,通过回调函数反馈给程序做相应处理。

10.ServletContextListener监听器(最常使用):监听ServletContext对象的创建和销毁。

监听到创建和销毁后,分别调用contextInitialized()和contextDestoryed(),在ServletContext对象创建后马上调用做初始化,在ServletContext对象销毁后调用。

使用过程:编写一个类去实现ServletContextListener监听器 监听 ServletContext对象

实现两个回调方法

在web.xml中配置监听器

11.EL表达式${键值}:expression language  代替jsp页面的 表达式脚本在jsp页面进行域对象 数据的输出。编码更加简洁

当值为null时,输出空串。

四个域中都具有键值 符合要求的话,按pageContext,request,session,application顺序输出

可输出一个类的普通属性、数组属性( ${p.persons}输出数组地址;${p.persons[]}输出数组中指定位置的值 )。list集合属性${p.persons[]}和map集合属性${p.persons.key1}。

12.EL表达式运算:

逻辑(== != > < >= <=),

关系(&& || !),

数值(+ - * / %),

empty运算(判断一个数据是否为空,值为null 空串 Object数组长度为0 list元素个数为0 map元素个数为0 情况下输出true)(${empty key值}),

三元运算,

.运算(可输出bean对象中属性的值),

[]运算(可输出有序集合中元素的值 同时 可输出map集合中key中含特殊字符key的值${map['a.a.a']}    ${map["b+b+b"]})

13.EL中11个隐含对象(EL自身定义,可随意使用):scope表示范围

变量

类型

作用

pageContext

PageContextImp类

获取jsp九大内置对象;用于输出协议,服务器IP,服务器端口,当前工程路径contextPath,请求方法method,客户端IP remoteHost,会话ID ${pageContext.Session.ID}

pageScope

Map(String,Object)

获取pageContext域中的 对象

requestScope

Map(String,Object)

获取Request域中的 对象

sessionScope

Map(String,Object)

获取Session域中的 对象

applicationscope

Map(String,Object)

获取ServletContent域中的 对象

param

Map(String,String)

获取请求参数的值 ${param.key值}

paramValues

Map(String,String[])

获取多个请求参数的值

header

Map(String,String)

获取请求头的值  ${header['user-Agent']}    ${header.user-Agent}

headerValues

Map(String,String[])

获取多个请求头的值 ${headerValues.['user-Agent'][0]}  ${headerValues.['user-Agent']}得到数组对象

cookie

Map(String,Cookie)

获取当前请求的cookie信息 ${cookie.JSESSIONID}输出cookie对象    ${cookie.JSESSIONID.name}cookie对象也是 键-值对的组合

initParam

Map(String,String)

获取web.xml中配置的即上下文参数

对于pageContext对象的使用:EL表达式 . 表示寻找相应的get()

输出使用协议:  ${pageContext.request.scheme}

输出服务器IP:  ${pageContext.request.servlername}

输出服务器端口:  ${pageContext.request.servlerport}

企业中:

  先封装再使用

  ${req.servlerport}

14.JSTL标签库 JSP Standard Tag Library  代替JSP代码脚本

JSTL五类标签库:

核心标签库: taglib表示标签库

格式化:

函数

数据库:现使用dao层实现与数据库的交互

xml:早期客户端与数据库之间交互,现使用JSON

使用步骤:

导入jstl标签库的jar包(taglibs-standard-impl-1.2.1.jar和taglibs-standard-spec-1.2.1.jar)

使用taglib指令引入标签库

07f84ba6736ba5976070063ed09fbbb3.png

15.标签

保存数据: (scope属性设置保存到哪儿个域,page表示PageContext域(默认),request表示Request域,session表示Session域,application表示ServletContext域)(var设置键值)(value设置值)

if判断:(test条件表达式,使用EL,${12=12})

switch选择: 分别表示父标签,test条件为真时执行,test条件为假时执行,

遍历整型,对象数组,map对象,list对象:

  var表示当前循环对象  varStatus当前变量的状态   items表示遍历的集合

2c8237dbaa48422d2f180b935985ea8b.png

92700ef59dad863cc5506ae6d6aaf1b8.png

16.varStatus当前变量的状态    ${status.current}

public status implement interface LoopTagStatus{

public Object getCurrent();//当前遍历的数据

public int getIndex();//当前遍历的索引

public int getCount();//当前遍历的个数

public boolean isFirst();//当前遍历是否为开头或结尾

public boolean isLast();

public Integer getBegin();//获取begin end step的属性值

public Integer getEnd();

public Integer getStep();

}

标签:输出,String,EL,对象,JSTL,JSP,jsp,页面,out

来源: https://www.cnblogs.com/chritina-victoria/p/12787808.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值