JSP基本语法

JSP指令

JSP指令的语法格式:

<%@指令名  属性1=“值1”  属性2=“值2”%>

注意:<%@ 和%>是完整的标记,不能添加空格,其中,指令名在JSP中包括page,include和taglib三条指令,不同的指令有不同的属性,在一条指令中,不同属性用空格或逗号分开。

1.page指令:

page指令用于设置页面的各种属性,如导入包,指明输出的类型,一般位于JSP页面的开头部分,一个JSP页面可包含多条page指令。

属性名说明
language设定JSP页面使用的脚本语言,默认为Java,目前只可使用Java语言
import指定导入的Java包,如果有多个类时,中间用逗号隔开
contentType指定类型和JSP页面的编码方式
pageEncoding指定JSP页面的编码方式

注意:

  • pageEncoding默认值为ISO-8859-1,其只支持英文字符,不支持中文。
  • GBK,GB2312,UTF-8都支持中文。
  • 修改eclipse中的jsp文件的字符编码,【window】->【preferences】->【Web】->【JSP File】->修改encoding的值为UTF-8即可。

2.include指令:(静态插入一个文件)

include用于在当前JSP中包含其他文件,被包含的文件可以是JSP,HTML或文本文件,之后两者会融合到一起。格式如下:

<%@ include   File="文件的相对路径"%>

特别注意:

  • file属性的值必须为相对路径,否则出现错误。
  • 插入的文件的字符编码应与当前文件的字符编码保持一致。

3.taglib指令:

taglib用于指定JSP页面所使用的标签库。格式如下:

<%@ taglib url="导入的标签库" prefix="标签的前缀"%>

JSP 脚本程序

1.JSP脚本程序是在JSP页面中嵌入标签<%%>之间的Java代码。

2.脚本程序中定义的变量的作用范围是当前页面,生存时间是页面的一次打开和关闭。

3.在JSP页面中可以有多组<%%>标签,在上一组<%%>标签中定义的变量常量在下一组<%%>标签中是有效的。


JSP表达式

JSP实现输出的标签<%=%>,其格式如下:

<%=  变量或返回值的方法或Java表达式%>
<%
	out.print();
%>

特别注意:

  • ”<% “与”=“之间不要有空格。

JSP 声明标识

在声明标识中,可以定义变量,常量,还可以定义函数,其格式如下:

<%!   %>

注意:

  • 在声明标识中定义的变量的作用范围是当前页面,生存时间是服务器的运行时间。

  • 在脚本程序中定义的变量范围是当前页面,生存时间是页面的一次打开与关闭。

  • 在脚本程序中只能进行函数的调用,不能进行函数的定义。

例子:

<%@ page language='java' pageEncoding='gbk'%>
<html>
<head>
</head>
<%! /*声明标识*/
int num=0;   //作用范围是整个服务器
void count()
{
num++;
}
%>
<%--函数调用--%>
<% count();%>
您是该网页的第<%=num %>个访问者
</body>
</html>

JSP注释

  • <%–内容–%>

  • 脚本中使用注释:<% //单行注释 /* */多行注释 %>

脚本就是嵌入在<% %>之间的代码,并且脚本中使用的语言是Java,所以在脚本中注释和Java类中注释方法一样。


JSP标准动作

1.jsp:include动作

此标签包含一个静态的或者动态的文件,语法如下:

<jsp:include page='相对路径' flush='true'/></jsp:include>

注意:

  • <jsp:include >元素请求代码时可以带参数,而<%@ include %>就不可以带参数。

  • <jsp:include >中的path属性中可以使用JSP表达式,而<%@ include %>中的file属性不能使用JSP表达式。

  • 从执行速度的角度来讲,<%@ include %>比<jsp:include >请求速度快,因为<%@ include %>仅处理一个请求,而<jsp:include >处理两个请求。

2.jsp:param动作

此标签能够传递一个或者多个参数给动态文件,也可以在一个页面中使用多个<jsp: param>来传递多个参数给动态文件。语法如下:

<jsp:param name='传递的名字  value='传递的值'/>

例如:

//first.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>
欢迎来到
<jsp:include page='show.jsp'>
	<jsp:param value="jiben1801" name="class"/>
</jsp:include>
</body>
</html>
//show.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>
<% 
	String str=request.getParameter("class");
%>
<p><%=str %>JSP程序设计</p>
</body>
</html>

运行结果如下:

在这里插入图片描述

3,jsp: forward动作

此动作把请求转到另外的页面。其格式如下:

<jsp:forward page='JSP文件'></jsp:forward>

例如:

//first.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>
<p>欢迎来到</p>

<jsp:forward page='show.jsp'>
	<jsp:param value="1" name="class"/>
</jsp:forward>
<p>哈哈哈哈</p>

</body>
</html>
//show.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>

<% 
	String str=request.getParameter("class");
%>
<p><%=str %>JSP程序设计</p>
<p>嘿嘿嘿</p>

</body>
</html>

运行结果如下:

在这里插入图片描述

特别注意:

  • 在上述的first.jsp文件中,有两个

    标签,在 show.jsp中也有两个

    标签,而访问此JSP时,虽然地址栏上是first,但是结果却是show.jsp的内容,这就是动作<jsp: forward>的作用。


JavaBean

JavaBean实际上是一个Java类,但它有独有的特点。

特性:

  • 是公共的类。
  • 构造函数没有输入参数。
  • 属性必须声明为private,方法必须声明为public。
  • 用一组set 方法设置内部属性。
  • 用一组get 方法获取内部属性。
  • 是一个没有主方法的类。
  • 一般的Java类默认继承自Object类,而JavaBean不需要这种继承。
  • 实现java.io.Serializable接口。
  • JavaBean可以在任何Java程序编写环境下完成编写,再通过编译成为一个类(.class文件),该类可以被JSP程序进行调用。

例如:

package Student;

public class Student {
	//name,number,height,weight
	//属性必须声明为private,方法必须声明为public
	private String name;
	private Long number;
	private Double height;
	private Double weight;
	  //构造方法,getXxx-获取成员变量值方法(无参有返)
			//setXxx-改变成员变量值的方法(有参无返)
	public void  setName(String name) {
		this.name=name;     //.全局变量等于局部变量
	}
	public String getName() {
		return name;
	}
	
	public void setNumber(Long number) {
		this.number=number;
	}
	public Long getNumber() {
		return number;
	}
	
	public void setHeight(double height) {
		this.height=height;
	}
	public double getHeight() {
		return height;
	}
	
	public void setWeight(double weight) {
		this.weight=weight;
	}
	public double getWeight() {
		return weight;
	}
	
}

测试类test

package Student;

public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student a=new Student();  //创建对象
		
		a.setName("张三");//对象调用方法
		a.setNumber((long) 1811011001);
		a.setHeight(176.0);
		a.setWeight(102);
	 
		System.out.println(a.getName());
		System.out.println(a.getNumber());
		System.out.println(a.getHeight());
		System.out.println(a.getWeight());
	}

}

运行结果:

在这里插入图片描述


4.jsp:useBean标准动作

此动作用来装载一个将在JSP页面中使用的JavaBean,其语法格式如下:

<jsp:useBean id='name' class='className' />

id:指定JavaBean实例的变量名,通过id 可以访问这个实例。

class:指定JavaBean的类名(包+类名)。

5.jsp:setProperty标准动作

其语法格式如下:

<jsp:setProperty name='对象名' property='属性名' value='值'/>

name:JavaBean对象名,与useBean标准动作中的id相对应。

property:表示要设置JavaBean中的哪个属性。如果property的值是"*",则表示所以名字和Bean属性匹配的请求参数都将给相应的属性setter方法。

value:value属性是可选的,该属性用来指定JavaBean属性的值。

6.jsp:getProperty标准动作

其语法格式:

<jsp:getProperty name='' property=''/>

name:指定JavaBean对象名,与useBean标准动作中的id 相对应。

property:指定JavaBean中需要访问的属性名。

使用上述的JavaBean,另外创建一个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>
	<jsp:useBean id="a" class="Student.Student"></jsp:useBean>
	<jsp:setProperty name="a" property="*"></jsp:setProperty>
<form action="#" method="get" name="StuInfo">
	姓名:<input type="text" name="name"/><br/>
	学号:<input type="text" name="number"/><br/>
	身高:<input type="text" name="height"/><br/>
	体重:<input type="text" name="weight"/>
	<input type="submit"/>
</form>
	姓名:<jsp:getProperty name="a" property="name"></jsp:getProperty><br/>
	学号:<jsp:getProperty name="a" property="number"></jsp:getProperty><br/>
	身高:<jsp:getProperty name="a" property="height"></jsp:getProperty><br/>
	体重:<jsp:getProperty name="a" property="weight"></jsp:getProperty>
</body>
</html>

运行结果:

在这里插入图片描述

注意:

在JSP中运行后得到的是个表单,表单填完提交后可以在下面自动填充提交的内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值