JSP笔记

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

指令有三种服务器

  • <%@ page >
  • <%@ include >
  • <%@ taglib >

动做有十种session

  • jsp:include
  • jsp:forward

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的过程;

相关文章
相关标签/搜索