全称:java server pages (java服务器页面)
1.作用:
-
使得程序员专注于页面的编写,
-
可以被tomcat翻译成对应的可执行的java文件。
⒉构成:
-
是一种动态页面模板技术
-
主体内容可以是html代码
-
也可以在主体中随处插入java代码
-
提供了九大内置对象方便程序员使用,其中有四个对象可以作为四大作用域使用
3.执行流程:
-
1.浏览器发送请求,访问jsp页面
-
2.应用服务器接收请求,jspservlet会帮助我们查找对应的jsp文件
-
3.应用服务器将.jsp文件翻译成.java文件
-
4.jvm会将java文件编译成class文件
-
5.应用服务器运行class文件,生成动态的html页面
-
6.应用服务器将动态生成的页面发送给浏览器
-
7.浏览器接收html页面,解析展示
4.JSP的指令:
作用:用来声明jsp页面的一些属性和动作
格式:<%@指令名称 属性="值” 属性="值"%>
常见的指令: 1.page:声明jsp页面的属性 language:声明jsp页面使用的嵌套语言
contentType: 设置响应流的类型和编码格式
pageEncoding: jsp页面的编码格式
import: 导包
session:设置jsp页面是否可以用session内置对象
isErrorPage:设置是否是错误页面
isELIgnored:设置是否忽略EL表达式
2.include:静态包含
格式:<%@include file="相对路径或者内部路径"%>
作用:将其他页面的内容包含进来,一起进行编译和运行。
3.taglib:导入标签库
格式:<%@taglib prefix=“前缀名" uri="命名空间"%>
作用:引入标签库到本页面,本页面中可以使用 前缀名:标签...
5.jsp的脚本: <%...%>:编写java代码,作为页面的脚本
<%=...%>:输出表达式,简化out.write() <%!. ..%>:全局声明,只能用于声明变量,会在所有脚本执行之前执行,可以在页面任意位置
案例:使用表格展示用户的信息
6.jsp注释
html注释 : <!-- -->
Java注释: // /**/
jsp注释: <%-- --%>
7.jsp的九大内置对象
对象名 | 内置对象 | 数据类型 |
---|---|---|
输出对象 | out | Jspwriter |
请求对象 | request | HttpservletRequest |
响应对象 | response | HttpservletResponse |
应用对象 | application | servletContext |
页面上下文 | pageContext | Pagecontext |
会话对象 | session | HttpSession |
异常对象 | exception | Throwable |
配置对象 | confige | servletconfig |
页面对象 | page | servlet (this) |
out输出对象:向页面输出内容,类似servlet中的输出流对象writer
request请求对象:
-
1.设置请求编码格式
-
2.封装请求数据
-
3.获取请求数据
-
4通过转发实现页面的跳转 可实现请求数据的共享
response响应对象:
1.通过Cookie绑定数据,然后通过response响应给客户端并保存,客户端可以通过request获取Cookie
-
Cookie是服务端产生的,发送给服务端保存,相当于本地的缓存,提高访问效率,但是安全性较低
-
Cookie可以以键值对的形式保存数据
-
Cookie可以设置最大有效的时间
案例:使用cookie实现记住用户名
2.设置响应的格式
3.通过重定向实现页面的跳转
8.jsp四大作用域
-
application:
作用域是整个项目,项目重启或者关闭,数据丢失。如果项目不关闭,所有用户访问该项目的所有页面均可以访问application中的数据
-
session:作用域是一次会话,关闭浏览器数据丢失,如果会话不中断,本次会话访问的所有页面均可以获取session中的数据。
-
request:作用域是一次请求,发送另一次请求时,数据无法共享
-
pageContext:作用域是本页面,不同的页面无法共享数据
9.转发和重定向
-
1.转发是request对象的方法,重定向是response对象的方法。
转发:request.getRequestDispatcher("目标页面路径").forward(request,response);
重定向: response.sendRedirect("目标页面路径");
-
2.转发url地址不改变,重定向url地址改变
-
3.转发是服务器行为,重定向是客户端行为。
-
4.转发是一次请求,重定向是两次请求
-
5.转发只能是内部网址,重定向可以是外部网址
-
6.转发请求数据不会丢失,重定向请求数据会丢失
10.jsp的动作标签
转发动作标签:<jsp:forward page="目标页面路径"> < /jsp:forward>
11.动态包含和静态包含的区别
动态包含:<jsp:include page="目标页面路径"> < /jsp:include>
-
两个jsp页面会独立翻译成java文件然后编译执行。
-
在运行时,将目标页面的视图显示到本页面中来。
-
动态包含不会真实的引入代码,而是引入视图。
静态包含:<%@include file="相对路径或者内部路径"%>
-
将目标页面的代码全部引入本页面。
-
然后只翻译本页面为java文件,最后编译执行。
-
静态包含会真实的引入代码。