JSP基本语法与定义
来源:互联网 发布:易迅数据 编辑:程序博客网 时间:2024/06/07 18:23
先来看一段简单的小程序:
程序:1.jsp
<html>
<head>
<title>example</title>
</head>
1 <%@ page language=”java” %>
2 <%@ page contentType=”text/html,charset=”GB2312””>
3 <body>
4 <% !int value=0;%>
5 <%
6 for (int i=1;i<=100;i++)
7 {
8 value=value+i;
9 }
10 %>
11 <p>从1加到100的结果为:<%=value%></p>
12 <p>今天是:<%=new java.util.Date()%></p>
</body>
</html>
JSP元素是嵌入在普通的HTML页面里面的,JSP标记都是以”<%”或者”<jsp:”开头,相对应的以”%>”或者”/>”结束
在这段程序中
语句1 这条指令定义了本程序所使用的是JAVA语言。当然也可以不写,JSP页面自动认
为是JAVA语言
语句4 定义了一个整型变量,(注意每个变量声明后的语句要加上分号.)在JSP中,用<% !做起始标记,用%>做结束标记,用来声明JSP程序中所要用到的变量和方法,语句间用分号隔开
语句5到语句10是一个程序段元素,程序段元素封装了JAVA程序代码,用<%做起始标记,用%>做结束标记
语句11 是一个JSP表达式,JSP表达式是用来在JSP页面中输出作为运行结果的字符串或者数值变量。在JSP中用<% =做起始标记,用%>做结束标记。本句是用来输出1加到100的值
语句12 同样是一个JSP表达式 ,通过调用JAVA类库中的DATE()函数,并且转换为字符串在页面输出
1.2脚本元素语法
JSP的脚本元素有四种:注释、声明、表达式和程序段。这四种脚本元素都是用一对<%和%>符号所封装构成的,用来包含JSP中JAVA程序
1.2.1 注释
JSP程序中可以包含三种不同类型的注释,一种是JSP标准注释。一种是JAVA语言的注释,第三种是沿用HTML的注释方法,我们在这里只介绍JSP的注释方法
JSP注释通常用来描述JSP文档,是不会被JSP语句所执行
其语法形式是<%--comment--%>其中comment是注释的内容
1.2.2 声明
在JSP中可以声明合法的变量和方法。
JSP中的声明用来声明JSP程序中要用到的一个或多个变量(普通变量和类变量)和方法,
<% !做起始标记,用%>做结束标记。可以一次性声明多个变量和方法,只要以;结尾就行了。
JSP声明的语法形式为<%!declaration;[declaration;]…….%>
例如:<%!int i=0;%>
<%!int x,y,z.;%>
<%!String str1=”hello”;int value; char ch=’v’;%>
<%!Circle a=new Circle(5,0);%>
对于在<%!..%>这样的JSP声明中定义的变量将作为全局变量,可以在JSP程序中的其他地方使用;而在<%...%>这样的JSP程序段中定义的变量则是局部变量
1.2.3 表达式
JSP表达式是用来在JSP页面中输出作为运行结果的字符串或者数值变量。在JSP中用<% =做起始标记,用%>做结束标记。JSP表达式可以看作是一种简单的输出形式。在运行JSP事后,JSP表达式被自动转化为字符串输出,因此可以在一行文本中插入JSP表达式。
JSP表达式的语法格式:<%=expression%>
例如:<%=(new java.util.Date()).toString())%>
1.2.4 程序段
程序段就是一段程序代码。JSP程序段元素封装了JSP页面的处理逻辑---JAVA代码
用<%做起始标记,用%>做结束标记,在程序段中,我们可以:
1. 声明所要用到的变量,类或是方法(局部)
2. 编写JAVA语句
3. 编写JSP表达式,结尾要用分号。
4. 使用任何内置对象和任何用<jsp:useBean>声明过的对象
JSP的语法格式为<%JAVA SCRIPTLET%>
例如<%int i=24; the number is<%=i%>>
我们来看一个例子:
2.jsp
<html>
<head>
<title>example2<title>
<body>
<%
Double num=0;
num=20;
if(num>0)
{ %>
<h2>num的值大于10</h2>
<%}
Else out.println(“num的值小于10”);
%>
</body>
</html>
1.3动作类语法
l <jsp:include>在页面被请求时包含进一个文件
l <jsp:forward>.将当前页面请求导向至一个新的页面
1.3.1 <jsp:include>
动作<jsp:include>引入一个静态或动态的页面到一个JSP程序文件中,这个指令允许在请求时刻在当前的JSP文件中包括静态或动态的资源,这个资源在page属性中用URL的形式指定。
动作<jsp:include>语法格式为:
1.<.jsp:include page=”{relativeURL|<%=expression%> flush=”true”/}
( page=”{relativeURL|<%=expression%>”属性page是用来设置所要包含的文件的绝对路径和相对路径的表达式。flush=”true” 这里必须使用flush=”true”,若动作<jsp:include>的属性中没有显式地设置属性flush的值,系统默认使用flush的缺省值,即false)
例如:
<jsp:include page=”aaa/login.jsp”/>.
<jsp:inclue page=”main.jsp”/>
<jsp:inclue page=”aaa.html” flush=”true”/>
2<jsp:param name=”parameterName” value=”{parameterValue|<%%=expression>}”>
(<jsp:param>子句能传递一个或多个参数给动态文件,可以在JSP页面中使用多个<jsp:param传递多个参数>)
例如:
<jsp:param name=”user” value=”baby”/>
1.3.2<jsp:forward>
动作<jsp:forward>是用来实现这种页面重定向功能的动作,它可以重定向到一个HTML文件,一个JSP文件,甚至是一个程序段
动作<jsp:forward>的语法格式为:
1.<jsp:forward page=”{relativeURL|<%=expression%>}”/>
(page=”{relativeURL|<%=expression%>}” 这里属性page的值是一个表达式或字符串,它用于说明将要定向的文件或URL.这个文件可以是JSP文件,HTML文件或是一个程序段。)
例如
<jsp:forward page=”ddd/login.jsp”>
2. <jsp:forward name=”parameterName” value=”{parameterValue|<%%=expression>}”>
(向目标文件发送一个或多个参数。如果想传递多个参数,可以在一个JSP文件中使用多个<jsp:param>,name指定参数,value指定参数值.)
例如:
<jsp:param name=”user” value=”baby”/>
1.4内置对象
JSP中共有9种基本的内置对象:
l Out:用来输出各种类型的数据流
l Request:来自客户端的请求,包含来自GET/POST请求的参数
l Response:网页传回给客户端的响应
l Session:为发送请求的客户建立会话,并只对HTTP请求有效
l Application:JSP引擎正在执行的内容
l Pagecontext:管理网页的属性
l Config:表示servlet的配置
l Page:JSP网页本身
l Exception:运行时候的异常
1.4.1out对象
JSP中的内置对象out表示为客户打开的输出流,可以使用它向客户发送各种类型的数据流,作用域是本页面。
下面介绍out的一些常用方法:
l Out.print()输出带HTML格式的数据内容,不换行
l Out.println()输出带HTML格式的数据内容,换行
l Out.newLine()输出一个换行符号
l Out.flush()输出缓冲区的内容
l Out.close()关闭输出流
l Out.clearBuffer()清除缓冲区的内容,把数据写到客户端去
l Out.clear()清除缓冲区的内容,但不把数据写到客户端去
1.4.2request对象
Request对象代表了客户端的请求信息,主要用于接受客户端通过HTTP协议传送到服务器端的数据,其作用域就是一次request请求
Request对象的一些常用方法:
l request.getAttribute(String str)返回str指定的属性值,如果不存在指定的属性值,那么返回空值(NULL)
l request.getAttributeNames()返回request对象所有属性的名字,结果集是一个枚举类型的值的实例
l request.getMethod()获得客户端向服务器传送数据的方法,有GET、POST、或者PUT等类型
l request.getParameter(String str)获得客户端传送给服务器的参数值,参数名又str指定
l request.getParameters()获得客户端传送给服务器的所有的参数名字,结果是一个枚举类的实例
l request.getParameterValues(String str)获得指定参数的所有值
1.4.3response对象
response对象用于向客户端发送数据,并将响应返回给客户端,其作用域是它所在的页面
response对象的一些重要方法
l response.addCookie(Cookie,cookie)添加一个Cookie对象,用来保存客户端信息,用request的getCookie()方法可以获得这个对象
l response.setHeader(String name,String value)设置指定名字的HTTP文件头的值,如果该值存在,那么它就会被新的值覆盖(最常用的例子就是常常对一个网页进行定时刷新,以便更新要显示的信息
l response.sendRedirect(String URL)从当前所在的页面重定向到另外的URL,这里的URL可以是相对路径或者绝对路径
1.4.4session对象
session对象用来为发送请求的每一个会话,作用域是一次会话
session对象对于每一个会话都会创建一个实例,也就是说,两个不同的客户端会在服务器端产生两个不同的session实例。每个客户端与服务器的整个交互过程被称为一个会话,一个会话可以由很多次的 请求/响应所组成噶,在一个会话中,session对象能够一直存在,直到会话结束。例如当用户从浏览器登陆某一网站时,服务器会为他创建一个唯一的session对象来记录该用户的所有信息,一旦该用户退出网站,那该session会被注销
session对象的一些方法?
l Session.getAttribute(String name)获得指定名字的变量,如果该变量不存在,将会返回NULL
l Session.getAttributeName()返回session对象所存储的每一个变量的名字,其结果集是一个枚举类的实例
l Session.getCreationTime()返回该session对象创建的时间,以毫秒为单位,从1970年1月1日起。
l Session.getID()每生成一个session对象,服务器就会给该session对象一个编号,这个编号不会重复,此方法用来返回当前session的编号
l Session.getLastAccessedtime()返回当前session对象最后一次被操作执行的时间,返回自1970年1月1日起至今的毫秒数量
l Session.getMaxInactiveInterval()获取session对象的生存时间
l Session.removeAttribute(String name)删除指定的变量(包括变量名和变量值)
l Session.setAttribute(String name,java.lang.Object value)设定指定名字的变量的值,并且把它存储在session对象中.
2 参数传递
在这一节里我们着重谈论以下表单之间的参数传递
表单之间传递参数可以用GET方法或者POST方法。在使用GET方法提交数据时候,所有表单中被提交的参数都将附加在页面的URL后面,而且值可见,这种方法尤其是对于密码传送来说,是极不安全的,所以我们只介绍POST的提交方法,其原理是:访问者在网页中用POST的方法提交表单后,表单中的数据会传送给JSP引擎,病保存在内置对象request中。JSP引擎处理完request对象后,会将处理后的数据结果返回给JSP页面。JSP服务器就将这个处理好了的JSP页面发送给客户端,所以我们就能从客户端的浏览器中看到提交表单后的结果了。现在来看一个简单的例子
Post.html
<html>
<head>
<body>
<center>
<form action=”request.jsp” method=post name=frm>
<p>姓名:<input type=text name=username></p>
<p>密码:<input type=password name=psw></p>
<input type=”submit” value=”登陆” name=sub>
<input type=”reset” value=”取消” name=reset>
</form>
</center>
</body>
</html>
request.jsp
这里我们将用request对象的getParameter方法获取表单中的信息
<%@page contentType=”text/html;charset=”GB2312”%>
<html>
<head>
<body>
<%=request.getParameter(“username”)%>
你的密码是:<%=request.getParameter(“psw”)%>
</body>
</html>
由于表单中元素众多,我们将在下面的章节了解各个元素间是怎样进行参数传递的
2.1文本区域传递信息
这节将介绍文本区textarea传递信息的方法。
Textarea.html
<html>
<head>
<body>
<center>
<form action=”textarea.jsp” method=”post name=frm>
<textarea rows=7 cols=40 name=text></textarea><br>
<input type=”submit” value=”发送=sub>
<input type=”reset” value=”取消” name=reset>
</form>
</center>
</body>
</html>
textarea.jsp
<%@page contentType=”text/html;charset=”GB2312”%>
<html>
<head>
<body>
<center>
<font size=4 color=red>收到</font><br>
</center><br>
<%=request.getParameter(“text”)%>
</body>
</html>
Textarea传递数据起作用的语句就是<%=request.getParameter(“text”)%>
2.2单选按钮和复选框
Post.html
<html>
<head>
<body>
<center>
<form action=”request.jsp” method=post name=frm>
<p>姓名:<input type=text name=username></p>
<p>
<input type=radio name=dan value=”boy”>男
<input type=radio name=dan value=”girl”>女
</p>
<p>
<input type=checkbox name=fu value=”周星星”>周星星
<input type=checkbox name=fu value=”大星星”>大星星
<input type=checkbox name=fu value=”黑星星”>黑星星
<input type=checkbox name=fu value=”小星星”>小星星
</p>
<input type=”submit” value=”提交name=sub>
<input type=”reset” value=”取消” name=reset>
</form>
</center>
</body>
</html>
Request.jsp
<%@page contentType=”text/html;charset=”GB2312” import=”java.lang.reflect.*”>
<html>
<head>
<body>
<center>
<font size=4 color=red>收到</font><br>
</center><br>
<%=request.getParameter(“username”)%>
<%=request.getParameter(“dan”)%>
你选择了:
<%
String fu1[]=request.getParameterValues(“fu”);
Int fu2=Array.getlenth(fu1);
For(int i=0;i<fu2;i++)
{
Out.println(fu1);
}
%>
</body>
</html>
从程序中我们可以看见,在判断复选框时候我们将用到request.getParameterValues这个方法,获得全部参数,在下面获取多选列表框中我们还会用到。
2.3列表框
列表框包括单选列表框和多选列表框
Post.html
<html>
<head>
<body>
<center>
<form action=”request.jsp” method=post name=frm><center>
<p>你想去哪里旅行:<select name=”list” size=1>
<option value=”北京”>北京</option>
<option value=”上海”>上海</option>
<option value=”天津”>天津</option>
<option value=”重庆”>重庆</option>
</select></center>
<p>你想使用什么交通工具:<select name=”multilist” size=4><center>
<option value=”汽车”>汽车</option>
<option value=”火车”>火车</option>
<option value=”轮船”>轮船</option>
<option value=”飞机”>飞机</option></select></center>
<input type=”submit” value=”发送name=sub>
<input type=”reset” value=”取消” name=reset>
</form>
</center>
</body>
</html>
Request.jsp
<%@page contentType=”text/html;charset=”GB2312” import=”java.lang.reflect.*”>
<html>
<head>
<body>
<center>
<font size=4 color=red>你将去<%=request.getParameter(“list”)%>旅行
</center><br>
你选择了:
<%
String multilist1[]=request.getParameterValues(“multilist”);
Int multilist2=Array.getlenth(multilist1);
For(inti=0;i< multilist2;i++)
{
Out.println(multilist1);
%>
<br>
<%
}
%>
</body>
</html>
最后将给大家一个综合的表格实例
3 jsp数据类型转换
在程序执行过程中。有时必须将某一类型的数据类型转换成另一类型的数据类型,如函数返回值的运算以及使用者输入数据的处理
3.1基本数据类型转换:
基本数据类型转换方式很简单,只需要在数据前加上要转换的数据类型
例子:
<%
Int a=3,b,c;
Double d=9.33,e;
B=(int)d;
C=(int)4.444
E=(double)(a);
Out.print(“b=”+b+”<br>”);
Out.print(“c=”+c+”<br>”);
Out.print(“d=”+d+”<br>”);
%>
输出 b=9
输出 c=4
输出 e=3.0
3.2字符串转换
字符串与基本数据类型间的转换必须使用JSP中的对象函数,对象函数有两种
1. 字符串转换成基本数据类型
2. 基本数据类型转换成字符串
Boolean.getBoolean(字符串) 字符串转换成布尔值
Byte.parseByte(字符串) 字符串转换成位整数
Short.parseShort(字符串) 字符串转换成短整型
Integer.parseInt(字符串) 字符串转换成整型
Long.garseLont(字符串) 字符串转换成长整型
Float.parseFloat(字符串) 字符串转换成浮点型
Double.parseDouble(字符串) 字符串转换成双精度浮点型
String.valueOF(数据) 数据转换成字符串
3.3数组类型声明
例子:
Int abc[]=new int[4];声明一个5个元素的整型数组
Float def[]=new float[3]; 声明一个4个元素的浮点数组
Char c[]=new char[2]; 声明一个5个元素的字符型数组
数组声明时候必须用关键词new来声明元素的个数,如Int abc[]=new int[4]表示元素abc[0],abc[1],abc[2],abc[3],abc[4]
4类与对象
汽车,飞机,轮船属于交通工具类,都是交通工具的对象,在汽车里面又可以分为奔驰,宝马,福特等,所以我们要建立同类而不同属性的对象,只需利用类中的方法来改变对象的属性。
4.1建立类
类中有很多变量和函数的集合
Class类名
{
定义变量;
定义方法;
}
实际上,我们可以把类中定义的变量看成是从类中衍生出来对象的属性,而函数可以看成是对象所用的方法,例如:
Class mobile
{
String type;
String price;
String mobile_type(String mobile_type)
{
This.type= mobile_type;
Return(this.type);
}
String mobile_price(String mobile_price)
{
This.price=mobile_price;
Return(this.price);
}
}
4.2对象
定义了类之后,便可以利用类来生成对象
类对象=new 类();
如:
<%
Class mobile
{
Mobile aaa=new mobile();
Out.println(“mobile_type:”);
Out.println(aaa.mobile_type(“Nokia”));
Out.println(“mobile_price:”);
Out.println(aaa.mobile_price(“6666”));
}
%>
输出结果:
Mobile_type:nokia
Mobile_price:6666
String mobile_type(String mobile_type)
{
This.type= mobile_type;
Return(this.type);
}
This字符串代表对象本身,This.type= mobile_type;就是将对象的type属性设定为mobile_type, aaa.mobile_type(“Nokia”)就是调用mobile_type的方法传入参数Nokia,并将Nokia设定为aaa对象的type属性。
附:关键字this
关键字this有以下几个意思:
1. 我们用this表示一个对象。
2. this表示的是当前对象。
3. 当前对象是指正在操作的对象
Class c1
{
Int a1=1;
Int a2=2;
Void ss()
{
Int a1=10;
Int a2=20;
A1=this.a1;
System.out.println(a1);
System.out.println(a2);
}
}
Public class abc1
{
Public static void main(String args[]);
{
C1 aa=new c1();
aa.ss();
}
输出结果
A1 1
A2 20
4.3继承和构造函数
我们建立了一个类。而又有其他类来继承这个类时,那就产生继承关系,被继承的类叫父类,继承父类的类叫子类,子类可以使用父类的所有变量和方法,并可以定义本身的属性
1. 一个类可以通过关键字extends继承另外一个类
2. 继承的类统称为自类,被继承的类统称为父类
3. 类的方法和变量统称为类的成员
4. 子类具有父类所有的非私有成员
5. 子类在继承父类成员的同时还可以创建自己的新成员
构造函数则是定义在类中的一个函数
例子:
<%
Class mobile
{
String type;
String price;
Sring mobile_type(String mobile_type)
{
This.type=mobile_type;
Return(this.type);
}
}
Class phone extends mobile
{
String user;
String mobile_user(String mobile_user)
{
This.user=mobile_user;
Return(this.user);
}
}
%>
<%
Phone aaa=new phone();
Out.println(“mobile_type:”);
Out.println(aaa.mobile_type(“Nokia”));
Out.println(“mobile_price:”);
Out.println(aaa.mobile_price(“6666”));
Out.printl(“mobile_user:”);
Out.print(aaa.mobile_user(“henry”));
%>
输出结果:
Mobile_type:nokia
Mobile_price:6666
Mobile_user:henry
(注意:用关键字final修饰的类称为final类,所有的final类都没有子类,不能被继承。用关键字abstract修饰的类称为abstract类。abstract类不能创建对象,但是可以被继承,击沉它的子类可以创建对象)
附:关键字super
如果子类定义的某个变量的名称、类型和父类中的变量完全相同,则父亲的该变量不能被继承,即该变量被完全隐藏起来。如果子类定义的某个方法的名称、返回类型、参数和父类中的某个方法完全相同,则该父类方法不能被继承,即该方法被隐藏
通过关键字super,可以在子类中访问被隐藏的父类的变量或方法。
Class mobile
{
String type=”Nokia”;
String user_name=”pires”;
Long price=6666;
}
Class mobile1 extends mobile
{
String type;
String user_name;
Long price;
Void aaa()
{
Type=”nec”;
Price=”5555”;
User_name=”pires”;
//Type=super.type;
// Price=super.price;
System.out.println(“type:”+type);
System.out.println(“price:”+price);
System.out.println(“user_name:”+user_name);
}
}
Public class mobile2
{
Public static void main(String args[])
{
Mobile1 abc=new mobile2();
Abc.aaa();
}
}
隐藏父类中的相同变量,输出结果是
Type;NEC
Price:5555
User_name:pires
斜杠去掉以后:
Type;Nokia
Price:6666
User_name:pires
构造函数例子:
<%
Class mobile
{
String type;
String price;
Sring mobile_type(String mobile_type)
{
This.type=mobile_type;
Return(this.type);
}
Sring mobile_price(String mobile_price)
{
This. price =mobile_ price;
Return(this. price);
}
Mobile(0
{
This.type=” Nokia”;
This.price=”6666”;
}
}
Mobile aaa=new mobile();
Out.println(“mobile_type:”);
Out.println(aaa.mobile_type(“Nokia”));
Out.println(“mobile_price:”);
Out.println(aaa.mobile_price(“6666”));
}
%>
输出结果:
Mobile_type:nokia
Mobile_price:6666
(注意:构造函数函数是定义在类中而且和类是同样名称的方法,而且可以用传递参数的形式)
- JSP基本语法与定义
- jsp语法与jsp基本知识点
- JSP的基本语法与基本指令
- jsp基本语法与简单表单处理
- JSP的简介与基本语法
- JSP基本语法
- JSP 基本语法总结
- JSP 基本语法
- JSP基本语法
- jsp基本语法
- JSP基本语法
- JSP基本语法
- jsp基本语法介绍
- jsp的基本语法
- JSP基本语法
- JSP基本语法见解
- JSP基本语法
- Jsp基本语法
- 小脚印
- Java注释(Annotation)
- 面向接口编程详解(二)——编程实例
- 网站需求
- 类似igoogle div拖拽 demo
- JSP基本语法与定义
- c#调用ocx
- java界面开发中,如何防止窗口被耗时操作冻结?
- Flip and Shift -- ACM PKU 1063 解题报告
- test
- Windows线程函数概述
- Java反射机制
- 丢死人了,以后再也不用宾馆的TT了!
- asp网页里,sql常用操作语句!