Jsp技术

Jsp技术

JSP的运行机制、JSP脚本元素、JSP指令元素、JSP动作元素、JSP九大内置对象

 

Jsp基本概念

 Jsp 指是java server pages 用于开发动态web,是基于java servlet web 开发技术,简单易学,跨平台。

Jsp通过在使用html编写的静态网页中添加一些专有标签及脚本程序就可以显示网页中动态内容的显示。

Jsp适用于所有平台,优于ASP,从一个平台移到另一个平台,jspJavabean 的代码并不需要重新编译,因为java的字节码适是与平台无关的

特点:能够在任何web或应用程序服务器上运行,将程序逻辑和页面显示相分离,采用标签简化页面开发,组件可重用。

 

Jsp的运行机制

过程:

jsp容器先将jsp文件转换成一个Java源文件(java servlet 源程序),在转换过程中,如果发现有jsp文件中存在任何的语法错误,则中断转换过程,并向服务器客户端返回出错误信息,

若转换成功,则jsp容器使用javac将生成的java源文件编译成相应的字节码文件*.class。该.class文件就是一个servletservlet容器会像处理其他的servlet一样来处理它。

servlet容器加载转换后的servlet类(.class文件),创建一个该servlet的实例,并执行servletjspInit()方法,jspInit()方法在servlet的整个生命周期中只会被执行一次。

由执行——jspService()方法来处理客户端的请求,对于每一个请求,jsp容器都会创建一个新的线程来处理他, 如果有多个客户端同时请求该jsp文件,则jsp容器也会创建多个线程,使得每一个客户端请求都对应一个进程,

 

Jsp基本语法

 

JSP注释,JSP指令,JSP脚本元素,JSP动作元素)

 

JSP注释

HTML注释      <!-- xxxxx -->

        JSP注释        <%-- xxxxx --%>

 

JSP指令

 JSP指令用来向jsp引擎提供编译信息

page指令,include指令,taglib指令)

 

Page指令,是页面指令

语法格式:

<%@ page 属性1 = 属性值1” 属性 2 = “属性值2” .....%>

例子:

<%@ page contentType = “text/html: charset = GB2312” import = “java.util.*” %>

Page指令,有13个属性

Language 声明所使用的脚本语言的种类,目前只有java一种

Extends 指定jsp页面产生的servlet 继承父类

Import 指定所导入的包

Session 指定jsp页面中是否可以使用session对象

Buffer 指定输出缓冲区的大小,默认值为 8KB

autoFlush 指定当缓冲区即将溢出时,是否强制输出缓冲区的内容

IsThreadSafe 指定jsp文件是否支持多线程

Info 设置jsp页面的相关信息

errorPage 指定错误处理页面

isErrorPage 指定jsp页面能否进行异常处理

contentType 指定jsp页面的编码方式

pageEncoding 指定页面编码格式

isELIgnored 指定jsp文件是否支持EL表达式

 

Include指令,文件加载指令,如果被插入的文件发生了变化,则包含这个JSP文件需要重新编译

Include指令,只有一个file属性

<%@ inlcude file = “被包含文件的地址” %>

被插入的文件可以是文本文件,html文件,jsp文件,

插入的文件是一个相对路劲

Jsp编码问题,eclipse的默认编码问题 ,什么样的编码方式技能识别中文又能识别英文呢

若是出现源文件,以及被插入的文件的编码方式不一样也会报错

连续插入的文件类型一样的话,不换行

 

Taglib指令,用来引用标签并设置标签库的前缀,此指令允许jsp页面使用用户自  定义的标签,只有两个属性,URLprefix

语法格式:

<%@ taglib url=”tagLibraryURL  prefix=’tagPrefix’”%>

如:

<%@ page contentType=”text/html; charset=GB2312”%>

<%-- 声明要引用的标签库 --%>

<html>

<head>

<title>taglib 指令</title>

</head>

<body>

<%-- 使用jstl标签输出 --%>

<c:out value=”taglib example!”>

</body>

</html>

 

Jsp脚本元素

类型:(jsp声明语句,jsp表达式,jsp Scriptlet

Jsp声明语句

<%!  变量或者方法定义 %>

Jsp表达式

<%=  表达式 %>

Jsp scritplet

是一段java代码,调用时,分配内存,结束时释放内存

<%  java 代码  %>

 

Jsp动作元素

Jsp动作元素用来控制jsp的行为,执行一些常用的jsp页面动作

<jsp:include> 包含页面的方式,可以包含静态文件和动态文件,动态加载,如jsp编译器要先执行该文件,然后在将执行结果发送到客户端并显示出来,include动作元素和include指令主要区别是指令只是简单的把两个页面合并起来。

<jsp:unclude>动作元素包含两个属性:pageflush

格式:<jsp:include page=”relative URL” flush=”true|false”>

 

<jsp:forward>  是一种用于页面重定向的动作元素,停止当前页面的执行,而将客户端请求交给另外一个jsp页面。只有一个page属性。

转发和重定向的区别:

转发:是在服务器端进行的,不会引起客户端的二次请求,因此浏览器的地址栏不会发生改变

<jsp:forward>格式:<jsp:forward page=转向页面的URL地址”>

 

<jsp:param> 是一种提供参数的附属动作元素,以“名-值”的形式给其他动作元素提供附加信息,与<jsp:plugin>联合使用

格式:<jsp:param name=”参数名字” value=”指定给param的参数值”>

 

<jsp:plugin> 可以将服务器的javabeanapplet下载到客户端执行

 

<jsp:useBean> 用来装在将在jsp页面中使用的Javabean,这个功能很强大,充分发挥java组件重用的优势

格式:<jsp:useBean id=”beanInstanceName” class=”classname” scope=”page|request|session|application”/ >

Id:指定Javabean的实例名

Class指定Javabean的全限定类名

Scope 指定引入Javabean实例的作用域,默认首页

Page表示当前的页面有效

Request表示该Javabean实例在本次请求有效

Session表示该Javabean在本次会话有效

Application表示在该应用中一直有效

<jsp:setProperty> 设置修改Javabean的属性值

格式:

<jsp:setProperty name=”beanInstanceName” property=”propertyName” value=”value” />

Name进行设置Javabean的实例名

Property进行设置Javabean中的属性名

Value进行设置Javabean中指定的属性的属性值

通过beansetter方法设置属性值

<jsp:getProperty>  获得指定的Javabean的属性值

格式:

     <jsp:getProperty name=”beanInstanceName” property=”propertyName” />

 Name指定要输出Javabean的实例名

 Property指定需要输出的Javabean实例中的属性名

 在使用<jsp:getProperty>之前,必须用<jsp:useBean创建它>

<jsp:useBean><jsp:setProperty><jsp:getProperty>后面三个标签用在与Javabeans的连接中,Javabean是软件架构,Java类,可以在jsp页面中封装java代码并从内容中分理处逻辑表达

 

JSP内置对象

九大内置对象

request

response

pageContext

session

application

out

config

page

exception

其中在jsp中提供了4中属性的作用范围,pagerequestsessionapplication,使用其本身的setAttribute()方法设置属性值,使用getAttribute()方法获得属性值

 

Request 获取客户端信息,在客户端发出请求是会创建request对象,在请求结束之后,会销毁request对象

 

Response对象是包含了jsp页面返回客户的所有信息,其作用域是它所在的页面,response对象是javax.servlet.ServletResponse类的一个实例,它封装有jsp产生的响应,并返回客户端响应请求,,它被作为一个参数而由引擎传递给jsp

 

Out对象是一个缓冲输出流,用来向客户端返回信息。由于向客户端输出时总是要进行连接,所以总是采用缓冲输出的方式

 

Session对象是会话对象,用来记录客户端的访问状态

 

Application对象用来获取和设置servlet的相关信息,生命周期是从服务器启动到服务器关闭为止

 

pageContext对象是一个比较特殊的对象,不仅可以使用page范围内的属性,还可以设置其他范围内的属性,通过pageContext可以访问本页面中的所有其他对象。

 

Page对象是指的是当前jsp页面本身,是java.lang.object类的对象,通过page可以方便的调用servlet类中定义的方法

 

Config对象是servletConfig类的一个实例在servlet初始化时,通过configservlet传递信息,所传递的信息可以是属性名和属性值构成的名值对,也可以通过servletContext对象传递的服务器相关信息

 

Exception对象是java.lang.throwable类的对象,用来处理页面的错误和异常

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值