在一个JSP页面中,可以包括指令标识、HTML代码、JavaScript代码、嵌入的Java代码、注释和JSP动作标识等内容。但是这些并不是JSP页面所必须的。

1 指令标识
指令标识主要用于设定整个JSP页面范围内都有效的相关信息。它被服务器所解释执行,并不会产生任何内容输出到网页中。
JSP指令标识的语法格式如下:
<%@ 指令名 属性1="属性值1" 属性2="属性值2"...%>
参数说明:
指令名:用于指定指令名称,在JSP中包含page、include和taglib 3条指令
属性:用于指定属性名称,不同的指令包含不同的属性。在一个指令中,可以设置多个属性,各属性之间用逗号或者空格分隔
属性值:用于指定属性值

1.1 page指令
page指令是JSP页面中最常用的指令,用于定义整个JSP页面的相关属性,这些属性在JSP被服务器解析成Servlet时会被转换为相应的Java程序代码。
<%@ page attr1="value1" attr2="value2" ...%>
1、language属性
2、extends属性
3、import属性
4、pageEncoding属性
5、contentType属性
6、session属性
7、buffer属性
8、autoFlush属性
9、isErrorPage属性
10、errorPage属性

1.2 include指令
文件包含指令include,通过该指令可以在一个JSP页面中包含另一个JSP页面。不过该指令是静态包含,也就是被包含文件中所有内容都会被原样包含到该JSP页面中,即使被包含文件中有JSP代码,在包汉中也不会被编译执行。使用include指令,最终将生成一个文件,所以在被包含和包含的文件中,不能有相同名称的变量。
<%@include file="path"%>
注意:在应用include指令进行文件包含时,为了使整个页面的层次结构不发生冲突,建议在被包含页面中将<html> <body>等标记删除。因为在包含该页面的文件已经制定这些标记

1.3 taglib指令
在JSP文件中么可以通过taglib指令标识声明该页面中所使用的标签库,同时引用标签库,并制定标签的前缀。在页面中引用标签库之后,就可以通过前缀来引用标签库中的标签。
<%@taglib prefix="tagPrefix" uri="tagURI"%>

2 脚本标识
在JSP页面中,脚本标识能够方便灵活地生成页面中的动态内容。
JSP的脚本标识包含3个部分,即JSP表达式 声明标识和代码片段。

2.1 JSP表达式
用于向页面中输出信息,其语法格式如下:
<%= 表达式%>
表达式可以是任何java的完整表达式。该表达式的最终运算结果将被转换为字符串。
注意%与=之间不能够有空格

2.2 声明标识
声明标识用于在JSP页面中定义全局的变量或方法。通过标识定义的变量和方法可以被整个JSP页面访问。
<%! 声明变量或方法的代码 %>

2.3 代码片段
所谓代码片段就是在JSP页面中嵌入的Java代码或脚本代码。代码片段将在页面请求的处理期间被执行,通过Java代码可以定义变量或流程控制语句灯;通过脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和响应、访问session会话等。
<%Java代码或者脚本代码%>

3 JSP动作标识

3.1 包含文件标识<jsp:include>

用于向当前页面中包含其他文件。

<jsp:include page="url" flush="false|true">
子动作标识<jsp:param>
</jsp:include>

3.2 请求转发标识<jsp:forward>

可以将请求转发到其他的Web资源,例如另一个JSP页面、HTML页面、servlet灯。执行请求转发后,当前页面将不再被执行,而失去执行该标识指定的目标页面。

Java Web开发——JSP基本语法杂记的更多相关文章

  1. Java Web开发——HTML CSS JavaScript 杂记

    HTML是一种在互联网上常见的网页制作标注性语言,并不能算作一种程序设计语言.因为它相对程序设计语言来说缺少了其应所有的特征.对于网站设计人员来说,只使用HTML是不够的,需要在页面中引入CSS样式. ...

  2. Java Web 之 Jsp 常用语法总结

    一.小脚本语法 <% code fragment %> 语法编写为XML的形式,效果相同,如下所示: <jsp:scriptlet> code fragment </js ...

  3. Java Web开发技术教程入门-JSP基本语法和九大内置对象

    这两天气温逐渐升高,好想把自己泡在冰块里······ 恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽.......今天阅读到了这本书的第四章-JSP基本语法.经过第一天的阅读,我们明白JSP技术是Java Web开 ...

  4. Java Web开发之详解JSP

    JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用, ...

  5. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  6. java web 开发入门 --- tomcat/servlet/jsp

    在做java web 开发时,要先安装tomcat.它是一个web服务器,也叫web容器,我们把写好的jsp, html页面放到它里面,然后启动它,就可以用浏览器访问这些页面,地址栏中输入localh ...

  7. java web开发必备知识

    从各种招聘网站的要求上筛选出了一些java开发的一些基本的要求,对照自身看看有哪些缺陷. java基础 既然是java web开发,java SE肯定要学好了. 多线程,IO,集合等,对队列,缓存,消 ...

  8. Java Web开发模式

    一 Java Web开发模式的变迁 1 最初的Java web服务器端编程技术是Servlet,利用Servlet就可以开发出一个Web应用程序. 2 为了解决Servlet缺陷,SUN推出了JSP技 ...

  9. Java Web(六) JSP

    现在的Java Web开发已经很少使用JSP脚本了,业务逻辑都交给Servlet处理,JSP只负责显示视图,所以接下来的内容就对JSP脚本不做叙述了... JSP概述 JSP全名为Java Serve ...

随机推荐

  1. CentOS下安装JDK1.8

    0.卸载旧版本 键入命令java-version,查询当前JDK版本 如果版本号不是想要的,键入rpm -qa|grep gcj 键入命令 yum -y remove (后接查询得到的版本),移除老版 ...

  2. rabbitmq常见运维命令和问题总结

    常见运维命令作用: yum安装erlang的环境配置: ERLANG_HOME=/usr/lib64/erlang export PATH=$PATH:$ERLANG_HOME/bin 常见rabbi ...

  3. 算法专题-STL篇

    这篇文章着重记录c++中STL的用法.主要粗略的介绍其用法,以知识点的形式呈现其功能,不会深入源码分析其工作原理. 排序和检索. sort(a,a+n),对a[0]往后的n个元素(包括a[0])进行排 ...

  4. R3—日期处理

    一. 问题引入 下面是一个房地产价格数据,现在想要提取2008年6月份的数据进行分析,在R中该如何操作呢? city price bedrooms squarefeet lotsize latitud ...

  5. HDU 1072 Nightmare (广搜)

    题目链接 Problem Description Ignatius had a nightmare last night. He found himself in a labyrinth with a ...

  6. python作业类Fabric主机管理程序开发(第九周)

    作业需求: 1. 运行程序列出主机组或者主机列表 2. 选择指定主机或主机组 3. 选择让主机或者主机组执行命令或者向其传输文件(上传/下载) 4. 充分使用多线程或多进程 5. 不同主机的用户名密码 ...

  7. [网站安全] [实战分享]WEB漏洞挖掘的一些经验分享

    WEB漏洞有很多种,比如SQL注入,比如XSS,比如文件包含,比如越权访问查看,比如目录遍历等等等等,漏洞带来的危害有很多,信息泄露,文件上传到GETSHELL,一直到内网渗透,这里我想分享的最主要的 ...

  8. app 测试基础

    1. 安装和启动 (1) OTA安装测试 ·         app必须能够通过ota安装到测试设备上 ·         如果app安装完后没有icon,那么必须能够通过其他的方法来启动这个app ...

  9. flask插件系列之flask_caching缓存

    前言 为了尽量减少缓存穿透,同时减少web的响应时间,我们可以针对那些需要一定时间才能获取结果的函数和那些不需要频繁更新的视图函数提供缓存服务,可以在一定的时间内直接返回结果而不是每次都需要计算或者从 ...

  10. Deep Learning基础--随时间反向传播 (BackPropagation Through Time,BPTT)推导

    1. 随时间反向传播BPTT(BackPropagation Through Time, BPTT) RNN(循环神经网络)是一种具有长时记忆能力的神经网络模型,被广泛用于序列标注问题.一个典型的RN ...