JSP

//////////2017-2-11 ~ 2017-2-17///////////

int study_data(){

JSP(Java Server Pages)

表现形式
1.一般以.jsp为后缀的文件
2.里面内容的话,可以看成静态内容(html+css+js),嵌入动态的jsp相关的一些语法和指令。
3.一般放置在war包里面,WEB-INF外面,但是有一些框架会把jsp文件放在WEB-INF里面。
4.访问时,直接访问对应的url即可。

内在本质:
当我们访问某个.jsp文件时,容器会启动即时翻译,把.jsp文件先翻译成java文件,然后再把这个java文件翻译成class文件,最后作为一个servlet启动运行,并把response结果返回给浏览器。

JSP与Servlet的区别
Servlet其实执行的是那个Servlet编译好的class,而JSP是即时编译。web容器会将jsp文件翻译成java源代码,然后再把这个java源代码编译成class,再执行,一般过程是:
1.看看.jsp对应的class存不存在,如果不存在,就翻译成java,在编译成class。
2.如果对应的class已经存在了,就检查jsp时间是不是更新一点。如果是的话,就重新编译成java,再编译成class。
3.如果class更新的话,就不翻译了,直接用那个class文件。
JSP是为了弥补Servlet处理显示的不足发展来的特殊的Servlet

JSP注释
<%--  --%> : JSP注释,注释内容不会被发送至浏览器甚至不会被翻译
<!--  -->      : HTML注释,通过浏览器查看网页源代码时可以看见注释内容
<\%            : 代表静态<%常量
%\>            : 代表静态%>常量

JSP指令标签
<%@ page ... %>    : 定义网页依赖属性,比如脚本语言,error页面,缓存需求等等
<%@ include ... %> : 包含其他文件
<%@ taglib ... %>    : 引入标签库的定义

JSP指令元素
buffer                      : 指定out对象的缓冲区大小
autoFlush               : 控制out对象的缓存区
contentType           : 指定当前JSP页面的MIME类型和字符编码
errorPage               : 指定当JSP页面发生异常时需要转向的错误处理页面
isErrorPage            : 指定当前JSP页面是否是作为另一个页面的错误页面
extends                  : 指定servlet从哪个类继承
import                     : 导入要使用的java类
info                         : 定义JSP页面的描述信息
isTheadSafe           : 指定对JSP页面的访问是否为线程安全,默认是true
language                : 定义JSP页面所用的脚本语言,默认是Java
session                   : 指定JSP页面是否使用session,默认是true
isELIgnored            : 指定是否忽略EL表达式,默认是false
isScriptingEnabled : 指定脚本元素是否能用,默认是true

JSP控制符
<% 代码片段 %>
<%! 函数声明 %>
<%= 获得变量 %>

JSP动作元素
jsp:include        : 在页面被请求的时候引入一个文件
jsp:useBean     : 寻找或实例化一个JavaBean
jsp:setProperty : 设置JavaBean的属性
jsp:getProperty : 输出某个JavaBean的属性
jsp:forward       : 把请求转到一个新的页面
jsp:plugin          : 根据浏览器类型给Java插件生成OBJECT或EMBED标记
jsp:element       : 定义动态XML元素
jsp:attribute       : 设置动态定义的XML元素属性
jsp:body            : 设置动态定义的XML元素内容
jsp:text              : 在JSP页面和文档中使用写入文本的模版

JSP九大隐式对象(内置对象)
request          : HttpServletRequest类的实例
response       : HttpServletResponse类的实例
out                 : PrintWriter类的实例,用于把结果输出至网页上
session         :HttpSession类的实例
application     : ServletContext类的实例,与应用上下文有关
config            : ServletConfig类的实例
pageContext : PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page              : 类是Java类中的this关键字
Exception      : Exception类的对象,代表发生错误的JSP页面中对应的异常对象

pageContext
     
pageContext对象是JSP中很重要的一个内置对象,它是javax.servlet.jsp.PageContext类的实例对象,可以使用PageContext类的方法,使用pageContext对象的方法可以访问application对象,exception对象,还有session对象等,pageContext对象都饿方法可以访问除本身以外的8个JSP内部对象,还可以直接访问绑定在application对象,page对象,request对象,session对象上的java对象,pageContext对象相当于JSP程序中所有对象功能的集成者。

JSP表达式语言(EL)

EL表达式既可以用来创建算术表达式也可以用来创建逻辑表达式。表达式内可以使用整形数,浮点数,字符串,常量,布尔值与null。

EL允许在表达式中使用函数,这些函数必须被定义在自定义标签库中

EL中的11个隐含对象

pageScope,requestScope,sessionScope,applicationScope,param,paramValues,header,headerValues,initParam,cookie,pageContext。

1.EL
    expression language(表达式语言)
2.语法
    
${scope.object.attr} 或者 ${scope.object[attr]}
3.如果不填scope,那么会从4个scope中按序查找
    pageScope-->requestScope-->sessionScope-->applicationScope
4.隐式对象
    
param:表示获取请求对象中的参数(单个的表单数据)
    paramValues:表示获取请求对象中的参数(多个的表单数据)
5.关系运算符
    ==  |  eq
    !=  |  ne
    <    |  lt
    >    |  gt
    <=  |  le
    >=  |  ge
6.逻辑运算符
    &&  |  and
    ||    |  or
    !      |  not
7.判空运算符
    ${empty attr}
    ${not empty attr}
    返回boolean值
8.条件运算符
    ${addition?value1:value2}

JSTL

1.jstl
    JSP Standard Tag Library,JSP标准标记库
2.使用步骤
    ①导入相关jar包
    ②导入标签库
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3.标签指令
    <c:foreach> : 迭代标签
    <c:if>           :条件判断
    <c:choose> :多条件判断
    通用标签:
        <c:set>      :设置属性
        <c:out>      :输出属性
        <c:remove>:删除属性
4.格式化标签
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
格式化指令:
    <fmt:formatDate>      : 日期格式化
    <fmt:formatNumber> :数字格式化

5.自定义标签

自定义标签是用户定义的JSP语言元素,标签转化被称为tag handler的对象的操作,即当servlet执行时web container调用那些操作。JSP标签扩展可以让创建新的标签并且可以直接出入到一个JSP页面。

继承SImpleTagSupport类并重写doTag()方法来开发一个最简单的自定义标签

6.注意事项

    1.tag文件里,JSP的所有元素都能用,但是page指令不能用,要用tag指令

    2.tag文件的隐含对象,pageContext换成jspContext。其他都一样

    3.tag文件四大指令

        ①tag : 指定自己的一些属性,类似page

        ②attribute : 说明属性相关的信息,和TDL里的属性类型

        ③include : 和jsp里的include类似

        ④variable : 把tag里的某个对象返回给jsp

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 1.学习内容 JSP技术入门和常用指令 JSP的内置对象&标签介绍 EL表达式&EL的内置对象 2.JSP技术入门...
    WendyVIV阅读 2,116评论 1 18
  • 1.什么是JSP (1)jsp全称是Java Server Pages,它和Servlet技术一样都是sun公司定...
    yjaal阅读 3,628评论 5 99
  • 一、JSP基础 1.1什么是JSP JSP(Java ServerPage)是Java服务器端动态页面技术。是su...
    晨星资源阅读 1,137评论 0 6
  • 前面讲了servlet入门实践现在开始介绍jsp入门实践,开发环境的搭建请参考我前面的tomcat的文章,jsp入...
    伊豚wall阅读 3,358评论 2 56
  • 1课程回顾 Jsp基础 1)Jsp的执行过程 tomcat服务器完成:jsp文件->翻译成java文件->编译成c...
    守亭翁阅读 325评论 0 0