JSP:Java Server Pages.jsp与servlet一样,是在服务器端执行的。
JSP可以理解为在html中嵌入java代码。
Servlet可以理解为在java代码中嵌入htm。
JSP脚本:
1、<% java代码%>—内部的java代码翻译到service方法的内部
2、<%=java变量或者表达式>—被翻译为service方法内部out.print()
3、<%!java代码%>—被翻译为servlet的成员的内容
JSP三个指令
1、page指令:创建JSP时,默认创建的第一行
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
page中常用的属性:
language:设置JSP中嵌入的语言种类
pageEncoding:当前JSP文件的本身编码
session:是否JSP在翻译时自动创建session。
import;导入java的包
errorPage:指定当前页面出现错误时,跳转到某个页面
isErrorPage:当前页面是一个处理错误的页面
2、include指令
将一个JSP页面包含到另一个JSP页面中。
<%@ include file="被包含的文件地址"%>
3、taglib指令
JSP页面中引入标签库
JSP9个内置/隐式对象
out:页面输出
request:得到用户请求信息
response:服务器向客服端的回应信息
config:服务器配置,可以取得初始化参数
session:用来保存用户的信息
application:所有用户的共享信息
page:指定当前页面转换后的Servlet类的实例
pageContext:JSP的页面容器
exception:表示JSP页面所发生的异常,在错误页中才起作用
OUT对象:
out类型:JspWrite。
out作用:让客户端输出内容-----out.write()。
荒古遗尘
<%
out.write("圣耀救赎");
response.getWriter().write("苍穹幕落");
%>
<%="夜语黑瞳" %>
输出结果为
输出的结果并没有像Jsp中的顺序进行输出,而是response中的先输出,其余的则按照顺序进行输出。
在这四个输出语句中,response指向了response域,其余三个则按照顺序指向了out域,在进行执行时,则将这三个转移到response域中,所以是response语句内容先显示,其余的按照顺序显示。
在page中有buffer属性,默认为8kb,是设置out域大小的属性。若改为0kb。则全部按照顺序指向response域
四大作用域:
page域:当前JSP页面范围
request域:一次请求
session域:一次会话
application域:整个web应用
JSP运行原理
当第一次访问JSP时,会向Servlet容器发送请求,servlet容器将JSP页面转换为servlet代码(.java),再编译成.class文件进行调用。如果再次访问jsp页面时,跳过翻译和编译的步骤直接进行调用。