JSP 语法

JSP 语法

脚本程序

脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。(其中声明的变量为局部变量)

脚本程序的语法格式:

<% 代码片段 %>

中文编码问题

如果我们要在页面正常显示中文,我们需要在 JSP 文件头部添加以下代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

JSP声明

一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。(全局变量)

JSP声明的语法格式:

<%! declaration; [ declaration; ]+ ... %>

JSP表达式

一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。不能使用分号来结束表达式。

JSP表达式的语法格式:

<%= 表达式(变量) %>

指令

描述

<%@ page ... %>

定义网页依赖属性,比如脚本语言、error页面、缓存需求等等

<%@ include ... %>

包含其他文件

<%@ taglib ... %>

引入标签库的定义

JSP注释

JSP注释主要有两个作用:为代码作注释以及将某段代码注释掉。

JSP注释的语法格式:

<%-- --%>

JSP指令

JSP指令用来设置与整个JSP页面相关的属性。

JSP指令语法格式:

<%@ directive attribute="value" %>

JSP行为

JSP行为标签使用XML语法结构来控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。

行为标签只有一种语法格式,它严格遵守XML标准:

<jsp:action_name attribute="value" />

JSP 动作元素

  • 包含文件:<jsp:include>
  • 请求转发:<jsp:forward>, 如果转发目标是一个动态文件,还可以向该文件中传递多个参数。 <jsp:forward page="文件路径"> <jsp param name="参数名称" value="值1"/> ...
  • 声明使用 JavaBean: <jsp:useBean>
  • 设置 JavaBean 属性值:<jsp:setProperty>
  • 获取 JavaBean 属性值:<jsp:getProperty>
  • 声明使用Java插件:<jsp:plugin><jsp:fallback>
  • 参数传递:<jsp:params><jsp:params><jsp:params>

JSP内置对象

  • 请求对象:request
  • 响应对象:response
  • 会话对象:session
  • 多客户端共享对象:application
  • 页面对象:page
  • 页面上下文对象:pageContext
  • 输出对象:out
  • 配置对象:config
  • 异常对象:exception

JavaBean 组件技术

JavaBean 是使用 Java 语言描述的软件组件模型,简单地说,它就是一个可以重复使用的 java 类。

setXXX()getXXX() 方法的属性名称首字母大写。

JavaBean 属性

  • 简单属性 JavaBean 的简单属性 (simple) 表示为一般数据类型的变量并且 getXXX()setXXX() 方法是以属性来命名的。
  • 索引属性 JavaBean 的索引属性(Indexed 属性)表示一个数组值或者一个集合,与 simple 属性与一样,可以使用 getXXX()setXXX() 方法来获取值。 对于 indexed 属性,必须提供两对相匹配的 getXXX()setXXX() 方法,一对是用来设置整个数组,另一对是用来获得或设定数组中的某个元素。
  • 束缚属性
  • 限制属性

JavaBean 的作用域

使用<jsp:useBean>标签中的 scope 关键字可以设置 Javabean 的 scope 属性,scope 属性决定了 javabean 对象的生存周期范围和使用范围。scope 的可选值包括 page,request,session 和 application,默认值为 page。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web前端教室

你可以从面试中学到什么?

讲一下我对面试的一些。。。“偏见”,哈哈,熟悉我的同学们一定要批判的读接下来的内容哈。

11800
来自专栏华章科技

穿越十年后看互联网+:家电行业的金矿在哪里?

现在市场上炒得火热的智能家居未来出路在何方?做智能家居的创业者应该注意哪些机会?传统家电厂商又到底如何借助互联网进行转型?本文以智能空调为例,用故事的形式,提前...

8210
来自专栏腾讯NEXT学位

今天我就说三句话

11220
来自专栏非著名程序员

这是对付产品经理的一副毒药,程序员慎入

程序员和产品经理的日常就像是一对天生的冤家,为了需求的实现,几乎天天在争吵。这不,就在昨天各大技术和产品群里一个程序员暴打产品经理的视频火了,被广泛传播。

11520
来自专栏Ken的杂谈

【系统设置】CentOS 修改机器名

17530
来自专栏腾讯大讲堂的专栏

白底黑字or黑底白字,眼睛更喜欢哪一个?

12010
来自专栏非著名程序员

「我真的没有改需求」

11710
来自专栏前端桃园

知识体系解决迷茫的你

最近在星球里群里都有小伙伴说道自己对未来的路比较迷茫,一旦闲下来就不知道自己改干啥,今天我这篇文章就是让你觉得一天给你 25 个小时你都不够用,觉得睡觉都是浪费...

19740
来自专栏FSociety

SQL中GROUP BY用法示例

GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类...

5.1K20
来自专栏haifeiWu与他朋友们的专栏

复杂业务下向Mysql导入30万条数据代码优化的踩坑记录

从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负...

26840

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励