JavaWeb-5、JSP
jsp技术虽然现在使用的已经非常少了,但毕竟java知识是一个体系,还是可以稍微了解了解
一、概述
JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。
如果还是使用传统的html开发的话,所有用户看到的界面将会一模一样,网页就很难从数据库或者后台拿到数据以针对不同用户进行显示。
但是有了jsp技术,通过内嵌的java代码,就可以实现动态网页开发!
JSP是Java EE不可或缺的一部分,是一个完整的企业级应用平台。
jsp的优势:
- 与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。
- 与纯 Servlet 相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
- 与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
- 与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
- 与静态HTML相比:静态HTML不包含动态信息。
二、原理
我们学一个东西,如果能究其底层,究其原理,那我们必然会更加理解这门技术,我们现在也来看看jsp到底是何方神圣。
在我们每个人的tomcat文件夹中,都会有work这么个文件夹,我们点进去看看。这里我们进到idea中的tomcat中,随便选一个项目:
一直点到最里头发现居然有个jsp文件夹!
快康康!
里面居然是jsp的java文件和编译后的class文件,到底咋回事儿啊!快康康java的源码。
我们发现这玩意继承了这个类,往下翻翻我们发现了一个惊天的秘密!!
这底下不就是我项目中jsp文件里那几段简单的代码么!这不是应该是在servlet里写的么?
原来这jsp就是个servlet类啊!
然后我们再点进去其他项目中的jsp类,发现仅仅是中间out.write输出的前端那几行页面有所不同,其他都一样啊!
所以我们可以把具体流程归为以下:
1、我们去服务器端请求,服务端找到jsp文件
2、将jsp转换为java文件
3、编译java文件,使其转换为class文件
4、把class文件回传给服务器
5、用户访问class文件(其实就是个servlet!)
三、jsp基础语法和指令
我们来写写看看吧
先导包!
这里我们需要servlet、jsp、jstl以及taglibs的包
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>