您的位置:首页 > Web前端 > JavaScript

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

2017-03-09 14:31 573 查看
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 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息