jsp注释

jsp注释

不要培训代码搬运工。想了解更多请加:qq:116 159 0055。

1.提示:什么是JSP?

JSP,全称Ja Server Pages,是SUN公司定义的一种开发动态web资源的技术,就像servle技术一样。JSP/Servlet规范。JSP实际上是一个Servlet。

B.jsp技术最大的特点就是写JSP就像写html,但是和html相比,html只能给用户提供静态数据,而Jsp技术允许ja代码嵌套在页面中给用户提供动态数据。

2.技巧:JSP原理

3.JSP最佳实践

JSP和Servlet都可以用来开发动态web资源。但由于这两种技术各自的特点,在长期的软件实践中,人们逐渐将servlet作为web应用中的控制器组件,将JSP技术作为数据展示模板。

原因是程序数据通常在输出前被美化:

让JSP既用ja代码生成动态数据,又美化它,会让页面很难维护。

让servlet既生成数据,又嵌入html代码美化数据,也会导致程序可读性差,维护困难。

所以根据这两种技术的特点,最好的办法就是让他们对自己的收益负责。servlet只负责响应请求生成数据,并通过转发技术将数据带到jsp,让jsp显示数据。

4.提示:JSP语法

JSP模板元素

JSP表达式

JSP脚本片段

JSP注释

JSP指令

JSP标签

JSP内置对象

如何发现JSP页面中的错误

5.提示:JSP模板元素

JSP页面中的HTML内容称为JSP模板元素。

JSP模板元素定义了web页面的基本框架,即页面的结构和外观。

6.提示:JSP脚本表达式

JSP脚本表达式用于向客户端输出程序数据。

语法:

示例:当前时间:

JSP引擎在翻译脚本表达式时,会将程序数据转换成字符串,然后使用out.print(…)将数据输入到客户端相应的位置。

JSP脚本表达式中的变量或表达式后面不能跟分号(;)。

查看源文件

7.提示:JSP脚本片段(1)

JSP scriptlet用于在JSP页面中编写多行Ja代码。语法:

& lt%

多行ja代码

% & gt

注意:JSP脚本片段中只能出现ja代码,不能出现其他模板元素。当JSP引擎翻译JSP页面时,它会将JSP脚本片段中的Ja代码原封不动地放到Servlet的_jspService方法中。

JSP脚本片段中的Ja代码必须严格遵循Ja语法,例如,分号(;)结束。

8.提示:JSP脚本片段(2)

一个JSP页面中可以有多个脚本片段,文本、HTML标记和其他JSP元素可以嵌入在两个或更多脚本片段之间。

例如:

& lt%

int x = 10

out . println(x);

% & gt

& ltp & gt这是JSP页面文本

& lt%

int y = 20

out . println(y);

% & gt

多个脚本片段中的代码可以相互访问,就像将所有代码放在一对

Ja script:标签封装不应该出现在正式开发的JSP中。

9.提示:JSP脚本片段(3)

单个脚本片段中的Ja语句可以是不完整的,但是组合多个脚本片段的结果必须是完整的Ja语句,例如:

& lt%

for(int I = 1;我& lt5;i++)

{

% & gt

& ltH1 & gt;www . it 315 . org & lt;/H1 & gt;

& lt%

}

% & gt

练习:打印一个有100行的表格。

10.提示:JSP声明

默认情况下,所有用JSP页面编写的代码都会被翻译成servlet的服务方法,而Jsp声明中的ja代码会被翻译到_jspService方法之外。语法:

& lt%!

Ja代码

% & gt

因此,JSP声明可用于定义JSP页面转换成的Servlet程序的静态代码块、成员变量和方法。

多个静态代码块、变量和函数可以在一个JSP声明中定义,也可以分别在多个JSP声明中定义。

JSP隐式对象的范围仅限于Servlet的_jspService方法,因此这些隐式对象不能在JSP声明中使用。

11.提示:JSP语句?情况

& lt%!

静电

{

System.out.println(“正在加载Servlet!”);

}

private int global var = 0;

public void jspInit()

{

System.out.println(“初始化jsp!”);

}

% & gt

& lt%!

public void jspDestroy()

{

System.out.println(“破坏jsp!”);

}

% & gt

12.技巧:JSP注释

JSP注释的格式:

& lt%-评论信息-% >

当JSP引擎将JSP页面转换成Servlet程序时,它会忽略JSP页面中带注释的内容。HTML中的评论有什么区别?见源文件求解。

13.提示:JSP指令

JSP指令是为JSP引擎设计。它们不直接产生任何可见的输出,而只是告诉引擎如何处理JSP页面的其余部分。JSP 2.0规范中定义了三条指令:

打印顺序

包括说明

Taglib指令

14.提示:简介提示:JSP指令

JSP指令的基本语法格式:

& lt% @指令属性Name = ” Value ” % & gt

示例:

如果一条指令有多个属性,这些属性可以写在一条指令中,也可以分开写。

例如:

& lt%@页content type = ” text/html;charset=gb2312″% >

& lt% @ page import = ” Ja . util . date ” % & gt;

你也可以写:

& lt%@页content type = ” text/html;charset = GB 2312 ” import = ” Ja . util . date ” % & gt;

15.提示:页面说明

页面指令用于定义JSP页面的各种属性。无论页面指令出现在JSP页面的什么地方,它都作用于整个JSP页面。为了保持程序的可读性,遵循良好的编程习惯,最好将页面指令放在整个JSP页面的开头。

JSP 2.0规范中定义的页面指令的完整语法;

& lt%@页

[ language=”ja” ]

[ extends=”package.class” ]

[import = ” { package . class | package。*}, …”]

[session = ” True | false “]//True]//True创建一个会话对象。

[ buffer=”none | 8kb | sizekb” ]

[ autoFlush=”true | false” ]

[is thread safe = ” true | false “]false继承SingleThreadModel接口。

[ info=”text” ]

[ errorPage=”relative_url” ]

[ isErrorPage=”true | false” ]

[content type = ” mime type[;charset = characters et]” | ” text/html;charset=ISO-8859-1″ ]

[page encoding = ” characters et | ISO-8859-1 “]

[ isELIgnored=”true | false” ]

errorPage属性的设置值是一个路径(相对或绝对)。如果以“/”开头,表示相对于当前WEB应用的根目录(注意不是站点的根目录);否则,它意味着相对于当前页面。

你可以用

如果设置了JSP页的errorPage属性,则web.xml文件中设置的错误处理将不会在该页上起作用。

16.提示:使用页面指令解决中文乱码JSP。

JSP程序和Servlet程序有完全一样的中文乱码问题。

输出响应文本时出现中文乱码的问题。

读取浏览器发送的参数信息时出现中文乱码的问题

当JSP引擎将JSP页面翻译成Servlet源文件时,也可能导致中文乱码问题。

缺省情况下,JSP引擎翻译的Servlet源文件采用ISO8859-1编码,而JSP开发人员可以使用各种字符集编码来编写JSP源文件。因此,JSP引擎在将JSP源文件翻译成Servlet源文件时,需要进行字符编码转换。

如果JSP文件没有指定其字符集编码,JSP引擎会将其视为默认的ISO8859-1字符集编码。

JSP引擎翻译JSP页面时如何解决中文乱码问题

JSP源文件的字符集编码是通过page指令的contentType属性来说明的。

page指令的pageEncoding属性描述了JSP源文件的字符集编码。

17.提示:包含说明

include指令用于引入其他JSP页面。如果使用include指令引入其他JSP页面,JSP引擎会将这两个JSP页面转换成一个servlet。因此,include指令的引入通常称为静态引入。

语法:

& lt%@ include file= “所包含组件的绝对URL或相对URL ” % >

file属性用于指定导入文件的路径。路径以“/”开头,表示当前的web应用程序。

详细信息:

导入的文件必须遵循JSP语法。

导入的文件可以使用任何扩展名。即使它的扩展名是html,jsp引擎也会像处理JSP页面一样处理它的内容。为了了解清楚,JSP规范建议使用。jspf(JSP片段)作为静态导入文件的扩展。

由于使用include指令会涉及到两个JSP页面,并将这两个JSP页面翻译成一个servlet,所以这两个JSP页面的指令不能冲突(pageEncoding和bootstrap除外)。

18.提示:taglib指令

Taglib指令是用来导入JSP页面中的标签库的,说到定制标签技术。

19.技巧:JSP操作原理和九个隐式对象

当第一次访问每个JSP页面时,WEB容器会将请求交给JSP引擎(即一个Ja程序)进行处理。JSP引擎首先将JSP翻译成_jspServlet(本质上也是Servlet),然后根据servlet的调用方式调用它。

因为JSP在第一次访问的时候会被翻译成servlet,所以第一次访问通常比较慢,但是第二次访问的时候,如果JSP引擎发现JSP没有变化,就不会翻译,而是直接调用,所以程序的执行效率不会受到影响。

JSP引擎调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为了方便开发者在编写JSP页面时获取这些web对象的引用,特意定义了9个对应的变量,开发者可以通过JSP页面中的这些变量快速获取这9个对象的引用。

这九个物体是什么,它们的作用也是笔试中经常考查的知识点。

20.技巧:JSP的九个隐式对象

请求

反应

配置

应用

例外

会议

页,面,张,版

在外

页面上下文

21.提示:out隐式对象

out隐式对象用于向客户端发送文本数据。

out对象是通过调用pageContext对象的getOut方法返回的,其功能和用法与ServletResponse.getWriter方法返回的PrintWriter对象非常相似。

JSP页面中out隐式对象的类型是JspWriter,相当于一个带缓存功能的PrintWriter。设置JSP页面的page指令的buffer属性,可以调整其缓存大小,甚至关闭其缓存。

只有当内容被写入out对象并且满足以下任一条件时,out对象才调用ServletResponse.getWriter方法,out对象的缓冲区中的内容通过该方法返回的PrintWriter对象被实际写入Servlet引擎提供的缓冲区中:

设置page指令的buffer属性会关闭out对象的缓存功能。

输出对象的缓冲区已满;整个JSP页面结束。

22.Tip: out隐式对象工作示意图

& lt% out . println(” AAA “);response.getWriter()。write(” BBB “)% & gt;

23.提示:关于隐式对象的注意事项

使用out和response.getwriter()同时输出数据。

使用JSP下载文件。

24.提示:pageContext对象

PageContext对象是JSP技术中最重要的对象,它代表了JSP页面的运行环境。这个对象不仅封装了对其他八个隐式对象的引用,而且本身就是一个域对象,可以用来保存数据。而且这个对象还封装了web开发中经常涉及到的一些常见操作,比如引入和跳转到其他资源,检索其他域对象中的属性等。

25.提示:通过pageContext获取其他对象。

getException方法返回一个异常隐式对象。

getPage方法返回页面隐式对象。

getRequest方法返回请求隐式对象。

getResponse方法返回响应隐式对象。

getServletConfig方法返回一个配置隐式对象。

getServletContext方法返回应用程序隐式对象。

getSession方法返回会话隐式对象。

getOut方法返回一个Out隐式对象

PageContext封装了其他八个内置对象的含义。思考:如果编程时将pageContext对象传递给一个普通的ja对象,这个ja对象会有什么作用?

25.提示:作为域对象的pageContext。

pageContext对象的方法

public void set attribute(Ja . lang . string名称,ja.lang.Object值)

公共Ja . lang . object get attribute(Ja . lang . string名称)

公共void remove attribute(Ja . lang . string名称)

PageContext对象还封装了访问其他域的方法。

公共Ja . lang . object get attribute(Ja . lang . string名称,int范围)

public void set attribute(Ja . lang . string名称,ja.lang.Object值,int范围)

public void remove attribute(Ja . lang . string name,int scope)

代表各种字段的常数

页面上下文。应用范围

页面上下文。会话_范围

页面上下文。请求范围

页面上下文。页面_范围

findAttribute方法的EL表达式(*重点在每个域中查找属性)

26.提示:介绍并跳转到其他资源。

在PageContext类中定义了一个forward方法和两个include方法,以分别简化和替换RequestDispatcher.forward方法和include方法。

如果方法接收的资源以“/”开头,则“/”表示当前web应用程序。

27.提示:JSP标签

jsp标签,也叫JSP Action(jsp element),用于在Jsp页面中提供业务逻辑功能,避免直接在Jsp页面中编写ja代码,导致Jsp页面难以维护。

28.技巧:JSP公共标签

& ltJSP:include & gt;标签

& ltJSP:forward & gt;标签

& ltJSP:param & gt;标签

28、提示:& ltJSP:include & gt;标签

& ltJSP:include & gt;标签用于将另一个资源的输出内容插入到当前JSP页面的输出内容中,这在JSP页面执行时称为动态引入。

语法:

& ltJSP:include page = ” relative URL | & lt;% =表达式% >flush = ” true | false “/& gt;

page属性用于指定引入资源的相对路径,也可以通过执行表达式来获得。

flush属性指定在插入其他资源的输出内容时,是否先向客户端刷新当前JSP页面的输出内容。

29、提示:& ltJSP:include & gt;与包含指令的比较

& ltJSP:include & gt;标签是动态引入的,

include指令是静态引入的,所涉及的两个JSP页面将被翻译成一个servlet,其内容在源文件级别被合并。

不管是

否则,输出到客户端的内容将是一个格式混乱的HTML文档。

30、提示:& ltJSP:forward & gt;标签

& ltJSP:forward & gt;标签用于将请求转发给另一个资源。

语法:

& ltJSP:forward page = ” relative URL | & lt;% =表达式% >/& gt;

page属性用于指定请求转发到的资源的相对路径,也可以通过执行表达式来获得。

31、提示:& ltJSP:param & gt;标签

使用时

语法1:

& ltJSP:include page = ” relative URL | & lt;% =表达式% >& gt

& ltJSP:param name = ” parameter name ” value = ” parameter value | & lt;%=表达式% >/& gt;

& lt/JSP:include & gt;

语法2:

& ltJSP:forward page = ” relative URL | & lt;% =表达式% >& gt

& ltJSP:param name = ” parameter name ” value = ” parameter value | & lt;%=表达式% >/& gt;

& lt/JSP:include & gt;

& ltJSP:param & gt;标签的name属性用于指定参数名,value属性用于指定参数值。在< JSP:include & gt;和

32.技巧:映射JSP

& ltservlet & gt

& ltservlet-name & gt;SimpleJspServlet & lt/servlet-name & gt;

& ltJSP-file & gt;/JSP/simple . JSP & lt;/JSP-file & gt;

& lt启动时加载& gt1 & lt/load-on-startup & gt;

& lt/servlet & gt;

……

& ltservlet映射& gt

& ltservlet-name & gt;SimpleJspServlet & lt/servlet-name & gt;

& lturl模式& gt/XXX/yyy . html & lt;/URL-pattern & gt;

& lt/servlet-mapping & gt;

33.提示:如何发现JSP页面中的错误?

JSP页面的JSP语法格式有问题,无法翻译成Servlet源文件。JSP引擎将在JSP页面中提示此类错误的位置(行和列)和相关信息。

JSP页面的JSP语法格式没有问题,但是翻译出来的Servlet源文件存在Ja语法问题,导致从JSP页面翻译出来的Servlet源文件无法编译。

JSP引擎还会提示JSP页面中此类错误的位置(行和列)和相关信息。

JSP页面翻译过来的Servlet程序在运行时出现异常,和普通Ja程序的运行时错误一模一样。Ja虚拟机会提示Servlet源文件中错误的位置(行和列)和相关信息。

34.提示:关键点

到目前为止,web开发已经接触了四个领域对象,这四个领域对象是学习web的重点,也是笔试中经常考查的知识点。

页面上下文(称为页面域)

请求(称为请求域)

会话(称为会话域)

ServletContext(称为应用程序域)

澄清以下问题:

什么是域?

这四个物体的生命周期?

在什么情况下使用哪个域对象。

1.请求:如果一个客户向服务器发送请求,那么生成的数据在用户阅读后就对用户没有用了。像这样的数据会存在于请求字段中,比如新闻数据,用户看完之后就没用了。

2.会话:如果客户向服务器发送请求,生成的数据在用户用完之后会有用。像这样的数据会被存储在session域中,比如购物数据,用户需要看到自己的购物信息,等一会儿再用这个购物数据买单。

3.servletContext:如果客户向服务器发送请求,生成的数据会被其他用户用完,这些数据会存储在servletContext域中,比如聊天数据。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论