初识JSP之JSP内置对象,JSP三大指令,EL内置对象

1、JSP基本介绍

JSP:是开发动态资源的一种技术
Servlet:也是开发动态资源的一种技术

JSP:不光可以写HTML代码,还可以写Java代码

JSP执行:

1.当我们通过浏览器来访问指定的JSP页面的时候,请求会发送到tomcat服务器,tomcat服务器会将JSP文件翻译成.java文件放到tomcat服务器的work目录下面

2.tomcat服务器会将上面翻译成功的 .java源文件编译成.class结尾的字节码文件

3.tomcat服务器会创建该字节码文件对应的对象

4.tomcat服务器调用对象中的方法 JSP就是Servlet

Servlet可以做的事情,JSP都可以做,但是JSP能做的事情,Servlet不一定能做
JSP的声明周期:
1.把jsp翻译成.java
2.把.java编译成.class
3.构造方法
4.init
5.Service
6.destory
关于上面的若干步骤:

第一次访问JSP的时候会走1,2,3,4,5,6
第二次访问JSP文件的时候,如果JSP文件没有修改,直接走5
第二次访问JSP文件的时候,如果JSP文件修改了,走1,2,3,4,5

2、JSP语法:
JSP表达式:
基本语法:<%=变量%> 这个代码会翻译成out.print("变量");会向浏览器输出内容
JSP脚本:把我们的java代码原封不动的拷贝到jspService中执行

<%
    java代码
%>

JSP声明:JSP声明变量会变成类的属性,方法会变成类的方法

<%!
    变量
    方法
%>

脚本和声明的区别:

1.脚本中的代码会原封不动的拷贝到JspService中执行,声明中代码会变成对应类的属性和方法
2.脚本中不可以写方法,JSP声明中才可以写方法

HTML注释: 会翻译成对应的java代码
JSP注释:<%–JSP注释–%>不会翻译成对应的java代码

3、JSP内置对象
JSP一共有九大内置对象:

request:

response:

exception:

session:

config:就是ServletConfig

application:就是ServletContext

page:当前JSP对象

out:

pageContext

Out内置对象:(掌握)
response的getWriter方法得到的对象是printWriter对象
response.getWriter().write(“xxxx”);
JSP中内置的out是JspWriter对象
JSPWriter其实内部任然使用printWriter来向客户端写数据
JSPWriter内部维护了一个缓冲区,缓冲区的默认大小是8kb,当缓冲区满了\手动巧用flush方法刷新缓冲区\关闭流等等情况出现的时候,才会调用printWriter的write来想客户端写数据

pageContext:(掌握)

PagesContext的作用:(掌握)
1.可以直接获取其他8个域对象

    pageContext.getOut();
    pageContext.getSession();
    pageContext.getRequest();
    pageContext.getResponse();
    pageContext.getServletContext();
    pageContext.getServletConfig();
    pageContext.getException();
    pageContext.getPage();

2.可以存储数据(了解即可)

/* 存到request域对象中 */   key   value        保存的域的信息
pageContext.setAttribute("age", "18",PageContext.REQUEST_SCOPE);
/* 存到session域对象中 */
pageContext.setAttribute("aa", "aa1",PageContext.SESSION_SCOPE);
/* 存到Application域对象中 */
pageContext.setAttribute("bb", "bb1",PageContext.APPLICATION_SCOPE);
/* 存到page域对象中 */
pageContext.setAttribute("cc", "cc1",PageContext.PAGE_SCOPE);

注:如果存储数据的时候没有指定所要存储的域的信息,则默认保存到page域

4、JSP的三大指令
include指令
page指令
taglib指令

1、include指令

<%@ include file="/head.jsp" %>

内部做了什么?
其实,include指令会将被包含的页面内容放到当期按的页面中,然后一起合并并翻译成一个.java文件
注:在被包含的页面中不建议有等标签,直接写内容就可以
2.Page指令

<%@ page 
        language="java"        含义是用什么语言来翻译当前jsp代码
        import="java.util.*"导入当前的jsp文件需要的jar包,过个包用","隔开
        contentType="text/html; charset=UTF-8" 服务器发送给浏览器的内容格式以及内容编码
        pageEncoding="UTF-8"     告诉浏览器使用什么编码来翻译该jsp文件
        errorPage="error2.jsp"   指定错误处理的页面
        isErrorPage="true"       当前页面是否可以进行错误处理
        %>

5、EL表达式(重点)
EL的作用:主要是为了替换jsp表达式,向浏览器输出域对象中的值或者表达式计算结果
EL的语法:${变量或者表达式}

EL的作用:可以获取域对象中的值

${pageScope.name}            获取page域中的name值
${sessionScope.name}       获取session域中的name值
${requestScope.name}      获取Request域中的name值
${applicationScope.name}获取application域中的name值
${name}代表的含义:首先会从page域中查找是否有name,没有继续从request中查找,接着从session中查找

EL的内置对象:
pageContext:域对象
param:请求参数

pageContext:可以在el表达式中通过pageContext来获取其他jsp的内置对象
    ${pageContext.request.contextPath }
    ${pageContext.session.id }
    ${pageContext.servletContext }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值