50期Day02 JSP指令

1.JSP是由什么组成的?
html+JAVA脚本+JSP标签

2.Cookie和Session、Application的区别
从存储位置,数据大小,数据类型,过期时间,安全性五方面比较

A (放全局共享变量) 服务器 没有限制 Object(任意都行) 服务器关闭
3.记住用户名:
Cookie

自动登录:
Cookie—name+pwd
访问网站(name+pwd)----->调用登陆 验证方法—》成功,记录session(Filter)

设计自动登录:
在这里插入图片描述
第一次登陆后 若要保存自动登录 则存一个uuid 在cookie里,下次再进行登陆页面的时候判断下uuid 符合条件即可自动登录。(不必再验证账号密码了)

JSP指令

page指令:常用指令

page指令

page指令是最为常用的指定,也是属性最多的属性!
page指令没有必须属性,都是可选属性。例如<%@page %>,没有给出任何属性也是可以的!
在JSP页面中,任何指令都可以重复出现!
<%@ page language=”java”%>
<%@ page import=”java.util.*”%>
<%@ page pageEncoding=”utf-8”%>
这也是可以的!

page指令的pageEncoding

pageEncoding指定当前JSP页面的编码!这个编码是给服务器看的,服务器需要知道当前JSP使用的编码,不然服务器无法正确把JSP编译成java文件。所以这个编码只需要与真实的页面编码一致即可!

page指令的import属性

import是page指令中一个很特别的属性!
import属性值对应import语句。
import属性值可以使逗号:<%@page import=”java.net.,java.util.,java.sql.*”%>

import属性是唯一可以重复出现的属性:
<%@page import=”java.util.” import=”java.net.” import=”java.sql.*”%>

但是,我们一般会使用多个page指令来导入多个包:
<%@ page import=”java.util.”%>
<%@ page import=”java.net.
”%>
<%@ page import=”java.text.*”%>
在这里插入图片描述
在这里插入图片描述
可以根据需要 添加多条page指令。

errorPage配置错误页

在这里插入图片描述
正常的页面报错:
在这里插入图片描述
可以通过 page指令 添加一个 页面报错自动跳转的错误页 的功能。
指定当前页面出错以后 转发到一个目标页面。

在这里插入图片描述

iserrorPage

在错误页面设置,设置当前页面为错误页,isErrorPage设置为true
如果目标页面默认值为false 出错以后跳转到目标页面,状态码还是200.
如果目标页面默认值为true,出错以后跳转到目标页面,状态码还是500.
JSP中的exception内置对象才能使用。
在这里插入图片描述
在这里插入图片描述
这句话用于报出 出错的页面。

以上的配置是针对页面的。

web.xml中配置错误页面,适用于整个系统,我们一般是在配置文件中使用配置错误页面

先设置几个错误页面,供跳转使用。在这里插入图片描述
然后在xml里面写好路径
在这里插入图片描述
现在再出现500、404的时候就会跳到这些页面了。
在这里插入图片描述
在这里插入图片描述

也可以配的更细一些:指定错误的类型。
在这里插入图片描述
现在在页面尝试抛出这个异常
在这里插入图片描述
在这里插入图片描述

成功了。不过这样配没有什么意义,太详细了用户也看不懂。

页面复用:include指令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这时候就已经在加载d的时候吧e的内容加载出来了。
在这里插入图片描述

taglib指令

在这里插入图片描述

JSP九大内置对象

在JSP中无需创建就可以使用的9个对象,它们是:
out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;
config(ServletConfig): ServletConfig;
page(当前JSP的类型):当前JSP页面的“this”,即当前对象;
pageContext(PageContext):页面上下文对象,它是最后一个没讲的域对象;
exception(Throwable):只有在错误页面中可以使用这个对象;isErroPage=”true”
request(HttpServletRequest):即HttpServletRequest类的对象;
response(HttpServletResponse):即HttpServletResponse类的对象;
application(ServletContext):即ServletContext类的对象;
session(HttpSession):即HttpSession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%@page session=”false”%>,说明这个页面不能使用session。

在这9个对象中有很多是极少会被使用的,例如:config、page、exception基本不会使用。
在这9个对象中有两个对象不是每个JSP页面都可以使用的:exception、session。
在这9个对象中有很多前面已经学过的对象:out、request、response、application、session、config。

pageContext对象
  在JavaWeb中一共四个域对象,其中Servlet中可以使用的是request、session、application三个对象,而在JSP中可以使用pageContext、request、session、application四个域对象。

pageContext 对象是PageContext类型,它的主要功能有:
域对象功能;
代理其它域对象功能;
获取其他内置对象;域对象

2.1 域对象功能
  pageContext也是域对象,它的范围是当前页面。它的范围也是四个域对象中最小的!
void setAttribute();
Object getAttrbiute();
void removeAttribute();
在这里插入图片描述

2.2代理其他域对象

虽然用的是pageContext域,但是后面这句代码表名使用的是request域来代理,取的时候要去request里面取。
在这里插入图片描述

上下两句话 作用是一样的

全域查找。:由小到大的找“

在这里插入图片描述
如果不注释,则按照 page requeset session的顺序显示。(注释了page才会显示request)

在这里插入图片描述

注释到这里了,若此时注释了session, 页面显示的还是session。因为session的声明周期没有结束(因为没有关浏览器)

关了浏览器,就会显示application了。

代理其他内置对象,一个顶九个

2.3 获取其他内置对象
一个pageContext对象等于所有内置对象,即1个当9个。这是因为可以使用pageContext对象获取其它8个内置对象:
JspWriter getOut():获取out内置对象;
ServletConfig getServletConfig():获取config内置对象;
Object getPage():获取page内置对象;
ServletRequest getRequest():获取request内置对象;
ServletResponse getResponse():获取response内置对象;
HttpSession getSession():获取session内置对象;
ServletContext getServletContext():获取application内置对象;
Exception getException():获取exception内置对象;
pageContext

通过pageContext的属性可以获得其他内置对象的属性 比如
在这里插入图片描述
out也是内置对象,但是可以通过pageContext的getout方法获得到out的内置对象属性

同样,对于session
在这里插入图片描述
getSession即可

对于request
getRequest即可

JSP动作标签

在这里插入图片描述

JSP动作标签概述

动作标签的作用是用来简化Java脚本的!
JSP动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用。
JavaWeb一共提供了20个JSP动作标签,但有很多基本没有用,这里只介绍最常用的动作标签。
JSP动作标签的格式:<jsp:标签名 …>

jsp:include

jsp:include标签的作用是用来包含其它JSP页面的!你可能会说,前面已经学习了include指令了,它们是否相同呢?虽然它们都是用来包含其它JSP页面的,但它们的实现的级别是不同的!
include指令是在编译级别完成的包含,即把当前JSP和被包含的JSP合并成一个JSP,然后再编译成一个Servlet。
include动作标签是在运行级别完成的包含,即当前JSP和被包含的JSP都会各自生成Servlet,然后在执行当前JSP的Servlet时完成包含另一个JSP的Servlet。它与RequestDispatcher的include()方法是相同的!

jsp:forward

forward标签的作用是请求转发!forward标签的作用与RequestDispatcher#forward()方法相同。

EL表达式:仅用于输出 不能完全替代java

但是页面基本不写java 所以el也够用了。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述、el表达式支持一些运算符,若把表达式放在el里面,则可以进行运算。
在这里插入图片描述

在这里插入图片描述
el表达式还可以用于 直接去req域里面找 名字为a的东西
和上面的getAttribute的用法相同。

alt+s

JavaBean 导航操作:

在这里插入图片描述
在这里插入图片描述
不能这样直接找,s1必须要存到域里面才行,在域里面找到这个s1才能直接点他的属性
在这里插入图片描述

操作map

在这里插入图片描述
在做登陆的时候 比如遇到 验证码不对 账号密码不对 等各种不对,一个个返回很发麻,可以把他们全当做key存在map里面。
在这里插入图片描述
initParam 全局的初始化对象。
在这里插入图片描述

在这里插入图片描述
三种方法 去域里面取值

看到这些要认识。
在这里插入图片描述
在这里插入图片描述

五种方法都可以!!但是最后两个,若找不到a 则会不显示,前面四个会显示null
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
无视图中红线


在这里插入图片描述

在这里插入图片描述


extends RunntimeException在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值