JSP(工作原理,组成部分,指令标签,动作标签,隐式对象)
JSP
什么是JSP
- JSP全名为Java Server Pages
- 中文名叫java服务器页面
- 它是在传统的网页HTML文件(.htm,.html)中插入Java程序段和JSP标记
- 后缀名为(*.jsp)。
- 其根本是一个简化的Servlet设计
为什么要有JSP
- 直接使用Html文件是没有办法输出Java当中的信息
- 使用servlet来去输出一个网页非常的麻烦
- 于是就出现了jsp,又能写html,又能写Java代码
JSP的工作原理
设置JSP创建时的编码
- 本质就是一个servlet
- jsp在第一次被访问时会被Web容器翻译成servlet
1.第一次访问
2.index.jsp
3.index_jsp.java
4.编译成index_jsp.class运行
5.可以在Tomcat的work目录中可以找到
6.下次一访问时, 会看一下里面的内容有没有发生变化,如果变化了, 从新翻译加载
7.整个过程是全局web.xml当中有一个叫
8.翻译的过程就是JspServlet做的
JSP的组成部分
- 静态数据,如HTML
- JSP脚本元素和变量
- JSP指令,如include指令
- JSP标签动作
- 用户自定义标签
JSP脚本元素和变量
在JSP当中写Java代码
<%java代码%>
内部的java代码翻译到service方法的内部
<%=java变量或表达式>
会被翻译成service方法内部out.print()
<%!java代码%>
会被翻译成servlet的成员的内容
JSP注释
HTML注释:<!--注释内容-->
可见范围 jsp源码、翻译后的servlet、页面
Java注释
//单行注释
/*多行注释*/
可见范围 jsp源码 翻译后的servlet,页面中看不到
Jsp注释
<%--注释内容--%>
可见范围 jsp源码可见
JSP指令
什么是指令
- JSP指令用于设置整个JSP页面的相关信息
- 以及用于JSP页面与其它容器之间的通信
page指令
- 用于设定整个JSP页面的属性和相关功能
page指令共有11个属性
contentType
contentType属性指定JSP页面的MIME和编码格式
pageEncoding
pageEncoding属性用来指定JSP文件的编码格式
import
在JSP中引入Java的包和类,多个包之间以逗号隔开
session
指定当前页面是否能获得当前用户的session对象
缺省是true
如果指定为false,那么在该页面中无法使用session,使用的话会提示500错误
errorPage
如果当前页面发生异常
网页会重定向到errorPage所指定的页面进行处理
isErrorPage
允许指定的JSP页面为错误处理页面
language属性
指定页面中使用的脚本语言种类
目前只支持java
extends
用于指定该JSP生成的servlet继承自哪个父类
必须指定包名加类名
buffer
用来设置输出流缓冲区
缓冲区的作用就是为了提高IO性能
也就是说减少write的次数
autoFlush
用来指定当输出流缓冲区满了的时候,是否自动刷新缓冲区
isThreadSafe
缺省值为true
指定该JSP文件是否支持多线程访问
info
用来设置该jsp文件的介绍信息
isELIgnored
用来标示是否支持EL表达式
多个属性之间使用空格隔开
include指令
作用
- 表示在JSP编译时插入一个包含文件或者代码的文件
- include指令所包含的文件名不能是一个变量url,只能是静态的文件名
静态包含
- 将两个jsp页面接着到一起, 然后再翻译成servlet
taglib指令
作用
- 声明JSP文件使用了标签库
有哪些标签库
- JSP标准标签库
- 第三方标签库
- 自定义标签库
标签动作
页面包含
<jsp:include page="被包含的页面"></jsp:include>
动态包含
各自翻译自己的页面,然后再引入
请求转发
<jsp:forward page="要转发的资源"></jsp:forward>
隐式对象
jsp被翻译成servlet之后,service方法中有9个对象定义并初始化完毕
out
out的类型:JspWriter
out作用就是想客户端输出内容 out.write()
out缓冲区默认8kb
可以设置成0 代表关闭out缓冲区内容直接写到respons缓冲区
out写的内容写到out缓冲区当中
最后再把out缓冲区当中的内容合并到response缓冲区当中
request
得到用户请求信息对象
response
服务器向客户端的响应对象
config
服务器配置,可以取得初始化参数
session
用来保存用户会话的信息
application
所有用户的共享信息,就是servletContext
page
指当前页面转换后的Servlet类的实例
pageContext
jsp页面的上下文对象
是一个域对象
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttrbute(String name)
可以向指定的其他域中存取数据
setAttribute(String name,Object obj,int scope)
setAttribute(“name”,"lk",PageContext.REQUEST_SCOPE);
getAttribute(String name,int scope)
getAttribute("lk",PageContext.REQUEST_SCOPE)
removeAttrbute(String name,int scope)
findAttribute(String name)
自动到所有的域当中找数据
从小到大的范围搜索数据
依次从pageContext域,request域,session域,application域中获取属性
在某个域中获取后将不在向后寻找
可以获得其他8大隐式对象
pageContext.getRequest()
pageContext.getSession()
exception
表示JSP页面所发生的异常,在错误页中才起作用
只有是错误页面的时候,才会有该对象
JSP(工作原理,组成部分,指令标签,动作标签,隐式对象)的更多相关文章
- JSP的学习(7)——九大隐式对象之pageContext对象
本篇来讲诉JSP中九大隐式对象中最后一个,也是最重要的一个对象——pageContext对象. pageContext对象代表了该JSP页面的运行环境,它的作用有: ① 这个对象封装了对其它八大隐式对 ...
- jsp学习--JSP运行原理,九大隐式对象和JSP常用标签
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- JSP——JavaServer Page中的隐式对象(implicit object)、指令(directive)、脚本元素(scripting element)、动作(action)、EL表达式
目录 1.JSP概述 2.注释(comment) 2.1.JSP注释 2.2.HTML注释 3.隐式对象(implicit object) 3.1.隐式对象清单 3.2.request对象 3.3.o ...
- JSP与EL隐式对象
一,JSP隐式对象 隐式对象是可以直接使用的,无需声明.因为在JSP转译为servlet文件后,会自动声明其对象. 隐式对象① 说明 out 对应JspWriter对象,其内部关联一个PrintWri ...
- JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)
时隔半年,回头对jsp复习整理一下,温故而知新. jsp工作原理: jsp服务器管理jsp页面分两个阶段:转换阶段(translation phase)和执行阶段(execution phase). ...
- JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...
- JSP--JSP语法--指令--include(动态包含/静态包含)--九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HT ...
- JSP JSP工作原理 JSP语法 JSP声明 JSP注释 JSP指令 jsp九大隐式/内置对象
1 什么是JSP 1)为什么说,Servlet是一个动态Web开发技术呢? Servlet是基于服务端的一种动态交互技术, HttpServletRequest表示客户端到服务端的 ...
- jsp详解(3个指令、6个动作、9个内置对象、11个隐式对象)
jsp概述SP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP实际上就是Servlet. jsp=html+jav ...
随机推荐
- 在vue项目中使用live2d
成品如图: 那么几步简单说明怎么用吧: 第一,先去github上下载相应的静态资源: https://github.com/xiazeyu/live2d-widget-models 第二,将packg ...
- iOS开发-NSString去掉所有换行及空格
1.去掉字符串两端的空格及回车 - (NSString *)removeSpaceAndNewline:(NSString *)str{ NSString *temp = [str stringByT ...
- 2019年6月车型数据Access数据库+缩略图 更新于2019年6月5日.
工作需要才来采集的, 数据来源某卡汽车网, 分享出来给需要的人吧, 本着分享的精神, 我就不猥琐的放到csdn下载了 本来是sql server的, 我导出到access了, 也方便大家查看. 顺手抓 ...
- 【已解决】bootstrap table 参数后台获取不到
查看请求,可以看到有部分字段是可以的. 改成以下这种即可,原因是由于字段为null,没把错误抛出来,为null的字段就不会放到请求的参数中.
- Jerry Wang从2017年到2019年的自由泳学习笔记
打腿 把注意力调整到脚部,尽量不要让他打出水面,因为在空气中大腿完全是无用功,但是如果只是脚跟出水一点,倒也没什么关心,但是主观上,要控制一下,如果你听到你的打腿是"咚咚咚咚"这样 ...
- HBase分布式搭建常见错误
[root@node001 bin]# hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found bin ...
- poi 生成word 表格,并向表格单元格中插入多个图片
接这上一篇,导入数据,也要完整导出来.话不多说,直接上代码. 效果图 //根据实体对象 ,生成XWPFDocument public static XWPFDocument exportDataInf ...
- CentOS7安装CDH 第十四章:CDH的优化
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- CentOS7安装CDH 第十一章:离线升级CDH版本
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- 算法学习:我终于明白二分查找的时间复杂度为什么是O(logn)了
最近发现了个好东西,就是一个学算法的好东西,是网易公开课的一个视频. 直通车 这是麻省理工学院的公开课,有中英字幕,感谢网易.. 也可以在App把视频缓存下来之后再放到电脑上面看,因为我这样可以倍速, ...