02. JSP 基本语法

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
JSP 基本语法

JSP 文件中除了可以直接包括 HTML 文本以外,还可以包含以下的内容:
  • JSP 指令(指示)语句
  • JSP 声明语句
  • JSP 脚本程序(Scriptlet)片段
  • JSP 表达式
  • JSP 行为指令语句
  • JSP 隐含对象



JSP 脚本程序片段


脚本程序可以包含任意量的Java语句、变量、方法或表达式,JSP的行为标签,表达式语句,JSTL 都可以看成是基于脚本程序的模板语言;
语法格式:
 
<% 代码片段; %>
以上的语法等同于以下的 XML 语句:
 
<jsp:scriptlet> 
    代码片段;
<jsp:scriptlet>
简单示例:
 
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
    out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>

中文编码问题

如果要在页面中正确地显示中文,需要在 JSP 文件头部添加以下的指令语句:
 
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
等同于在 Servlet 中设置 response 对象的contentType、characterEncoding属性;

流程控制
JSP 中输出流程控制类似于 PHP 中的输出方式,如一个简单的循环输出如下:
 
...
<p>loop output test</p>
<% for(int i=0;i<10;i++){ %>
    <p>Count:<%= i %></p>
<% } %>
...
等同于:
 
...
<p>loop output test</p>
<% for(int i=0;i<10;i++){ 
    out.println("<p>Count:"+i+"</p>");
 } %>
...



JSP 声明语句

JSP 的声明语句用于声明与 JSP 对应的 Servlet 类的成员变量和方法,而在 JSP scriptlet 中声明的变量只是 JSP 对应 Servlet 类的 service() 方法中的局部变量;
语法格式:
 
<%! 声明语句[,声明语句,声明语句......]; %>
等同于以下 XML 标签
 
<jsp:declaration>
    声明语句;
<jsp:declaration>
示例
 
<%! int i=0; %>
<%! int a,b,c %>
<%! List<Integer> list = new ArrayList<Inetger>(); %>
<%! public int sum(int a,int b){
    return a+b;
}%>



JSP 表达式语句

一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方;
表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式;
语法格式:
 
<%= 表达式 %>
等同于以下 JSP 脚本程序片段
 
<% out.print(表达式) %>
等同于以下 XML 标签
 
<jsp:expression>
    表达式
</jsp:expression>
示例:
 
...
<p> Today is <%= new SimpleDateFormat("yyyy-MM-dd").format(new Date()) %> </p>
...



JSP 注释语句

JSP注释语句用于注释 .jsp 文件中的各种 JSP 语句
语法格式
 
<%-- 注释 --%>
在注释中如果要输出一些特殊常量的转义量:
<%<\%
%>%\>
'\'
"\''



JSP 指令语句

JSP指令语句用于设置与整个 JSP 页面相关的属性,页面编码,Java类库导入,与 JSP 对应的 Servlet 实现的接口等,一般放置在 JSP 文件的最开头部分
语法格式:
 
<%@ directive attribute="value">
主要的 directive 指令标签包括以下3种:
<%@ page ... %>
定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include ... %>
包含其他文件
<%@ taglib ... %>
引入 JSTL 标签库的定义,也可以是自定义标签

Page 指令

page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。
 
<%@ page attribute="value">
等同于以下XML 标签
<jsp:directive.page attribute="value" />
主要 attribute 属性参数如下:
buffer 指定out对象使用缓冲区的大小
autoFlush 控制out对象的 缓存区
contentType 指定当前JSP页面的MIME类型和字符编码
errorPage 指定当JSP页面发生异常时需要转向的错误处理页面
isErrorPage 指定当前页面是否可以作为另一个JSP页面的错误处理页面
extends 指定servlet从哪一个类继承
import 导入要使用的Java类
info 定义JSP页面的描述信息
isThreadSafe 指定对JSP页面的访问是否为线程安全
language 定义JSP页面所用的脚本语言,默认是Java
session 指定JSP页面是否使用session
isELIgnored 指定是否执行EL表达式
isScriptingEnabled 确定脚本元素能否被使用
示例
 
<%@ page  contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" 
          import="java.io.*;java.util.List.*" %>

Include 指令

JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行;
语法格式:
 
<%@ include file="文件的相对URL路径" %>
等同于以下XML语句
<jsp:directive.include file="文件的相对URL路径" %>
具体关于JSP的转发和包含见:03. JSP 请求转发&包含

Taglib 指令

Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签;
语法格式:
 
<%@ taglib uri="uri" prefix="prefixOfTag" %>
等同于以下XML标签
<jsp:directive.taglib uri="uri" prefix="prefixOfTag" />
具体用法见:09. JSP 标准标签库 JSTL



JSP 行为标签

JSP行为标签使用 XML 语法结构来控制 servlet 引擎,它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等;
JSP 行为标签严格遵守 XML 格式,其语法如下:
 
<jsp:action_name attribute="value" />
动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素如下:
jsp:include 用于在当前页面中包含静态或动态资源
jsp:useBean 寻找和初始化一个JavaBean组件
jsp:setProperty 设置 JavaBean组件的值
jsp:getProperty 将 JavaBean组件的值插入到 output中
jsp:forward 从一个JSP文件向另一个文件传递一个包含用户请求的request对象
jsp:plugin 用于在生成的HTML页面中包含Applet和JavaBean对象
jsp:element 动态创建一个XML元素
jsp:attribute 定义动态创建的XML元素的属性
jsp:body 定义动态创建的XML元素的主体
jsp:text 用于封装模板数据
详细的各种动作标签的用法见:03. JSP 动作标签




JSP 隐含对象

JSP 隐式对象 是 JSP 容器为每个页面提供的 Java Servlet 元素对象,可以直接使用它们而不用显式声明,隐式对象也被称为预定义变量;
JSP所支持的9大隐式对象:
requestHttpServletRequest类的实例
responseHttpServletResponse类的实例
outJspWriter类的实例,用于把结果输出至网页上
sessionHttpSession类的实例
applicationServletContext类的实例,与应用上下文有关
configServletConfig类的实例
pageContextPageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page类似于Java类中的this关键字
ExceptionException类的对象,代表发生错误的JSP页面中对应的异常对象
这些对象是 JSP 对应的 Servlet 的相应对象,其用法与在 Servlet 中基本一样;

application对象
  • application对象直接包装了 javax.servlet.ServletContext 类的对象实例;
  • 这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。
  • 通过向application中添加属性,则所有组成 web 应用的 JSP 文件都能访问到这些属性;

pageContext 对象
  • pageContext 对象是 javax.servlet.jsp.PageContext 类的实例,用来代表整个JSP页面,该对象主要用来访问页面信息;
  • PageContext 对象存储了 request , response 对象的引用;application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出。
  • pageContext对象也包含了传给JSP页面的指令信息,包括缓存信息,ErrorPage URL, 页面scope 等。
pageContext定义的比较重要的字段有以下4个:
PAGE_SCOPE
页面范围:(这是默认值)指定引用在此 PageContext 中继续可用,直到从当前 Servlet.service() 调用中返回。
REQUEST_SCOPE
请求范围:指定引用在与 Servlet 关联的 ServletRequest 中继续可用,直到当前请求完成
SESSION_SCOPE
会话范围(仅在此页面参与会话时有效):指定引用在与 Servlet 关联的 HttpSession(如果有)中继续可用,直到 HttpSession 无效
APPLICATION_SCOPE
应用程序范围:指定引用在 ServletContext 中继续可用,直到它被回收。
pageContext 对象 中的大部分方法引用自 javax.servlet.jsp.PageContext,在 JSP 中作为隐含对象中添加的比较的重要的方法有
removeArribute() ,用于移除 pageContext 中储存的对象的4个上面定义的字段;
如: pageContext.removeArribute("session"),移除pageContext 中的 PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE, APPLICATION_SCOPE 字段;
 pageContext.removeArribute("session",PAGE_SCOPE) ,只移除其中的 PAGE_SCOPE 字段;





JSP2.0语法初步掌握(学习笔记) 为什么80%的码农都做不了架构师?>>> ... 阅读详情

相关推荐

03. JSP 动作标签

JSP 行为标签JSP行为标签使用 XML 语法结构来控制 servlet 引擎,它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等;JSP 行为标签严格遵守 XML 格式,其语法如下: &lt;jsp:action_name attribute="value" /&gt;动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用...

Al_assad的博客 717

JSP学习笔记02基本语法

在传统的网页HTML中加入JAVA程序片段,就构成了JSP网页,WEB服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户端。 程序代码中符号之间的内容,便是由JAVA程序片段所构建的JSP网页程序代码,剩下的则是HTML标签。 原始JSP网页中区域里的JAVA程序代码被编译,转换成为纯粹的HTML标签文字,重新建立只包含HTML的网页内容,然后传

戦う! 285

javaWeb开发_Jsp02_jsp基本语法

  任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用。 一、JSP模版元素   JSP页面中的HTML内容称之为JSP模版元素。   JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。 二、JSP表达式   JSP脚本表达式(expression)用于将程序数据输出到客户端 ...

ilgfcyll的博客 176

Web02.jsp基本语法&表单提交方式

如何用eclipse来部署web?表单登录验证?

m0_64043477的博客 1652

javaWeb02(jsp基本语法&表单提交方式)

Hello!小刘又回来了,今天给大家带来的是jsp基本语法以及表单提交方式,不知道上一期的环境搭建还有没有小伙伴没有搞定的,如果有可以尽快私信我的,好了接下来我们步入主题,老规矩,先上思维导图 一,jsp基本语法 先为大家解决一个藏在心里的疑问: jsp是什么?为什么要学jsp? JSP (全称:Java Server Pages) 是指: 在HTML中嵌入Java脚本代码 由应用服务器中的JSP引擎来编译...

weixin_64313980的博客 1751

JavaWeb02.JSP基本语法&表单提交方式

目录 初识Tomcat Tomcat目录结构 服务器的URL URL的组成 认识JSP JSP简单介绍 什么是JSP 关于JSP jsp运行原理 jsp常见错误 B/S和C/S技术 关于B/S JSP内置对象及常用方法 JSP注释方法 request(请求)对象 request的一般get方法 请求中文乱码处理 request获得主机和客户端的信息 response(响应)对象 response对象常用方法 out(输出)对象 out对象的方法 page(.

T278lk的博客 832

Javaweb-02jsp基本语法&request请求对象)

.jsp基本语法 1.1 什么是jspjsp(java server pages)java服务器端页面,它是一种动态网页开发技术,使用了jsp标签在html网页中插入java代码;标签通常以<%开头以%>结束。 1.2 jsp页面元素的构成 注释(html注释,jsp注释,js注释 java)、声明、小脚本、表达式、指令、静态内容 1.3 jsp指令 page指令:通常位于jsp页面的顶端,同一个页面可以有多个page...

m0_67777597的博客 650

Java Web02(jsp基本语法和表单提交方式)

JSP是什么? JSP全程Java Server Pages,是一种动态网页开发技术。它使用jsp标签在HTML网页中插入java代码,标签通常以<%开头 以%>结束。 jsp是一种java servlet,主要用于实现java web用于程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入jsp操作和命令来编写jsp jsp的特点: a、实现跨平台操作 b、可重复使用组件 c、标记简化的语言 d、实现应用程序与页面显示分离化 jsp的运行原理

m12120426的博客 673

javaWeb_02(jsp基本语法&request请求对象)

jsp基本语法 什么是jspjsp(java server pages)java服务器端页面,它是一种动态网页开发技术,使用了jsp标签在html网页中插入java代码;标签通常以<%开头以%>结束。 jsp页面元素的构成 注释(html注释,jsp注释,js注释 java)、声明、小脚本、表达式、指令、静态内容 jsp指令 page指令:通常位于jsp页面的顶端,同一个页面可以有多个page指令。 include指令:将一个外部...

m0_65208075的博客 385

02(jsp基本语法&表单提交方式)

首先我们要了解jsp是什么? jsp基本语法 jsp是什么? 在上一片分享的文章中我已经说过了,所以在这就只简短的介绍一下了 jsp全称Java Server Page,翻译过来就是:运行在服务器端的页面,简单来说JSP=HTML+Java,就是说既可以识别Java代码也能识别HTML代码 运行原理 1、客户端通过浏览器向服务器发出请求,在该请求中包含了请求的资源的路径,这样当服务器接收到该请求后就可以知道被请求的内容。 2、服务器根据接收到的客户端的请求来加载相应的JSP文件。 3、Web服务器中的JSP

m0_63772104的博客 448

JavaWeb02(jsp基本语法及表单提交方式)

上次给大家简单介绍了一下web的安装和简易使用,今天就来继续给大家介绍一下如何用JSP实现动态交互吧 一,JSP基本语法

weixin_65474399的博客 1099

JavaWEB-02jsp基本语法&request请求对象)

JavaWEB-02jsp基本语法&request请求对象)

m0_63579794的博客 655

javaWeb02jsp基本语法&表单提交方式)

javaWeb02jsp基本语法&表单提交方式)

weixin_67465673的博客 570

JavaWeb02(jsp基本语法&表单提交方式)

今天要讲的是关于jsp基本语法和表单提示的方式,废话不多说了,直接进入主题~ 一、jsp基本语法 1.1 jsp是什么?为什么要学jsp ? 1.2 jsp运行原理? 1.3 jsp模板元素 1.4 jsp脚本片段 1.5 jsp表达式 1.6 jsp声明 1.7 jsp注释方式 1.8 jsp常见错误代号 1.9 jsp内置对象之request 二、表单提示的方式 ...

weixin_65808248的博客 354

JAVA web 02jsp基本语法和表单提交方式)

思维导图: 一、jsp基本语法: 1.

m0_67094505的博客 517
上一篇: 04. JSP 请求转发&amp;包含
下一篇: 05. JSP 异常处理
Al_assad
博客等级 码龄11年 591粉丝 341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值