JSP - (Java Server Pages) - Java服务器界面

JSP简介:

在HTML中嵌入Java脚本代码,由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码,然后将生成的整个页面信息返回给客户端;

一个JSP页面包含:静态内容(HTML静态文本),JSP指令,JSP脚本元素和内置对象,JSP动作,用户自定义标签

脚本程序:脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。

语法格式:

<% Java代码 %>

与其等价的XML语句:

<jsp:scriptlet>
// Java代码...
<jsp:scrilptlet>

JSP声明:一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。JSP中变量和方法必须声明后才能使用

声明语法格式:在页面中定义Java代码

<%! // Java代码... %>

与其等价的XML语句:

<jsp:declaration>
// Java代码...
</jsp:declaration>

JSP表达式:表达式元素中可以包含任何符合Java语言规范的表达式

一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。

语法格式:对数据的显示,系统将其作为一个值进行计算和显示

<%= Java表达式/变量 %>

与其等价的XML语句:

<jsp:expression>
// Java表达式/变量
</jsp:expression>
JSP注释:为代码作注释以及将某段代码注释掉。
● HTML的注释:<!--    这是注释,但客户端可以查看到 -->

● JSP注释:<%--    这也是注释,客户端无法查看到 --%>

● 在JSP脚本中的注释:<%    //单行注释 %> <%    /*多行注释/* %>

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

语法格式:<%@ directive attribute="value" %>
指令 描述
<%@ page ...%> 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等
<%@ include ...%> 包含其他文件
<%@ taglib ...%> 引入标签库的定义,可以是自定义标签

中文编码问题

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

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

路径跳转问题在jsp里面经常会有跳转,就涉及到绝对路径和相对路径问题。

绝对路径一般表示:一般都使用绝对路径

  • "./" 表示的是当前目录
  • "../" 表示上一级目录,"../../" 表示的是上级目录的上级目录
  • 客户端绝对路径:http://主机名:端口号/
  • 服务器端绝对路径:http://主机名:端口号/项目名

JSP行为:JSP行为标签使用XML语法结构来控制servlet引擎

它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。

语法格式:它严格遵守XML标准

<jsp:action_name attribute="value" />
语法 描述
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 用于封装模板数据

JSP隐含(内置)对象

JSP支持九个自动定义的变量,称之为隐含(内置)对象

对象 描述 作用
request HttpServletRequest类的实例 封装了来自客户端、浏览器的各种信息
response HttpServletResponse类的实例 封装了服务器的相应信息
out PrintWriter类的实例 用于向客户端、浏览器输出数据
session HttpSession类的实例 用来保存会话信息。即可以实现在同一个用户的不同请求之间共享数据
application ServletContext类的实例 代表了当前应用程序的上下文。可以在不同的用户之间共享信息
config ServletConfig类的实例 封装类应用程序的配置信息
pageContext PageContext类的实例 提供了对JSP页面所有对象以及命名空间的访问
page 类似于Java类中的this关键字 指向了当前JSP程序本身
exception Exception类的实例 封装了JSP程序执行过程中发生的异常和信息错误

控制流程语句

JSP提供对Java语言的全面支持。可以在JSP程序中使用Java API甚至建立Java代码块,包括判断和循环语句等。

判断语句:if...else ,switch...case

<% if (day == 1 | day == 7) { %>
<p>今天是周末</p>
<% } else { %>
<p>今天不是周末</p>
<% } %> <%
switch(x) {
case 1: code... break;
case 2: code... break;
case 3: code... break;
default: code;
}
%>
循环语句:for,while,do...while
<%for ( 语法表达式 ){ %>
code...
<%}%> <%while ( 语法表达式 ){ %>
code...
<%循环控制语句%>
<%}%>
上一篇:zookeeper 安装 配置集群


下一篇:什么是Java Server Pages?