文章目录
1、什么是jsp
jsp全称是Java server pages java的服务页面
jsp的主要作用是代替Servlet程序回传html页面的数据
Servlet回传数据非常麻烦
Servlet回传数据截图:
jsp回传数据截图:
2、jsp页面本质
jsp页面本质是一个Servlet程序
当我们第一次访问jsp页面的时候,tomcat服务器会帮我们把jsp页面翻译成为一个java源文件,并对它进行编译成.class字节码程序
3、jsp头部的page指令
jsp的page指令可以修改jsp页面中一些重要的属性,或者行为。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
- language属性:表示jsp翻译后是什么语言文件。
- contentType属性:表示jsp返回的数据类型是什么,也就是response.setContentType()参数值
- pageEncoding属性:表示当前jsp页面文件本身的字符集
- import属性:导包
=out输出流时使用=====
-
autoFlush属性:设置out输出流缓冲区满了之后,是否自动刷新冲级区。默认是True
-
buffer属性:设置out缓冲区的大小。默认是8kb
=out输出流时使用=====
-
errorPage属性:设置jsp页面运行时出错,自动跳转去的错误页面路径(jsp页面)
-
isErrorPage属性:设置当前jsp页面是否错误信息页面,默认是false
-
session属性:设置访问当前的jsp页面,是否会创建HTTPSession对象。默认是true
-
extends属性:设置servlet默认继承那个类或者包
4、声明脚本(极少使用)
<%! 声明java代码 %>
<%--声明类属性--%>
<%!
private Integer id;
private String name;
private static Map<String,Object> map; %>
<%--声明静态代码块--%>
<%!
static {
map = new HashMap<String,Object>();
map.put("key","value");
}%>
<%--声明类方法--%>
<%!
public int abc(){
return 12;
}%>
<%--声明内部类--%>
<%!
public static class A{
private Integer id;
private String name;
}%>
5、表达式脚本(常用)
<%= java表达式%>
表达式脚本的作用,在jsp页面上输出数据
可以输出整型
输出浮点型
输出字符串
输出对象
<%= response.getStatus() %>
6、代码脚本
<% java代码 %>
if语句:
<%
int i = 0;
if(条件){
代码
}
%>
<%if(条件){%>
输出内容
<%}else{%>
输出内容
<%}%>
for循环:
翻译后java文件中jspservice发放内的代码都可以写
7、jsp九大内置对象
request 请求对象
response 响应对象
pageContext jsp的上下文对象
session 会话对象
application ServletContext对象
config ServletConfig对象
out jsp输出流对象
page 指向当前jsp的对象
exception 异常对象
8、jsp四大域对象
域对象可以像map一样存取数据的对象。四个域对象功能一样。不同的是他们对数据的存取范围
pageContext(PageContextImpl类) 当前jsp页面范围内有效
request(HttpServletRequest类)一次请求内有效
session(HttpSession类)一个会话范围内有效
application(ServletContext)整个web工程范围内有效
优先顺序:从小到大
pageContext======>request======>session=======>application
9、jsp静态包含
图解:
代码:
<%@include file ="/include/footer.jsp"%>
特点:
- 静态包含不会翻译被包含的jsp页面
- 静态包含其实是把被包含的位置进行输出
10、jsp动态包含
底层原理:
代码:
<jsp:include page="/include/footer.jsp">
传参数给footer页面
<jsp:param name="username" value="root"/>
</jsp:include>
footer.jsp页面使用
<%=request.getParameter("username")%>
获取传递过来的参数
特点:
- 动态包含会把包含的jsp页面翻译为java代码
- 动态包含底层原理代码会区去调用被包含的jsp页面执行输出
- 可以给被包含的页面传递参数
11、jsp请求转发
代码:
<jsp:forward page="/footer.jsp"></jsp:forward>
12、请求转发的使用
est.getParameter(“username”)%>
获取传递过来的参数
特点:
1. 动态包含会把包含的jsp页面翻译为java代码
2. 动态包含底层原理代码会区去调用被包含的jsp页面执行输出
3. 可以给被包含的页面传递参数
# 11、jsp请求转发
代码:
```
<jsp:forward page="/footer.jsp"></jsp:forward>
```
# 12、请求转发的使用
![image-20210121212133632](https://img-blog.csdnimg.cn/img_convert/67d0bb81dafe9b6b4b9db363a843ee16.png)