前言
我们在学习Servlet技术后,我们都时用Servlet进行页面的展示。如:学Cookie时做的案例,全是Java代码字符串拼接起来的页面。
Java EE基础(13):Cookie三天免登录案例(附源码) 中的登录页面的展示。
(这还是单纯的html代码,没有加CSS和JS代码)
我们发现使用上面Java代码进行页面书写太影响效率了。那么有没有什么方式,可以让我们可以像之前写网页代码一样的呢。
答案是:使用JSP技术。
一、JSP
1.概念
JSP(全称Java Server Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
JSP全称Java Server Pages,简单理解:他可以用于写HTML页面,是以.jsp结尾的文件。
每一个JSP 本质上是一个Servlet,就和之前写的Servlet是一样的。只不过他简化了Servlet。
2.作用
JSP出现是为了代替Servlet输出HTML代码。
你如果使用Servlet输出HTML代码会很麻烦,如果你再加上CSS和JS代码,再使用Servlet就会很困难了。
所以说,JSP的出现是为了简化Servlet,代替Servlet输出HTML代码。
3.优点
(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。
总结下:
- 跨平台
- 可伸缩性强
- 有多样化和功能强大的开发工具支持。
二、JSP简单使用
1.创建jsp文件
新建一个动态web项目 - 在WebContent(或WebRoot)目录下右键,新建一个JSP File,命名 first.jsp。
创建好的JSP文件长这样。除了<% %>(我后面会讲到),其他的就和html代码一样了。
修改里面的编码格式,将ISO-8859-1编码改为UTF-8(不改会乱码)。顺便加上一句话
2.部署运行
tomcat部署运行(部署配置好项目访问路径)
访问成功!
三、JSP运行原理
1.原理
你启动了Tomcat服务器,在浏览器中(输入URL)访问Tomcat服务器中访问的任何资源都是在访问Servlet。我在上面JSP概念中提到,JSP本质上是一个Servlet,为什么说JSP本质是Servlet呢?
Tomcat的管方文档中我们可以看到HttpJspBase是继承HttpServlet。
因为JSP继承了HttpJspBase,所以JSP也是一个Servlet
其实JSP在第一次被访问的时候会被编译为一个继承了HttpJspBase类(该类是HttpServlet的一个子类)。
所以说JSP本质是一个Servlet
(如果你像看被编译后的jsp文件,请看下面)
2.如何查看
打开你的tomcat,如果你这里没有特别设置过。那么路径为:当前项目位置.metadata.plugins\org.eclipse.wst.server.core\tmp2\work\Catalina\localhost\demo-jsp\org\apache\jsp
例如:我的项目位置是(当前项目位置.metadata.plugins\org.eclipse.wst.server.core\tmp2\work\Catalina\localhost\demo-jsp\org\apache\jsp)。
如果你找不到目录请参考:【问题】Eclipse中集成的Tomcat部署项目,Tomcat中没有项目文件问题解决
这就是我们刚刚创建的jsp文件,被编译后的.class文件。还有一个生成的.java文件。
打开后可以看到:
总结
我们知道了JSP本质上是一个Servlet。同时我们也会JSP的简单使用,接下来将会对JSP相关的知识点进行总结。
相关
更多Java EE基础的 Servlet与JSP相关 请点击:【Servlet + JSP】 目录