目录
1. page------练习(errorPage,import)
2.pageContext---练习(findAttribute)
JSP
一.JSP简述&和HTML区别
JSP全名是Java Server Pages, Java服务器页面
它是建立在Servlet规范之上的动态网页开发技术.
JSP:可以写Java代码
JSP本质:Servlet
JSP是Java独有,除了可以书写HTML/CSS/JS代码,
更支持书写Java代码和EL表达式等强大功能。
扩展名: .jsp
- JSP:动态效果、静态效果 (早出现)
- HTML:静态效果。 (HTML+JS+VUE)
二.JSP原理
小结: JSP被修改后的第一次才会出现翻译、编译、执行过程
JSP被修改后的第N次,直接执行servlet(无翻译、编译过程)
三.JSP基本语法
1.脚本元素
允许在JSP上书写Java代码。
格式: <% java代码 %>
代码:
<%
//java代码
String str = "么么哒";
//输出页面
out.write("<h1>"+str+"</h1>");
%>
2.脚本表达式(了解)
替代out.write()进行页面展示。
格式:<%=数据/变量 %>
<%
//java代码
String str = "么么哒";
//输出页面
out.write("<h1>"+str+"</h1>");
%>
<%="<h1>"+str+"</h1>"%>
3.JSP注释
JSP页面上ctrl+/
格式: <%-- JSP注释 --%>
HTML注释:主要出现HTML页面源码中
Java注释:主要出现在翻译后的Java代码中,JSP源码中
JSP注释:仅出现JSP源码中。
建议:写JSP注释
四.JSP指令
JSP指令,可以大大节约Java代码的时间。
1. page------练习(errorPage,import)
页面指令
<%@ page 属性名1= "属性值1" 属性名2= "属性值2" ...%>
属性名称 | 取值or范围 | 描述 |
pageEncoding | 当前页面 | 指定页面编码格式 utf-8 |
contentType | 有效的文档类型 | 客户端浏览器根据该属性判断文档类型,例如: HTML格式为text/html 纯文本格式为text/plain JPG图像为image/jpeg GIF图像为image/gif Word文档为application/msword |
|
|
|
buffer | 8kb | jsp缓存大小 |
autoFlush | true / false | 是否自动刷新 |
|
|
|
errorPage | 某个JSP页面的相对路径 | 指定一个错误页面,如果该JSP程序抛出一个未捕捉的异常,则转到errorPage指定的页面。errorPage指定页面的isErrorPage属性为true,且内置的exception对象为未捕捉的异常 页面出错,就进行跳转(请求转发)
|
isErrorPage | true / false | 指定该页面是否为错误处理页面,如果为true,则该JSP内置有一个Exception对象的exception,可直接使用。默认情况下,isErrorPage的值为false |
|
|
|
import | 任何包名、类名 | 指定在JSP页面翻译成的Servlet源文件中导入的包或类。import是唯一可以声明多次的page指令属性。一个import属性可以引用多个类,中间用英文逗号隔开。 Alt+回车 |
language | java | 指明解释该JSP文件时采用的语言,默认为Java |
session | true、false | 指明该JSP内是否内置Session对象,如果为true,则说明内置Session对象,可以直接使用,否则没有内置Session对象。默认情况下,session属性的值为true。需要注意的是,JSP 引擎自动导入以下4个包: java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.* |
代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="/demoxx.jsp" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
int a = 1/0;
%>
</body>
</html>
demoxx.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>客官,小二出错了
<%=exception.getMessage()%>
</h1>
<img src="img/err.png" width="600"/>
</body>
</html>
2.include
合并JSP文件
<%@ include file="被包含的文件地址"%>
Demo3_1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String str = "小煌煌";
%>
</body>
</html>
Demo3_2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%@ include file="/demo3_1.jsp"%>
<%=str%>
</body>
</html>
3.taglib---练习(jstl)
导入标签库。
JSTL标签
导入jar包:
代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<c:if test="">
</c:if>
</body>
</html>
五.JSP九大内置对象
1.简述
内置对象:JSP内部已经定义好的对象,程序员只需使用即可
名称 | 类型 | 描述 |
out | javax.servlet.jsp.JspWriter | 用于页面输出 |
request | javax.servlet.http.HttpServletRequest | 得到用户请求信息, |
response | javax.servlet.http.HttpServletResponse | 服务器向客户端的回应信息 |
config | javax.servlet.ServletConfig | 服务器配置,可以取得初始化参数 |
session | javax.servlet.http.HttpSession | 用来保存用户的信息 |
application | javax.servlet.ServletContext | 所有用户的共享信息 |
page | java.lang.Object | 指当前页面转换后的Servlet类的实例 |
pageContext | javax.servlet.jsp.PageContext | JSP的页面容器 最小域对象,当前页面 |
exception | java.lang.Throwable | 表示JSP页面所发生的异常,在错误页中才起作用 isErrorPage=”true” |
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
exception.getMessage();
%>
</body>
</html>
2.pageContext---练习(findAttribute)
最小的域对象,作用范围仅限于当前JSP页面。几乎不向pageContext作用域存储键值对
1. 获取其他八大内置对象(了解)
例如:getRequest()
getSession()
例如:定义一个方法,需要传递JSP九大内置对象,传递pageContext
2.findAttribute查找键值对
可以去JSP四大作用域,查找键值对:pageContext,request,session,application
Object 值 = findAttribute(“名”);
查找顺序:pageContext,request,session,application
找到就返回,找不到就去更大作用域查找,都找不到,返回null
3.out (了解)
用于进行页面输出展示
和response.getWriter()区别
六.JSP四大作用域
scope:范围、域
PageContext常量名 | 描述 | 作用域名称 | 域对象类型 |
PageScope | 当前页面中有效 页面范围(最小) JSP独有的 | pageContext | PageContext |
RequestScope | 一次请求范围 请求范围 | request | HttpServletRequest |
SessionScope | 一次会话范围 会话范围 | session | HttpSession |
ApplicationScope | 应用范围(最大) | application | ServletContext |
pageContext不作为域对象使用,太小了
优先考虑:request,request用不了,考虑session,session用不了,最后考虑servletContext
看完恭喜你,又知道了一点点!!!
你知道的越多,不知道的越多!
~感谢志同道合的你阅读, 你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!
注: 如果本篇有需要改进的地方或错误,欢迎大神们指定一二~~