jsp目前使用已经不多了,由于前后端分离,jsp很难在有用武之地。但是在一些以前的老项目中,jsp使用的却很频繁,说不定我们以后就会去维护老项目。jsp我们可以不用学的很好,但是基本使用一定要会。最起码要能够看懂jsp,并能够进行简单修改。
jsp介绍
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。jsp是服务器端渲染技术,在jsp页面中不仅可以写html,css,javascript代码,而且还可以写java代码。最终jsp文件会被服务器(tomcat)解析为java文件。
IDEA开发JSP
我们要使用jsp,肯定要引入jsp的jar包才行,jsp的jar包在tomcat的lib目录下,将这个jar包引入当前项目。如果不知道怎么找,请参考idea使用servlet,方法基本一样。
JSP常用指令
这里我就介绍一个page指令,page里面可以有很多内容,常用的就下面4个。
- import:这个就和普通java文件里面的import一样,用于导包
- contentType:设置响应的MIME和编码
- language:jsp使用的语言,目前只支持java
- pageEncoding:当前jsp页面的编码
JSP语法
- <% 自己写java代码 %>
- <%! 定义java的属性,方法,代码块等 %>
- <%= 表达式 %> ,表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。
jsp还有许多语法,比如if,while等,这里就不介绍了。感兴趣可以去菜鸟教程学习。
JSP注释
使用<%-- 内容 --%>
JSP运行原理
我们的jsp实质就是一个servlet,也就是一个java文件,在被服务器(tomcat)解析后就是一个java文件。
上面是我写的一个csdn.jsp,下面我们启动tomcat,然后查看csdn.jsp被解析成什么了。
进入自己控制台提示的目录寻找解析后的jsp文件
来到这里后,我们使用游览器访问下jsp。然后我们在当前目录下进入以下目录:work\Catalina\localhost\jsp\org\apache\jsp
发现jsp已经被解析为了java文件,我们原本的名字是csdn.jsp,解析后变成了csdn_jsp.java,所以jsp的本质就是java文件。
JSP的继承类图
通过查看jsp解析后的java文件,我们知道jsp继承了HttpJspBase,下面我们查看HttpJspBase的类图。
通过查看类图,我们可以发现jsp实现了HttpServlet,所以servlet有的功能jsp都有,而且还继承了HttpJsppage,扩展了一些新的功能。
JSP常见内置对象
- out对象: 用于向客户端输出数据,相当于response.getWriter()
- request对象:这个就和servlet中的request一样
- response对象:这个和servlet中的response一样
- session对象:相当于request.getSession()
- application对象:相当于ServletContext
- pageContext对象:这个对象是一个域对象,作用与当前页面,里面可以设置一些信息
- config对象:相当于ServletConfig
JSP域对象
我们常常需要存储一些数据,这些数据用于本页面或者不同页面所共享,这时我们就可以把数据存储在域对象中,下面介绍4个域对象,他们作用域各有不同,根据自己需要进行选择。
- pageContext:作用域为当前页面
- request:作用域为本次http请求
- session:作用域为本次会话
- application:作用域为整个web应用
总结
由于jsp使用已经不多,对于jsp的学习我们不需要太过于深入,了解jsp的语法,能够编写简单的jsp和能够看懂别人写的jsp页面即可。但是我们还是得要练习一下jsp才行,大家可以使用jsp来编写一些页面练习一下使用。