jsp学习

来源:互联网 发布:mac flamingo多少钱 编辑:程序博客网 时间:2024/06/05 05:35

jps技术:
什么是JSP
1)为什么说,Servlet是一个动态Web开发技术呢?
Servlet是基于服务端的一种动态交互技术,
HttpServletRequest表示客户端到服务端的对象
HttpServletResponse表示服务端到客户端的对象
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
2)JSP是SUN公司开发的一个基于服务端的一种动态WEB开发技术
3)JSP的代码结构/内容=HTML+JSP所有元素内容
4)在IDE工具中,开发JSP,pageEncoding有二层含义:
a)指明当前JSP中的中文采用什么方式编码(如果在IDE工具外)
b)指明当前JSP页面保存时采用什么方式编码
5)项目中,JSP最佳实践模式:

Servlet:适合控制器Jsp:适合显示JavaBean:模型

JSP这门技术的最大的特点在于,写jsp就像在写html,但:
它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。

Jsp快速入门:在jsp页面中输出当前时间。


当前时间为:<%=new Date().toLocaleString() %>

不管是JSP还是Servlet,虽然都可以用于开发动态web资源。但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。

其原因为,程序的数据通常要美化后再输出:
让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。
使用jsp显示表格信息[浏览器->Servlet(C)->JavaBean(M)->Jsp(V)]

jsp原理:
目标:
Web服务器是如何调用并执行一个jsp页面的?
Jsp页面中的html排版标签是如何被发送到客户端的?
Jsp页面中的java代码服务器是如何执行的?
Web服务器在调用jsp时,会给jsp提供一些什么java对象?

思考:JSP为什么可以像servlet一样,也可以叫做动态web资源的开发技术?
out.write(” 当前时间为:”);
out.print(new Date().toLocaleString() );
out.write(“\r\n”);

看JSP翻译后的Servlet代码和原码说明
JSP工作原理
1)Web容器根据客户端访问的资源类别(Web容器会根据资源的第一行代码确定),如果你访问的是JSP资源,就交由JSP引擎处理
如果你访问的是Servlet资源,就交由Servlet引擎处理
2)如果是JSP资源,JSP引擎会将其翻译成Servlet资源,传入相关的对象,如果是静态资源,以out.write()形式输出,如果是动态资源,以out.print()形式输出,jsp本质上也是一个servlet资源。
3)此时JSP引擎在翻译正确后,将其输出给Servlet引擎,当作Servlet处理。
4)如果再次访问同一个date.jsp文件,翻译工作依然进行,Servlet引擎工作可以减化,所以这是为会么第N次较第1次快的原因

jsp语法:
JSP模版元素
JSP表达式
JSP脚本片断
JSP注释
JSP指令
JSP标签
JSP内置对象
如何查找JSP页面中的错误

JSP模版元素
JSP页面中的HTML内容称之为JSP模版元素。
JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。
JSP语法
1)JSP模版元素
模版元素就是HTML中的静态内容,即,

,标签。。。

2)JSP表达式
a)语法:<%=”字符串变量或表达式”%>
b)结尾结束无分号
c)默认输出到浏览器
d)放在双引号里面
JSP表达式
案例:输出随机字符
jsp脚本表达式
3)JSP脚本片断
a)语法:<% …java代码; %>
b)脚本片断中的注释符号与java代码一致
注意:JSP修改后,无需重新部署,直接刷新,Web容器会自动比较新旧二个版本的JSP
c)多个JSP脚本片断中定义的变量,本质是_jspService()方法中的局部变量,可以访问
JSP脚本片断(scriptlet)用于在JSP页面中编写多行Java代码。语法:
<%
多行java代码
%>
注意:JSP脚本片断中只能出现java代码,不能出现其它模板元素, JSP引擎在翻译JSP页面中,会将JSP脚本片断中的Java代码将被原封不动地放到Servlet的_jspService方法中。
JSP脚本片断中的Java代码必须严格遵循Java语法,例如,每执行语句后面必须用分号(;)结束。
在一个JSP页面中可以有多个脚本片断,在两个或多个脚本片断之间可以嵌入文本、HTML标记和其他JSP元素。
举例:
<%
int x = 10;
out.println(x);
%>

这是JSP页面文本

原创粉丝点击