JSP简介

JSP(动态网页技术)

JSP是一种建立在SERVLET规范提供的功能之上的动态网页技术.

我们可以将Servlet看做是含有HTMLJAVA代码,可以将JSP看做是含有JAVA代码的HTML.这种是对这两项技术的通常看法.

 

但实际上它们是一回事,JSP页面最终要转换成servlet,并进行编译.

 

JSP文件在用户第一次请求时,会被编译成SERVLET然后有这个SERVLET处理用户请求.

 

                                                    JSP容器

 

                 请求JSP页面        JSP文件 2转换

 

 

客户端                        SERVLET文件(.JAVA)3编译

 

 

                                                       Class文件(.class) 4执行

 

 

   5返回响应             SERVLET实例

 

 

JSP中元素有3种类型:指令元素,脚本元素动作元素.

一、指令元素:主要用于提供JSP页面相关信息.其包含3种指令:page,includetaglib

1.page指令

语法:<%@page attr1="value1"attr2="value2"...%>

Language="脚本语言"默认值是java.  

       Import="importist"

用于制定在脚本环境中可以使用的java.

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

也可以设置多个import属性

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

<%@page import="java.io.*%">:page指令中只有import属性可以重复设置.

     Session="true|false"

  用于指定在JSP中是否可以使用session对象,默认为true.

     contentType="ctinfo"

用于响应jsp页面字符编码

     pageEncoding="peinfo"

   用于指定JSP页面字符编码,如果有此属性则JSP字符编码使用该属性指定的字符集,没有则使用contentType指定的字符集.如果都没有则字符集使用:"iso-8859-1".

Errorpage="error_url"

用于指定当JSP页面发生异常时.将转错误页面.

       isErrorPage="true|false"

用于指定当前JSP是否是个JSP页面的错误处理页面,默认为false.

isElIgnored="true|flase"

True容器忽略表达式:false使用el.  

2,include指令

用于JSP页面中静态包含一个文件,该文件常用的为JSP页面,HTML页面.

:<@include file="xxx.jsp"%>

      <%@page language="java"pageREncoding="gb2312"%>

<html>

<><>欢迎</title></head>

<body>

您现在的时间是:<%include file="data.jsp"%>

<./body>

</html>

 

3,taglib指令

Taglib指令允许页面使用定制的标签.

<%@taglib uri="taglibraryurl" ptrfix="tagprefix"%>

Url

该属性惟一地识标和前缀相关标签库描述符,可以使绝对或者相对的.用于定位标签库位置.

      Prefix

定义一个以prefix:tagname形式的字符前缀,用于区分多个自定义标签.JSP2.0空前缀是非法的.

二、脚本元素包括3个部分:声明,脚本段表达式.

3种脚本元素都是基于<%>的语法,如下:

<%!  %>

<%   %>

<%=   %>

1 声明

用于声明在JSP页面中使用的变量和方法,声明必须是完整的声明语句,遵循JAVA语法标准.声明不会在当前输出流中产生任何输出.

语法:<%!  %>

<%! Int i; %>

<%! int i=0;%>

<%! Public String f(int i){if(i<3) return I}%>

      2脚本段

是请求处理期间要执行的java代码段.可产生输出,将其发送到客户端.

语法:<%  %>

:

<% String s1="good morning";

String s2 ="good afternoon";

If(s1.equals(s2){

Out.write(s1);

}

Else{

Out.write(s2);

}

%>

       3表达式

java语言完整的表达式,在请求处理计算这些表达式的结果并且将被转换为字符串,插入到当前输出流中.

语法:<%= %>

<html>

<body>

现在时间是<%=(new Date()).toLocalsString()%>

</body>

</html>  

三、动作元素

动作元素为请求处理阶段提供信息.动作元素遵循XML元素语法,JSP标签区分大小写的.

常用JSP2.0标准的动作元素:

1.<jsp:useBean>,<jsp:serProperty><jsp:getProperty>

用于访问javabean后面详细讲解

2.<jsp:param>

用来以名字与值一一对应的形式为其他标签提供附加信息

语法:<jsp:param name="name"value="value"/>

Name 参数名字.

Value 参数值.

3.<jsp:include>

用于包含当前页面静态和动态的资源.

语法:<jsp:include page="..."/>

<jsp:include page="...."><jsp:param.../>可以包含多个

</jsp:include>

Page属性:指定被包含的资源的相对路径.

 

<%@include%><jsp:include>的区别

<%@include%>编译指令是JSP程序的转换时期(JSP程序被翻译为JAVA程序的时期)就先将file属性所指定的程序内容嵌入,让它和主JSP程序结合为一个整体,然后才使用JAVA编译器编译转换所得的JAVA程序文件,并将其载入JSP引擎中,file属性所指定的文件不会被单独翻译和编译.

<jsp:include>操作指令Page属性所指定的文件在主JSP程序的转换时期是不会被编译的,它只在客户端请求时期如果被执行到才会被动态地编译载入,Page属性所指定的JSP程序会被单独转换编译为Servlet.

 

JSP隐含对象

所有的隐含对象只能在脚本段和表达式中调用共有9个隐含对象:request, response , pageContext , session , application , out , config , page, execption

你可能感兴趣的:(java,jsp,servlet,脚本,import,include)