JSP基础知识之JSP的构成元素

JSP注释

1).显示注释:<!--注释内容-->

2).隐式注释:<%--注释内容-->(在客户端的HTML源代码中看不到这些注释的内容)


JSP脚本

1、声明

<%! int i = 10; %>
<%! String UserName = “cannel_2020”;%>
声明多个
<%!  inti = 10;
   String UserName = “cannel_2020”;
         Ballb = new Ball();
 %>

注意:

1).在页面中想要使用某些变量,需要先声明变量。

2).声明必须以“;”结尾。

3).一个声明仅在一个页面中有效,对于新建的页面,需要重新声明变量

4).<%@page%>中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明

2、脚本程序

<%
         for(inti = 0; i < 10; i++){
%>
脚本程序
<%
         }
%>

·脚本程序不能用于定义方法;只有声明可以用来定义方法。

·在declareation中声明的变量是JSP页面实现类的实例变量。这些变量对于该页面中其他代码语言或者方法是可见的。

·在脚本程序中声明的变量,对于JSP页面实现类中的方法是局部的。它们只在定义它们的代码块中可见。

3、表达式

<%= UserName %> 显示UserName的值。不需要用分号结尾。

注意:在JSP中%与=、@符号之间不能有空格。



JSP指令

1、page指令:用于设定页面的属性。

<%@ page
         contentType=”text/html;
         charset=gb2312”
         language=”java”
         import=”java.sql.*”
         errorPage=””
%>

1)、Page指令的作用范围是整个JSP文件和该文件用include指令或<jsp:include>包含进来的任何静态文件,整个JSP文件盒这些静态文件一起叫做一个“平移单元”。用户可以在一个“平移单元”使用多个Page指令,但是每一个属性只能使用一次,除了import。不论将Page指令放到JSP文件或被包含的文件的任何一个位置,它的作用范围都是整个“平移单元”。然而,一个好的编程风格是常常将它放到文件的顶部。

2)、常用页面指令属性:

属性

描述

import

导入到页面的所有java包.

session

是否加入一个会话。有效值是true和false。默认值是true。

isThreadSafe

容器是否向该页面并发的传递请求。有效值是true和false。默认值是true。

info

提供页面的内容、的、名字等信息

errorPage

显示错误的Web页面的URL。如果你没有给出一个URL,容器会使用自己默认的URL。

isErrorPage

当前页面是否是一个错误页。默认是false.

contentType

定义页面内容的类型。默认值是text/html

pageEncoding

当前页面的字符集。默认值是ISO-8859-1(拉丁脚本)

language

声明脚本语言的种类,暂时只能用”java”。

extends

<%@ page extends=”package.classs”%>标明JSP编译时需要加入的Java class 的全名,但是要慎重地使用它,它会限制JSP的编译能力。

 

3)、注意:

·在些包在JSP编译时已经自动导入,不需要在页面import了:

java.lang.*

javax.servlet.*

javax. Servlet.jsp.*

javax. Servlet.http.*

·<%@ page session=”true/false”%设置是否需要HTTP session,session用来暂存信息,因为它的作用是一次会话时间,所以可以用session在页面间传值

·Page指令不适用于任何动态的包含文件。

2、include指令:该指令用于包含一个文本或代码的文件。

<%@ pagecontentType="text.html;charset=gb2312"%>
<html>
         <head><title>includetest</title></head>
         <body>
                   当前的时间是:<%@include file = "data.jsp" %>
         </body>
</html>

data.jsp文件如下:

<%=newjava.util.Date().toLocaleString()%>


JSP操作元素

1、<jsp:forward>:将客户端的请求转交给一个HTML文件、JSP文件或脚本段处理。

         注意:JSP引擎对主JSP页面<jsp:forward>下面的代码不再执行。如果JSP文件的输出被设置为缓冲输出(即使用默认的page指令值或直接设置缓冲去的buffer大小),则在请求被转交之前,缓冲区被清空。如果输出被设置为非缓冲输出(即用page指令设置buffer=none),而且输出区中已经有内容,则使用<jsp:forward>元素,将会导致非法例外。

2、<jsp:include>:在JSP文件中,包含一个静态或动态文件。

3、<jsp:useBean>:调用和创建一个指定名字和使用范围的Bean。如果这个Bean不存在,则创建该Bean。

属性

描述

id

在页面中访问的bean的名称,该名称必须是唯一的。

scope

bean的作用域。有效值:page、request、session或application。默认值是page。

class

bean的完整的类名。

beanname

bean的名称,传给java.beans.Beans类的instantiate()方法。通常我们使用的是class属性,而不是beanName.

tyoe

引用bean变量的类型。type可以是bean的类,或者是bean的任何父类,或者是这个bean或其父类实现的任何接口。

 

4、<jsp:setProperty>:设置Bean的一个或多个属性值。

属性

描述

name

与useBean操作定义的Bean的id属性值相同。

property

被赋值的属性名称。用property命名这个Bean的一个属性,它将调用这个属性的setXX()方法。当property=”*”,这样JSP将读取客户端浏览器发来的请求中的所有参数,然后bean中设置那么与请求(request)中的与参数同名的属性。

param

浏览器请求中的参数名,这个参数用于设置属性。允许JSP匹配各个变量和参数。

value

设置属性的值。

 

设置属性的值有3中方法:

1)、将用户请求中的所有值(这些值一般式客户表单中的元素的值,且作为参数存储在request对象中)和Bean中相匹配的属性赋值。此时,Bean中属性的名字必须和客户端表单中元素的名字一样。

<jsp:setProperty name=”beanInstanceName”property=”*”>

2)、用请求对象中一个特定的值和Bean中相匹配的属性赋值。当用表单中一个元素的值给Bean中一个属性赋值,而且元素名和属性名不一样时,则必须用param指定一个参数。

<jsp:setProperty name=” beanInstanceName”   property =”propertyName”[param=”parameterName”]/>

3)、用字符串的值或表达式的值直接设置为Bean的属性。

<jsp:setProperty name=” beanInstanceName”value=”{String | <%=expression%>}”

5、<jsp:getProperty>:取Bean属性的值,以便在结果页面中显示。·

6、<jsp:plugin>、<jsp:params>、<jsp:fallback>:元素用于JSP页面,它们将生产的HTML页面中包含applet或者JavaBean。使用这些元素而不用手工编写HTML代码,这让服务器可以利用JSP标签创建浏览器相关的HTML。

7、<jsp:attrubute>、<jsp:body>:用于标准操作和定制操作。

8、<jsp:invoke>、<jsp:doBody>:只在标签库中有效。

9、<jsp:param> :用来以“名-值”对的形式为其他标签提供附加信息。在JSP页面中可也是用request对象的getParamter()和getParamterValues()方法来访问这些参数。它和<jsp:include>、<jsp:forward>、<jsp:plugin>一起使用。


PS:虽然我深知熬夜不好,我最近总是1点左右才睡,呵,谁叫我们是程序员呢。但是又想想,身体是革命的本钱,身体垮了,还怎么奋斗呢。所以,现在还是赶快去睡吧。明天还有早课(7:40)呢。估计又会逃课了。全世界晚安!


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值