JSP第一篇(基本语法、指令、九大内置对象、EL表达式)

JSP

java server page
实质:是servlet
jsp------>转成java文件-------->编译成class文件--------->类加载器加载-------->_jspInit()------->_jspService()-------->_jspDestroy()
jsp文件就是在html中嵌入java代码
jsp和servlet区别:servlet用java代码编写,适合做控制器;jsp有html代码,适合做动态页面

  1. 基本语法
    1.1 表达式
    <%=“hello” %> 等价于输出语句 <% out.write(“hello”); %>
    1.2 语句块
    <% 写符合java语法的代码 %>
    1.3 声明
    <%! int x; %> 声明为类的成员
    1.4 注释
    <%-- <%=10 %> --%> jsp注释,页面不显示,被注释的代码不会被解析执行
    <! – <%=10 %> – > html注释,页面不显示,被注释的代码会被解析执行
    <% //int i = 10; %> java注释
  2. 指令
    静态指令:<%@ page <%@ include <%@ taglib
    动态指令:<jsp:include <jsp:forward <jsp:param
    2.1 <%@ page
    定义页面的整体结构
    <%@ page language=“java” contentType=“text/html; charset=UTF-8”
    pageEncoding=“UTF-8” import=“cn.tedu.bean.User”%>
    2.2 <%@ include
    包含
    <%@ include file=“a.jsp” %> 在转成java文件时,把a.jsp的内容包含进来,生成一个文件,a.jsp不生成java文件
    2.3 <%@ taglib
    2.4 <jsp:include
    相当于request.getRequestDispatcher(“a.jsp”).include(request, response);
    < jsp:include page=“a.jsp”>< /jsp:include> 在发送请求时,把a.jsp的内容包含进来,生成两个文件
    < jsp:include page=“a.jsp”>
    < jsp:param value=“admin” name=“name”/>
    < /jsp:include>
    通过< jsp:param 给a.jsp传值
    2.5 <jsp:forward
    相当于request.getRequestDispatcher(“a.jsp”).forward(request, response);
    < jsp:forward page=“a.jsp”>
    < jsp:param value=“admin” name=“name”/>
    < /jsp:forward>
    通过< jsp:param 给a.jsp传值
    2.6 <jsp:param
    用来传值
  3. 九大内置对象
    都定义在_jspService()中,只能在该方法中使用
    3.1 PageContext pageContext
    存储数据,数据默认在当前页面有效
    3.2 HttpServletRequest request
    3.3 HttpSession session
    3.4 ServletContext application
    3.5 HttpServletResponse response
    3.6 JspWriter out
    3.7 Throwable exception
    3.8 Object page
    3.9 ServletConfig config
    配置jsp初始化参数
<servlet>
 	<servlet-name>demo</servlet-name>
 	<jsp-file>/jsp7.jsp</jsp-file>
 	<init-param>
 		<param-name>name</param-name>
 		<param-value>admin</param-value>
 	</init-param>
 	</servlet>
<servlet-mapping>
 	<servlet-name>demo</servlet-name>
 	<url-pattern>/jsp7.html</url-pattern>
</servlet-mapping>
  1. EL表达式
    简化页面输出
    4.1 语法:$ {表达式}
    字符串 ------ $ { “hello” }
    对象 ------- $ { stu.name } ------- $ { 键名.属性名.属性名… }
    数组 ------- $ { attr[0] }
    list集合 --------$ { list[0].name } ------- $ { 键名[角标] }
    map集合 ---------$ { map.email } -------- $ { 键名.map集合存储的键名 }
    4.2 作用域查找顺序
    pageContext —> request —> session —> application
    注意:每次查找都是从小到大查找,找到了则获取,不再继续找了;找不到什么都不做,也不报错。
    4.3 逻辑运算
    ${逻辑表达式}
    ${算数表达式}
    ${关系表达式}
    注意:+是算术运算,不是字符链接,EL表达式进行字符链接会报错。
    4.4 EL表达式的空值判断
    ${empty s}
    4.5 EL的11个内置变量
    4.5.1 和范围相关的4个变量
    pageScope、requestScope、sessionScope、applicationScope
    指定查找:
    $ {pageScope.键名} — $ {requestScope.键名} — $ {sessionScope.键名} — $ {applicationScope.键名}
    4.5.2 和表单相关
    param、paramValues
    $ { param.name } 相当于 out.write(request.getParameter(“name”));
    $ { paramValues.like[0] } 相当于 out.write(request.getParameterValues(“like”)[0]);
    4.5.3 和header相关
    header、headerValues
    ${ header }返回所有请求头数据,相当于 out.write(request.getHeader());
    ${ header[“accept-language”] }返回指定键名的请求头数据,相当于 out.write(request.getHeader(“accept-language”));
    ${ headerValues[“accept-language”] }返回指定键名(同键不同值)的值的数组,相当于 out.write(request.getHeaders(“accept-language”));
    4.5.4 和Cookie相关
    cookie
    ${cookie }返回所有存储了Cookie对象的Map集合
    ${cookie.JSESSIONID }返回指定的Cookie对象
    ${cookie.JSESSIONID.name }返回指定的Cookie对象存储数据的键名
    ${cookie.JSESSIONID.value }返回指定的Cookie对象存储数据的值
    4.5.5 其它
    initParam
    $ { initParam.fileName } 相当于 out.write(application.getInitParameter(“fileName”));
    pageContext
    ${ pageContext.session.id }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值