Java EE基础知识学习(二)

要编写一个JSP页面,我们首先要写好我们需要的html页面,然后在html页面中嵌入我们的java代码,所以接下来我们要学习一些JSP的基本语法,这样我们就可以开始编写JSP代码了。

一、JSP的四种基本语法

1、注释语句

<%--    --%>

JSP的注释语句类似于HTML的注释语句,HTML注释语句是<!--    --!>,我们只需要将我们呢所要写的注释写在标签中间就可以了。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- HTML注释 -->
<%-- JSP注释  --%>
</body>
</html>

从上面的代码我们可以看出HTML的注释和JSP的注释非常的像,只是标签的写法不同,这就会让大家觉得这两种标签是可以混用的,然而我们并不能混用这两种标签去进行注释,当我们在浏览网页的时候我们可以在网页上单机右键点击查看网页的源代码,在查看源代码的时候HTML代码的注释将会显示在这里,而JSP的注释将不会显示,也就是说服务器会把HTML代码发送给客户端,但是不会把JSP的代码发送给客户端。


2、JSP脚本

<% %>

JSP脚本标签可以帮助我们把我们的Java代码嵌入到HTML文档中,例如:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
int a=3;
int b=4;
out.println(a+b);
%>
</body>
</html>

我们在上面的Html页面中嵌入了一个a+b的并且输出的代码,然后我们在浏览器中可以看到这个页面会显示一个数字“7”,也就是说我们的Java代码都要写在JSP脚本标签中,这样Java代码才会生效。


3、JSP声明

<%! %>

JSP声明可以帮助我们定义变量和函数,例如我们要定义一个字符串存储“abcde”,然后声明一个函数输出这个字符串,我们可以用以下代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%!
public String str="abcde";
public String showStr(String s)
{
	return s;
}
%>
</body>
</html>

这里有个问题就是在JSP脚本标签中我们也可以使用int a;等声明语句,为什么还要有一个JSP声明标签,原因就是在JSP脚本标签中声明的变量都是局部变量,并且不能在这个里面声明函数,这里就像是我们在一个方法中定义了一个变量,这个变量是局部变量,同时我们也不能在一个方法中再声明一个方法。而JSP声明标签中声明的变量则是可以使用public和private等关键字来声明的,这里声明的是全局变量,并且我们也可以在这里声明方法。但是在JSP声明中不能使用abstract来声明,也就是说我们不能声明抽象方法,抽象方法会导致JSP对应的Servlet类变为抽象类,从而无法实例化。


4、JSP输出表达式

<%= %>

JSP输出表达式和Java的out输出流一样,可以帮助我们输出变量值或者方法返回值等。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%=4+5 %>
</body>
</html>

上面的代码会在浏览器中输出9,这和我们使用<%out.println(4+5);%>得到的结果是一样的。



二、JSP的三个编译指令

1、page指令

page指令通常位于JSP页面的顶端,一个JSP页面可以使用多条page指令,例如我们之前的例子中最上端都会有一行page指令来设置一些属性:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>

page指令的各属性具体含义如下:

language:声明当前JSP页面使用的脚本语言的种类,因为页面是JSP页面,所以这个属性默认值为java,通常无需修改。

extends:指定JSP页面编译所产生的Java类所继承的父类,或者实现的接口。

import:用来导入包,JSP会默认导入一些包,这些包不需要我们去导入,具体有java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*.。

session:设定这个页面是否需要使用HTTP Session。

buffer:制定输出缓冲区的大小。输出缓冲区的JSP内部对象:out用于JSP页面对客户浏览器的输出,默认值为8KB,可以设置none,也可以设置其他的数值,单位为KB。

autoFlush:当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true时为正常输出,设置为false时,buffer溢出会产生一个异常。

info:设置该JSP程序的信息,也可以看作其说明,可以通过Servlet.getServletInfo()方法获取该值。

errorPage:指定错误处理页面。如果本页面产生了异常或者错误就会跳转到这个错误处理页面。

isErrorPage:设置本JSP页面是否是错误处理页面。

contentType:用于设定网页的文件格式和编码字符集,即MIME类型和页面字符集类型,默认的MIME类型是text/html;默认的字符集类型为ISO-8859-1。

pageEncoding:指定生成网页的编码字符集。


2、include指令

<%@include file="   "%>

include指令可以将一个外部文件嵌入到当前的JSP文件中,这是一种静态的嵌入,也就是直接把外部的JSP文件的内容合并到当前的JSP页面中。动态嵌入则只是在当前的页面调用外部的JSP文件,而不是把它直接写入到当前文件中。

例如我们在a.jsp中includeb.jsp:

a.jsp代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%@include file="b.jsp" %>
</body>
</html>

b.jsp代码

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>

当我们在浏览器中浏览a.jsp的时候,显示的将会是"Hello World"。如果我们查看a.jsp生成的Servlet文件,就会发现在它所对应的文件中b.jsp的内容也被编译在了这个里面。


3、taglib指令

这是一个用于定义和访问自定义标签的指令,具体格式如下

<%@ 编译指令名  属性名=“属性值”……%>



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值