Java Server Pages

19 篇文章 0 订阅
  • JSP:它是和Servlet技术一样,都是SUN公司定义的一种用于开发动态WEB资源的技术,JSP实际上就是Servlet
  • JSP执行原理
    在这里插入图片描述

当浏览器发送请求给服务器时,访问index.jsp,会先创建一个index_jsp.java\index.jsp.class,在服务器work目录下,而这个类其实就是一个servlet底层代码实现就是继承了HttpServlet

  • 最佳实践
    Servlet:控制器。重点编写Java代码逻辑(获取表单数据、处理业务逻辑、分发转向)
    JSP:代码显示模板。重点在于显示数据

JS的基本语法

  • JSP模板元素
    网页的静态内容,如:html标签和文本;
  • JSP的脚本
    小脚本:<%java代码%>
    表达式:<%=2+3%>等价于out.print(2+3)
    声明<%!%>表示在类中定义全局成员、和静态块
  • JSP注释
    JSP注释:<%- -被注释的内容- -%>特点:安全、高效
    网页注释:<!-- 网页注释 – 特点:不安全,费流量,因为会从服务器写到客户端去,没必要

JSP的3个指令

  • JSP指令:是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引挚如何处理JSP页面中的其他部分;
  • page:配置指令
    作用:用于定义JSP页面的各种属性
    language=“java”:表示支持JAVA语言
    import:导包
    session:true/false;如果是true创建session,如果是false不创建
    buffer=“none/8kb/sizekb”;缓冲区大小
    autoFlush=“true/false”;自动刷新
    isThreadSafe=“true/false”
    info=“text”;输出页面基本信息
    errorPage=“url”;当jsp中报错,就跳到些url页码
    isErrorPage=“true/false”
    contentType=“text/html;charset=utf-8”;
    pageEncoding=“characterSet/ISO-8859-1”
    isELIgnored;是否支持EL表达式,默认是false表示支持
  • include指令
    静态包含:把其它资源包含到当前页面中
    <%@ include file="/include/header.jsp" %>
    动态包含:
    <jsp:include page="/include/header.jsp"></jsp:include>
    两者的区别:
    静态:在编译时把两个文件合并
    动态:不会合并文件,当代码执行到include时,才包含另一个文件的内容
    原则:能用静的就不用动的
  • taglib
    作用:在jsp页面中导入JSTL标签库。替换jsp中的java代码
    <%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %> c是别名

JSP的6个动作

  • jsp:useBean创建一个对象
  • jsp:setProperty设置对象的属性
  • jsp:getProperty取出指定对象的属性值
    在这里插入图片描述
  • jsp:include动态导入
  • jsp:forward请求转发
  • jsp:param设置请求参数

在这里插入图片描述

9大内置对象

  • 指在jsp的<%=%>和<%%>中可以直接使用的对象
    在这里插入图片描述
  • pageContext(重要)
    1、本身也是一个域对象:它可以操作其它三个域对象(request、application、Session)的数据
    void setAttribute(String name,Object value)
    Object getAttribute(String name)
    void removeAttribute(String name);
    操作其它域对象
    void setAttribute(String name, Object value, int Scope)
    Object getAttribute(String name, int Scope)
    void removeAttribute(String name)
    Scope的值:
    PageContext.PAGE_SCOPE
    pageContext.REQUEST_SCOPE
    pageContext.SESSION_SCOPE
    pageContext.APPLICATION_SCOPE
    findAttribute(String name);自动从pare.request,session,application依次查找,找到了就取值,,结束查找;
    2、它可以创建其它8个内置对象
    在普通类中可以通过pageConext获取其它JSP隐式对象,自定义标签就使用
    3、提供了简单的方法
    pageContext.forward(“2.jsp”);
    pageContextinclude(2.jsp);

四大域对象实际开发

PageContext:存放数据当前页面有效,开发时使用较少
ServletRequest:存放数据在一次请求(转发内)有效,使用非常多
HttpSession:在放数据在一次会话中有效,使用比较多,如:存放用户的提交信息,购物车功能
ServletContext:存放数据在整个应用范围内有效,因为范围太大,尽量少用,可以用来记录在线人数

EL表达式

  • 要简化JSP中java代码的开发,它不是一种语言,是jsp中获取数据的一种规范;

  • 获取数据
    EL表达式只能获取存在4个作用域中的数据
    ${u}原理:pageContext.findAttribute(“u”)
    EL获取对于null的数据,在页面表现为""字符
    ${u.nam } == u.getName();
    点(.)运算符相当于调用get方法,
    ${u.name } == ${u[‘name’] } == ${u[“name”]}
    在这里插入图片描述

  • 运算
    empty:判断null,空字符串和没有元素的集合,如果为null就返回true
    三目运算符:${ empty list3 ? “您还没有买商品” : “您的商品如下”}

  • 11个隐式对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

JSTL

  • 什么是jstl?:JSTL是jsp标准标签库
  • JSTL的作用:使用JSTL实现JSP页面中逻辑处理。如判断、循环
  • JSTL
    1、在jsp页面添加taglib指令:

<%@ table uri =“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<c:if test=""> < /c:if>

  • 通用标签
    set:定义变量
    out:输出变量
    remove:删除变量
    在这里插入图片描述
  • 条件标签
    在这里插入图片描述
  • 迭代标签(也就是循环)
    普通循环&&增强循环
    在这里插入图片描述

forEach中的varStatus属性
指向一个字符串,该字符串引用一个对象,map.put(“vc” ,一个对象)
这个对象记录着当前遍历的元素的一些信息
getIndex();返回索引,从0开始
getCount();返回计数,从1开始
isLast();是否是最后一个数,
isFirst();是否是第一个数
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值