博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP笔记
阅读量:6002 次
发布时间:2019-06-20

本文共 1759 字,大约阅读时间需要 5 分钟。

hot3.png

一、内置对象、域对象

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

二、JSP中的Java元素

<%! int i = 0; >
int i = 0;
<% out.println("你的 IP 地址 " + request.getRemoteAddr());%>
out.println("你的 IP 地址 " + request.getRemoteAddr());
<%= %>

三、指令与动作

指令有三种

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

动作有十种

  • jsp:include
  • jsp:forward

include指令与动作的区别:include指令是在JSP编译成servlet之前将页面合并,include动作是在执行servlet时引入指定的资源;

四、page指令详解

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

1.charset=UTF-8和pageEncoding="UTF-8"的区别

pageEncoding是jsp文件本身的编码

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才被创建 

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

转载于:https://my.oschina.net/u/3160411/blog/1505759

你可能感兴趣的文章
CSS Sprites
查看>>
10进制转化成2进制,16进制
查看>>
markdown 语法汇总
查看>>
自动登录
查看>>
11.表达式语言
查看>>
3.数据校验和SpringEL
查看>>
面向对象编程-何为对象
查看>>
微信公众平台开发文摘
查看>>
OAF_OAF控件系列1 - Region Type汇总(概念)
查看>>
SPSite, SPWeb Dispose and Class Design Partter
查看>>
品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署
查看>>
alter table添加表约束
查看>>
C# 模拟提交 Form表单的数据
查看>>
shell脚本加密
查看>>
java二维数组求每行最大值,每列最小值,及输出数组主对角线上的元素
查看>>
java代码包装类----------Integer
查看>>
python(56):正则表达式积累
查看>>
发送短信验证码-node+阿里云短信
查看>>
04-爬取单个英雄联盟英雄的符文图片
查看>>
《人员管理》读书笔记
查看>>