JavaWeb程序设计基础一(JSP基本语法)

目录

基础认识

1、web技术简介

 2、动态网页技术

3、JSP的运行原理

一、JSP的基本组成

1、JSP原始代码中包含了模板元素和JSP元素

2、JSP页面的基本组成例子如下

二、脚本元素

1、脚本段

2、表达式

3、声明

4、注释

三、指令元素

1、作用

2、基本格式

3、page指令


基础认识

1、web技术简介

(1)HTML:HTML1.0->HTML5.0(H5),标签是语法

(2)CSS:样式表,让页面美起来

(3)JavaScript:脚本,让页面动起来

(4)DOM:元素的树结构

 2、动态网页技术

(1)HTML是编制静态网页的基本语言

(2)动态网页:可以根据访问者的不同需要,对访问者输入的信息提供不同响应的网页

不同的人、不同的时间、不同的输入访问同一网址会得到不同的页面

例如:

①显示当前时间:现在北京时间 在线标准北京时间校对 (beijing-time.org)

②淘宝、拼多多:千人千面

③个别软件“杀熟”事件

(3)常用的动态网页技术

Servlet技术Java Web开发技术之一,由服务器端调用和执行的Java类,小型的、与平台无关的Java类,被用来扩展服务器的性能

JSP是Java Server Pages缩写,Java语言编写的服务器端运行的页面,页面由 HTML代码和嵌入其中的Java代码组成,拓展阅读如下:

JSP 教程 | 菜鸟教程 (runoob.com)

CGI( Common Gateway Interface )即通用网关接口,最早用来创建动态网页的一种技术,可以使浏览器与服务器之间产生互动关系

ASP(Active Server Page)使用很广泛的开发动态网站的技术,通过在页面代码中嵌入VBScript或JavaScript脚本语言来生成动态的内容,ASP存在很多优点,简单易学,并且ASP是与微软的IIS捆绑在一起,在安装Windows的同时安装IIS,就可以运行ASP应用程序了

PHP来自于Personal Home Page一词,但现在的PHP已经不再表示名词的缩写,而是一种开发动态网页技术的名称。PHP语法类似于C,并且混合了Perl、C++和Java的一些特性,是一种开源的Web服务器脚本语言

编程语言流行:TIOBE 指数 - TIOBE

3、JSP的运行原理

JSP文件被JSP引擎编译成Java的class文件,就是Servlet,将产生的Servlet加载到内存执行,Servlet的运行结果以HTML(或XML)形式通过Web服务器返回给客户端的浏览器

一、JSP的基本组成

1、JSP原始代码中包含了模板元素和JSP元素

(1)模板元素:JSP引擎不处理的部分,HTML+JavaScript+CSS等

(2)JSP元素:JSP引擎直接处理的部分(注意该部分必须符合JSP语法,否则会导致编译错误)

JSP元素的组成内容有:

①脚本元素:声明、脚本段、表达式

②指令元素:page、include、taglib、tag

③动作元素:"jsp: include"、"jsp: forward"、"jsp: dobody"

④注释:JSP隐藏注释、java注释、HTML注释

2、JSP页面的基本组成例子如下

<!-- JSP中的指令标识 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<html>
<head>
<title>JSP页面的基本构成</title>
</head>
<body>
	<center>
		<!-- 嵌入的Java代码 -->
		<%String today=new Date().toLocaleString(); %>
		<!-- JSP表达式 -->
		今天是:<%=today%>
		<!-- HTML标记语言 -->
	</center>
</body>
</html>

二、脚本元素

用Java写的脚本代码,以“<%”开始,以“%>”结束

1、脚本段

(1)格式:<%合法的Java代码;%>

(2)声明变量、调用方法和进行表达式运算,每行语句后面要加入分号

(3)脚本程序中定义的变量在当前的整个页面有效,但不会被其他的线程共享

(4)当前用户对变量的操作不会影响到其他的用户

(5)变量所在的页面关闭后,被定义的变量会被注销

<%@ page language="java" import="java.util. * " contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>1+2+3...+100</title>
</head>
<body>
<% int sum=0;
	for(int i=1;i<=100;i++){
		sum+=i;
	}
%>
<% out.println("sum="+sum); %>
</body>
</html>

2、表达式

以“<%=”开始,以“%>”结束,注意%与=中间不能有空格 

(1)语法:<%=expression%>

(2)执行结果会被自动转换成字符串,显示在JSP页面中

(3)表达式不是完整的Java语句,后面不能加“;”

JSP表达式在页面被传化为Servlet后,转换为out.println()方法,即输出语句<%out.println("sum="+sum);%>的效果相当于sum=<%=sum%>

3、声明

以“<%!”开始,以“%>”结束,可以声明变量、方法和类

(1)语法:<%!声明变量或方法的代码%>

(2)在页面中声明的变量和方法在整个页面内有效,并且会被多个线程即多个用户共享,任何一个线程(用户)对声明的变量或方法的修改都会改变变量、方法原来的状态

(3)其生命周期从创建到服务器关闭后结束

<%@ page language="java" import="java.util. * " contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!
	int num = 0;        //声明一个计数变量
	synchronized void add(){        //该方法实现访问次数的累加操作,synchronized是同步锁
		num++;
	}
%>
<%add(); %><%-- 该脚本程序调用实现访问次数累加的方法 --%>
<html>
<body>
<center>您是第<%=num %>位访问该页的游客!</center></body>
</html>

4、注释

 HTML注释、Java注释、JSP隐藏注释,HTML注释属于显示注释会输出到客户端浏览器,但不进行显示,其余两种是隐式注释,不会输出到客户端浏览器

 (1)HTML注释语法

①<!--这是HTML注释-->

②Java注释:JSP是在HTML中嵌入Java代码,Java本身的注释机制在JSP中照样可以使用,不会受到任何影响

(2)Java注释

①单行注释://Java提供的单行注释,客户端无法查看

②多行注释:/*Java提供的多行注释,客户端无法查看,可以在JSP原始文件以及JSP翻译成的Servlet中看到*/

(3)JSP隐藏注释

①<%--这是隐藏的注释--%>

②不会被JSP引擎解释,也不会输出到客户端

三、指令元素

1、作用

(1)在将JSP源文件解析成Java文件时指示JSP引擎做出相应的操作,从而达到预期的目的

(2)在整个页面范围有效,且不在客户端产生任何输出

(3)一个指令中可以设置多个属性,会影响到整个页面

2、基本格式

<%@指令属性1=""... 属性 2="" %>

注意:%与@不能有空格

3、page指令

(1)用来设定JSP页面的全局属性和相关功能,作用于整个JSP文件,可以放在JSP页面的任何位置

(2)语法格式:<%@page 属性="值" %>

(3)常见的属性

page指令的属性
属性作用
language

设置JSP页面使用的语言,目前只支持Java,默认值为Java

<%@ page language="java" %>

extends设置JSP页面继承的java类,JSP页面在执行之前都会被服务器解析成Servlet,而Servlet是由Java类定义的,所以JSP和Servlet都可以继承指定的父类,该属性不常用,可能影响服务器的性能优化
import

设置JSP导入的类包,嵌入的Java代码片段需要导入相应的类包

<%@ page import="java.util.*" %>

pageEncoding

指定页面编码格式,如果设置为ISO-8859-1,则页面不支持中文,通常设置为GBK或者UTF-8

<%@ page pageEncoding="UTF-8" %>

contentType

设置页面的MIME类型和编码

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

session

指定页面是否使用HTTP的session会话对象,默认值为true

<%@ page session="true"%>

buffer

设置页面out输出对象的缓冲区大小,默认为8KB,单位只能使用KB,建议使用8的倍数作为属性值

<%@ page buffer="128KB"%>

autoFlush

设置页面缓存满时,是否自动刷新缓存,默认为true,如果设置成false,则缓存满式会抛出异常

<%@ page autoFlush="false"%>1

isErrorPage

可以将当前页面设置成错误处理页面来处理另一个JSP页面的错误,也就是作为异常处理页面

<%@ page isErrorPage="true"%>

errorPage

设置当前页面的异常处理页面,对应的异常处理页面isErrorPage必须设置为true,如果设置该属性,那么在web.xml文件中定义的任何错误处理页面都将被忽略,优先使用该属性定义的异常处理页面

<%@ page errorPage="relativeURL"%>

isThreadSage设置JSP页面是否可以多线程访问。默认值为true,表示当前JSP页面被转换为Servlet后,会以多线程的方式来处理来自多个用户的请求,如果设为false,则转换后的Servlet会实现SingleThreadMode接口,并且将以单线程的方式来处理用户请求
isELIgnored其值可设置为true或false,表示是否在此JSP网页中执行和忽略表达式语言“$ {}”。设为true时,JSP容器将忽略表达式语言
info属性设置JSP页面的相关信息,如当前页面的作者、编写时间等。此值可设置为任意字符串,由Servlet。getServletInfo()方法来获取所设置的值

(4)一个JSP文件可以包含多个page指令,指令之间是独立的,除了import和pageEcoding属性以外,每个属性只能定义一次

(5)用import指明多个包时,之间用逗号隔开,或者分多行写

①<%@ page import="java.text.*,java.util.* " %>

②<%@ page import="java.text.*" %>

<%@ page import="java.util.* " %>

(6)默认被载入JSP当前页面的类

①java.lang.*

②javax.servlet.*

③javax.servlet.jsp.*

④javax.servlet.http.*

4、include指令

(1)作用:向当前页面插入一个静态文件,该文件可以是HTML文件、JSP文件或其他文件或者只是一段Java代码

(2)格式:<%@ include file="URL"%>

URL:要插入文件的绝对路径或相对路径

①以“/”开头,指绝对路径,将在当前应用的根目录下查找文件

②以文件名称文件夹名开头,指相对路径,在当前页面的目录下查找文件

四、动作元素

1、<jsp:include>动作

(1)指在当前的JSP页面中动态加入静态或动态的资源(如txt文件、JSP文件、HTML文件等),如果是静态网页,内容将直接加入当前JSP网页中,如果是动态网页,会编译执行后再加入当前JSP网页中

(2)格式:<jsp:include page="URL或<%=expression%>" flush="true|false"/>

2、<jsp:param>动作

(1)用来提供key/value的信息,可以与<jsp:include>一起搭配使用

代码例子:

include.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>include动作的使用</title>
</head>
<body>
	<h1>include动作的使用</h1>
	<jsp:include page="table.jsp">
		<jsp:param name = "color" value="#00FF00"/>
		<jsp:param name = "title" value="This is the title"/>
		<jsp:param name = "content" value="This is the content"/>
	</jsp:include>
	
</body>
</html>

table.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String color = request.getParameter("color");
		String title = request.getParameter("title");
		String content = request.getParameter("content");
	%>

	<table border="1" width="50%">
		<tr bgcolor="<%=color%>">
			<td><%=title %></td>
		</tr>
		<tr>
			<td><%=content %></td>
		</tr>
	</table>
</body>
</html>

 从例子可以看出<jsp:param>传入的参数起到作用,使被包含在文件中的表格颜色内容发送变化

3、<jsp:include>动作与include指令的区别

(1)执行时间:

指令在编译时就包含文件

动作在运行时才包含文件

(2)引入内容:

指令引入的是静态文本(HTML,JSP),在JSP页面被转化成servlet之前和它融合到一起

动作引入的是执行页面或Servlet所生成的应答文本

4、<jsp.forward>动作

(1)将请求转发到另一个JSP、HTML或相关的资源文件中,该标识被执行后,当前的页面将不再被执行,而去执行该标识指定的目标页面

(2)格式:<jsp.forward page="重定向的页面">

代码例子如下:

now.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	跳转之前的内容
	<jsp:forward page="next.jsp"></jsp:forward>
	跳转之后的内容
</body>
</html>

next.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	这是跳转之后的next.jsp
</body>
</html>

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五秒法则

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值