JSP
- 介绍:JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。
- JSP生命周期中所走过的几个阶段:
编译阶段:
Servelet容器编译Servelet源文件,生成servelet类
初始化阶段:
加载与JSP对应的Servelet类,创建其实例,并调用它的初始化方法
执行阶段:
调用与JSP对应的Servelet实例的服务方法
销毁阶段:
调用与JSP对应的Servelet实例的销毁方法,然后销毁Servelet实例 - 指令:
指令 | 描述 |
---|---|
<%@ page … %> | 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等 |
<%@ include … %> | 包含其他文件 |
<%@ taglib … %> | 引入标签库的定义,可以是自定义标签 |
-
标签:<% %>
-
注释:
<%-- 注释 --%> :JSP注释,注释内容不会被发送至浏览器甚至不会被编译 -
输出:<%=内容%>
-
作用域:
pageContext(页面域):pageContext有效范围仅限于当前页面 , 可以近似理解为this对象 , 在离开当前页面后 , 无论是request或redirect等方式离开的 , 当前页面的相关属性值都会丢失。
request(请求域):request表示一次请求 , 它的有效范围是当前请求周期 . 所谓请求周期 , 就是从http发送请求 , 到服务器接收并处理请 , 将结果返回到客户端响应 . 在这一过程中 , 可能使用forward跳转了多个jsp页面 , 而在这多个jsp页面中属性值都有效. 但如果是通过redirect方式进行跳转 , 则重新发送请求 , 这样属性值就会丢失。
session(会话域):session有效范围是当前会话。当前会话表示浏览器打开到浏览器关闭这一过程。但这会出现这种情况,如果浏览器一直处于打开状态,这样session永远不会销毁,而且在浏览器关闭时并不会通知服务器,另外session是存放在服务器的内存上,这样对服务器是一种负担,所以通过这种方法来判断:如果一段时间内客户端没有响应,则认为会话结束。
application(应用域):application有效范围为整个应用,从应用开启到应用结束。在服务器停止之前,应用没有结束,application对象都有效,可以被所有会话共享。 -
内置对象
对象 | 描述 |
---|---|
request | HttpServletRequest类的实例 |
response | HttpServletResponse类的实例 |
out | PrintWriter类的实例,用于把结果输出至网页上 |
session | HttpSession类的实例 |
application | ServletContext类的实例,与应用上下文有关 |
config | ServletConfig类的实例 |
pageContext | PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问 |
page | 类似于Java类中的this关键字 |
Exception | Exception类的对象,代表发生错误的JSP页面中对应的异常对象 |
9.代码格式:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>first jsp</title>
</head>
<body>
你好
</body>
</html>