所在的位置: Web开发 >> JSP >> JSP总结

JSP总结

1.为什么会出现JSP

HTML的优点是可以很好的显示页面,但是缺点是不能处理用户的请求

Servlet的优点是可以处理用户请求并给用户响应,但是缺点是不能很好的显示页面

我们将HTML与Servlet的优点进行强强联合,就出现了JSP,即HTML+Servlet=JSP

2.JSP简介

JSP全称是JavaServerPages,Java服务页面

JSP页面不能脱离服务器单独运行,即JSP页面必须运行在服务器上

JSP页面就是能写Java代码的HTML,它还是披着HTML外衣的Servlet

JSP本质上就是一个Servlet

3.JSP的运行原理

运行一个JSP页面需要经过以下步骤:

例如:我们访问index.JSP

直接使用JSP容器创建的对象来处理用户请求和给用户响应

JSP引擎将index.jsp页面翻译成index_JSP.jave文件

Java虚拟机将index_jsp.java文件编译成index_JSP.class文件

JSP容器创建index_JSP对象,用它来处理用户的请求并给用户响应

第一次访问时:

以后再访问index.jsp(前提是index.JSP页面没有被修改)

1)JSP引擎将.JSP页面翻译成.java文件

2)Java虚拟机将.java文件编译成.class文件

3)JSP容器根据Java类创建对象并用该对象处理用户请求并给用户响应

4.JSP的基本语法

JSP模板元素

就是HTML中的标签,在HTML中怎么使用在JSP中就怎么使用

JSP脚本片段

格式:%.......%

JSP脚本片段用来写Java代码

JSP脚本片段中的Java代码或原封不动的复制到_JSPService方法中

可以再JSP页面中写多个脚本片段,但是要保证多个脚本片段拼接后的完整性

!--2.JSP脚本片段--

%

for(inti=0;i10;i++){

%

h1中秋节快到了!好开心哟……/h1

%

}

%

JSP表达式

格式:%=对象%

JSP表达式主要用来将一个对象输出到页面

%

//创建一个date对象

Datedate=newDate();

%

!--3.JSP表达式--

h1%=date%/h1

JSP页面中的注释

HTML注释:在浏览器解析页面的时候被忽略,生存时机最长

Java注释:在Java虚拟机将java文件编译成class文件是被忽略,生存时机适中

JSP注释:在JSP引擎将JSP文件翻译成java文件时就被忽略,生存时机最短

5.JSP指令

格式:%

指令名属性名1="属性值1"属性名2="属性值2"%

page指令

!--page指令:告诉JSP引擎如何解析当前页面--

!--

language属性:用来设置JSP页面使用的语言,默认值是java,而且只有一个值就是java

contentType属性:用来告诉浏览器使用什么字符集解析当前页面

pageEncodeing属性:用来设置当前JSP页面使用的字符集

errorPage属性:用来设置当前页面出现错误时要转发的页面

isELIgnored属性:用来设置是否忽略EL表达式,默认值是false,不忽略,一般不改

session属性:用来设置是否可以使用Session对象,默认值是true,可以使用,一般不改

isErrorPage属性:用来设置当前页面是否是错误页面,默认值是false,不是错误页面;当改为true时,当前页面即为错误页面,就可以使用Exception对象来打印错误信息

--

include指令

!--include指令:用来将其他页面包含到当前页面中--

!--静态包含--

h1十年修得同船渡/h1

!--file属性:用来设置被包含的页面的地址--

%

includefile="/include/1.JSP"%

6.JSP动作标签

格式:jsp:标签名/JSP:标签名

JSP动作标签由服务器解析,解析时会转换成响应的Java代码

forward标签

!--forward标签:主要用来进行请求的转发--

!--page属性:用来设置要转发的页面的路径--

jsp:forwardpage="/index.jsp"/JSP:forward

include标签

!--include标签:主要用来将一个页面包含到当前页面中,我们称它为动态包含--

!--动态包含即翻译、编译当前页面也翻译、编译被包含页面--

h1窗前明月光/h1

jsp:includepage="/include/2.jsp"/JSP:include

7.JSP中的九大隐含对象

JSP中的九大隐含对象可以再JSP页面中直接使用

什么是隐含对象

不用声明就可以直接使用的对象

这九个隐含对象在jsp页面中之所以可以直接使用是因为它们已经在_JSPService方法中已经声明并赋值

九大隐含对象都是什么

类型:HTTPSession

作用:是一个域对象

在Servlet中通过以下方法获取

类型:PageContext

作用:是一个域对象

类型:HTTPServeletRequest

作用:是一个域对象

在Servlet中可以直接使用

request

pageContext

session

HTTPSessionsession=request.getSession();

类型:ServletContext

作用:是一个域对象

在Servlet中通过以下方法获取

application

ServletContextservletContext=this.getServletContext();

类型:Throwable

作用:获取异常信息,前提是isErrorPage属性设置为true才可以使用该对象

类型:Object

作用:相当于this,值当前对象,没用

类型:JSPWriter

作用:与PrintWriter一样,用来想浏览器响应一个页面或页面的片段

类型:ServletConfig

作用:获取JSP的初始化参数

类型:HTTPServletResponse

作用:与Servlet中的response一样,封装了响应报文,在JSP中基本不用

response

config

out

page

exception

8.JSP中的四个域对象

域指区域或者说是范围,在JavaWeb中指不同的Web资源(JSP、html、Servlet)

在JavaWeb中有四个域对象,分别是pageContext、request、session、application

因为在JavaWeb中不同的资源之间需要共享数据,所有就有了域对象

在域对象中都维护着一个map,来保存对象

域对象都有以下三个方法:

根据属性名移除域对象中的值

根据属性名获取域对象中的值

向域对象中添加属性

voidsetAttribute(Stringkey,Objectvalue)

ObjectgetAttribute(Stringkey)

voidremoveAttribute(Stringkey)

JavaWeb中有四个域

能使用小的就不用大的

范围:当前Web应用

对应的对象:application

类型:ServletContext

作用:获取application域中的属性值

范围:当前会话

对应的对象:session

类型:HTTPSession

作用:获取session域中的属性值

范围:当前请求

对应的对象:request

类型:HTTPServletRequest

作用:获取request域中的属性值

范围:当前页面

对应的对象:pageContext

类型:PageContext

作用:获取page域中的属性值

page域

request域

session域

application域

域对象使用的原则

Servlet与JSP的分工

Servlet用来处理请求,JSP负责显示页面

赞赏

人赞赏









































中科白癜风医院好吗
治白癜风专业医院



转载请注明:http://www.guyukameng.com/jsp/1662.html