1、内置对象、域对象html
NO. | 内置对象 | 类型 |
1 | pageContext | javax.servlet.jsp.PageContext |
2 | request | javax.servlet.http.HttpServletRequest |
3 | response | javax.servlet.http.HttpServletResponse |
4 | session | javax.servlet.http.HttpSession |
5 | application | javax.servlet.ServletContext |
6 | config | javax.servlet.ServletConfig |
7 | out | javax.servlet.jsp.JspWriter |
8 | page | java.lang.Object |
9 | exception | java.lang.Throwable |
2、JSP中的Java元素java
<!--声明--> <%! int i = 0; > <jsp:declaration> int i = 0; </jsp:declaration> <!--Java脚本--> <% out.println("你的 IP 地址 " + request.getRemoteAddr()); %> <jsp:scriptlet> out.println("你的 IP 地址 " + request.getRemoteAddr()); </jsp:scriptlet> <!--表达式--> <%= %> <jsp:expression> </jsp:expression>
3、指令与动做express
指令有三种服务器
动做有十种session
include指令与动做的区别:include指令是在JSP编译成servlet以前将页面合并,include动做是在执行servlet时引入指定的资源;app
4、page指令详解jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
1.charset=UTF-8和pageEncoding="UTF-8"的区别编码
pageEncoding是jsp文件自己的编码spa
contentType的charset是指服务器发送给客户端时的内容编码翻译
JSP要通过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页,用的是contentType。
第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),若是pageEncoding设定错了,或没有设定,出来的就是中文乱码。
第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,通过这个阶段的结果所有是UTF-8的encoding的java源码。
若是JSP没有显示的使用 <%@ page session="false"%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = HttpServletRequest.getSession(true);这时session才被建立
5、EL表达式
EL表达式是JavaEE标准,不须要引入任何额外的jar包
${}和<%= %>的区别有
<%=%>里面写的是java代码,${}是EL表达式,能够直接取某个范围内的值
${}EL表达式在JSP2.0以上才支持
${}不能用方法
EL的取值范围是page,request,session,application默认会依次进行选择
${}中使用条件表达式 ${memberUser.sex eq 1 ? "男":"女"}
${}比较 == eq empty not empty !=
${}bool表达式,使用 &&和|| 组合两个表达式
JSP的声明周期与servlet类似,多了一个将JSP解析编译成servlet的过程;