Javaweb 学习记录—JSP语法

Javaweb 学习记录—JSP语法

 1.JSP简介

  • JSP 全名为 Java Server Pages ,中文名叫 java 服务器页面,其根本是一个简化的 Servlet 。
  • JSP 技术有点类似 ASP 技术,用于开发包含动态内容的 Web 页面,它是在传统的网页 HTML 文件中插入 Java 程序段和 JSP 标记,从而形成 JSP 文件,后缀名为 .jsp。
  • 用 JSP 开发的 Web 应用是跨平台的,既能在 Linux 下运行,也能在其他操作系统上运行。

 2.JSP原理
JSP 同 Servlet 一样,都运行在 Servlet 容器中。当用户第一次访问 JSP页面时, JSP 页面的处理过程:
在这里插入图片描述
当同一个 JSP 页面再次被请求时,只要该 JSP 文件没有发生过改动,容器将直接调用已装载的 .class 文件,而不会再执行翻译和编译的过程,从而大大提高了服务器的性能。此过程如下:
在这里插入图片描述
JSP 请求执行流程图
在这里插入图片描述
在 JSP 的执行过程中,JSP 文件会被翻译为 Servlet。可以通过查看tomcat 的临时工作目录 work。
在处理一个 JSP 页面请求时, html 和 JSP 元素的内容会转化为 Servlet ,然后再将结果作为响应内容发送给浏览器。

 3.JSP基本结构
在这里插入图片描述
 4.脚本元素

  • 脚本元素允许用户将小段的代码(一般情况下是 Java 代码)添加到JSP 页面中。
  • 脚本元素在页面被请求时执行。
  • JSP 脚本元素包括:脚本、表达式、声明和注释。

 5.JSP脚本
所谓脚本代码(Scriptlet),是指 JSP 中的代码部分,在这个部分中可以使用几乎任何 Java 的语法。
语法:<% JSP 脚本 %>
示例:判断语句

<%if(request.getParameter("un")==null){ %>
null
<%}else{ %>
not null
<%} %>

 6.JSP 表达式
JSP 中的表达式可以被看做一种简单的输出形式,需要注意的是,表达式一定要有一个可以输出的值 。
语法:<%= = 表达式 %>
示例: 使用 JSP表达式显示当地时间:

<%=(new java.util.Date()).toLocaleString() %>

创建showDate.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		//创建Date类,以获取系统时间
		java.util.Date date = new java.util.Date();
		//输出当前时间
		out.print("当前时间为:" + date.toLocaleString());
	%>

	<%
		if (java.util.Calendar.getInstance().get(java.util.Calendar.AM_PM) == java.util.Calendar.AM) {
	%>
	上午好!
	<%
		} else {

			out.print("下午好");

		}
	%>


</body>
</html>

运行
在这里插入图片描述
创建multiplicationTable.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<%
		for (int i = 1; i < 10; i++) {
			for (int j = 1; j <= i; j++) {
	%>
	<%=(i + "*" + j + "=" + (i * j))%>
	<%
		}
	%>
	<br />
	<%
		}
	%>

</body>
</html>

运行
在这里插入图片描述
 7.JSP 声明
JSP 中的声明用于声明一个或多个变量和方法,并不输出任何的文本到输出流。在声明元素中声明的变量和方法将在 JSP 页面初始化时进行初始化。
语法:<%! ! JSP 声明 %>
示例:声明变量和方法

<%! ! int i=0;%>
<%! ! public String f(){
return "test";
} }
%>
<%i++; %>

创建visitCount.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@page import="java.util.Date"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<%-- 脚本注释 --%>
	<!-- 页面标签注释 -->

	<%!int count = 0;

	void setCount() {
		count++;
	}%>

	<%
		String date = new Date().toLocaleString();
	%>

	<%
		setCount();
		out.print("您是第" + count + "次访问页面");
		out.print("访问时间是:" + date);
	%>

</body>
</html>

运行
在这里插入图片描述
JSP 声明变量与普通脚本变量的区别:

  • 声明变量将做为 JSP 翻译生成的 Servlet 的属性,所有对该 JSP 的请求将共享此变量;
  • 普通脚本变量将做为 JSP 翻译生成的Servlet 的 _jspService () 方法中的局部变量 。

 8.JSP 注释
一般注释可分为两种:一种是在客户端显示的注释;另外一种就是客户端看不到,只给程序员专用的注释。

  • 客户端可以看到的注释:<!--可以看到的注释-->
  • 程序员专用,看不到的注释:<%--看不到的注释--%>

JSP 不会对 <%-- 和 --%> 之间的语句进行编译,它不会显示在客户端的浏览器上,也无法从源文件中看到。

 9.指令元素

  • JSP 指令用于提供整个 JSP 页面的相关信息,如网页的编码方式和脚本语言等。
  • 指令并不向客户端产生任何输出,所有的指令都只在当前页面中有效。
  • JSP 指令元素包括三种 : page 指令、include 指令、taglib指令

(1)page指令

  • page 指令描述了和页面相关的信息,如:导入所需类包、指明输出内容类型、控制 Session 等
  • page 指令一般位于 JSP 页面的开头部分,在一个 JSP 页面中, page 指令可以出现多次,但是在每个 page 指令中,每一种属性却只能出现一次,重复的属性设置将覆盖掉先前的设置。
  • 语法:<%@page 属性列表 %>
  • 示例:page 指令<%@page language="java" contentType ="text/html; charset =UTF-8"%>
  • page指令的属性:
属性名说明
language设定JSP页面使用的脚本语言,默认为Java,目前只可使用Java语言
import指定导入的Java软件包或类名列表,若有多个类,中间用逗号隔开
contentType指定MIME类型和JSP页面响应时的编码方式,默认为“text/html;charset=ISO8859-1”
pageEncoding指定JSP文件本身的编码方式,例如pageEncoding=“UTF-8”
session指定JSP页面中是否使用session对象,值为“true
errorPage设定JSP页面发生异常时重新指向的页面URL,指向的页面文件要把isErrorPage设成true
isErrorPage指定此JSP页面是否为处理异常错误的网页,值为“true
isELIgnored指定JSP页面是否忽略EL表达式,值为“true
buffer指定输出流是否需要缓冲,默认值是8kb,与autoFlush一起使用,确定是否自动刷新输出缓冲,如果设成true,则当输出缓冲区满的时候,刷新缓冲区而不是抛出一个异常
autoFlush如果页面缓冲区满时要自动刷新输出,则设置为true;否则,当页面缓冲区满时要抛出一个异常,则设置为false

import属性:

  • import 属性用来指定当前 JSP 页面中导入的 Java 软件包或类名。
  • 如果需要导入多个类或包,可以在中间使用逗号隔开或使用多个 page指令
  • 使用 import 属性,可以使 JSP 脚本代码中类的使用更加方便 。

contentType 属性:

  • contentType 即内容类型,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,比如: html 页面, word文档等。
  • 默认值为: contentType=“text/html; charset=ISO-8859-1”。
  • 通过设置 contentType 属性的 MIME 类型,可以改变 JSP 输出内容的处理方式,从而实现一些特殊的功能。

(2)include指令

  • include 指令的作用是在页面翻译期间引入另一个文件,被包含的文件可以是 JSP 、 HTML 或文本文件。
  • 语法:<%@include file=" 文件
  • 示例:include 指令引入一个 JSP<%@include file="header.jsp"%>

演示:
创建head.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>欢迎您!
</body>
</html>

创建tail.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<pre>
版权所有
免责申明:本网站内容的解释权归本站所有
</pre>
</body>
</html>

创建includeDirective.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@include file="head.jsp"%>

	<p>CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、精品问答、职业培训、技术论坛、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区.</p>

	<%@include file="tail.jsp"%>
</body>
</html>

运行
在这里插入图片描述
(3)taglib 指令

  • taglib 指令用于指定 JSP 页面所使用的标签库,通过该指令可以在 JSP 页面中使用标签库中的 标签 。
  • 语法<%@ taglib prefix=" 标签前缀 " uri =" 标签库 URI" %>
    其中:
    • prefix指定使用标签库中标签的前缀。
    • uri指定描述这个标签库位置的URI,可以是相对路径或绝对路径

 10.动作元素

  • 在 JSP 中可以使用 XML 语法格式的一些特殊标记来控制行为,称为 JSP标准动作( Standard Action )
  • 利用 JSP 动作可以实现很多功能 , 例如: 动态 地插入文件、调用JavaBean 组件、重定向页面、为 Java 插件生成 HTML 代码等。
  • JSP 规范定义了一系列标准动作,常用有下列几种:
    <jsp:include> 动作:用于在页面被请求时引入一个文件;
    <jsp:useBean> 动作:用于查找或实例化一个 JavaBean ;
    <jsp:setProperty> 动作:用于设置 JavaBean 的属性;
    <jsp:getProperty> 动作:用于输出某个 JavaBean;
    <jsp:forward>动作:用于把请求转发到另一个页面。

 11.总结

  • JSP 是一种用于开发包含动态内容的 Web 页面的技术,与 Servlet 一样,也是一种基于Java的服务器端技术,主要用来产生动态网页内容。
  • JSP 本质上就是 Servlet , JSP 是首先被翻译成 Servlet 后才编译运行的,所以 JSP 能够实现 Servlet能实现的所有功能。
  • JSP 的执行过程经过 “ 请求- 翻译- 编译- 执行- 响应 ”五个过程。
  • JSP 有三种类型的元素:脚本元素( scripting element )、指令元素( directive element )和动作元素( action element )。
  • JSP 脚本元素包括:脚本、表达式、声明和注释。
  • JSP 指令元素包括三种: page 指令、 include 指令和 taglib 指令。
  • JSP 动作元素包括: <jsp:include> 、 <jsp:forward> 、 <jsp:useBean> 、<jsp:setProperty> 、 <jsp:getProperty>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值