JSP基本应用

JSP

定义

java server page是sun公司制定的一种用于在服务端生成动态页面的技术规范

产生原因

因为直接使用servlet,虽然可以生成页面,但是编程复杂(使用大量的out.print输出数据,不方便),并且维护困难,所以sun制定jsp规范

编写JSP

  1. 定义一个jsp文件

  2. 实现业务:html+css+js

    java代码:<%java代码块%>
        <%=jsp表达式%>
        <%!jsp申明%>
    

执行流程

  1. 文件转成java文件,html标签通过out.writes输出,jsp表达式通过out.print输出,jsp声明给servlet添加了新的成员变量定义以及新的方法,java代码块原样照搬到service方法体
  2. 容器负责创建java对象(本质上就是servlet),初始化,就绪,销毁整个调用过程

指令

定义

所谓的jsp指令,指的是告诉jsp引擎将jsp文件转成java文件时做的一些额外的处理

语法

<%@ 指令名 属性名=属性值%>

比如:page

  • pageEncoding:设置当前页面的编码格式
  • content-type:设置响应消息头
  • import:导包
  • session:true(缺省值)/false
  • errorPage:指定错误页面
  • isErrorPage:true/false(缺省值)
  • include指令:将多个页面中相同的部分使用单独的一个jsp页面进行封装,最后使用include指令引入
  • file:需要引入文件的路径

隐含对象

定义

在jsp页面中,不需要声明并赋值就可以直接使用的对象。

对象

  • out

  • request

  • response

  • session

  • application(servletContext)

  • exception:异常对象,容器会将jsp页面中的异常信息封装到exception中,在当前页面设置

  • isErrorPage:true才能使用该对象

  • page:jsp实例

    ​ 作用1:绑定数据setAttribute(String name,Object obj)/getAttribute(String name);

    ​ 作用2:通过该对象可以获取其他8个隐含对象

  • config:相当于servletConfig,获取初始化参数值

注释

<!--注释内容-->		内容不输出,java代码会执行
<%--注释内容--%>	内容不输出,java代码也不执行

JSP标签

定义

jsp是sun公司制定的一种技术规范,用于将jsp页面中的java替换成类似于html的标签,便于后期扩展和维护。

jstl

如何使用标签

  1. 引入jar包:jstl.jar与standard.jar
  2. 在jsp页面使用指令引入标签库:<%@taglib uri="命名空间" prefix="前缀"%>
  3. 在jsp页面使用标签元素

常用标签

if判断
<c:if test="true" var="f" scope="">标签体</c:if>
--test:true/false,如果返回ture,则执行标签体,反之,不执行
 var:指定一个绑定名,绑定值是test属性的返回值
 scope:指定绑定范围
choose分支
<c:choose>
    <c:when test=""></c:when>
    <c:otherwise></c:otherwise>
 </c:choose>
 --when标签至少出现一次,test=true/false
  otherwise标签最多出现一次
forEach循环遍历
 <c:forEach items="${list}" var="" varStatus="">循环体</c:forEach>
 --items:指定需要遍历的集合
  var:指定绑定名,绑定值是当前遍历的元素,默认绑定到pageContext
  varStatus:指定绑定名,绑定值是一个java对象,封装了当前遍历的信息,比如当前遍历的次数
(count),下标(index)

 遍历数值:<c:forEach begin="" end="" var="">循环体</c:forEach>
 begin:开始遍历数值  end:结束遍历数值  var:指定一个绑定名,绑定值是当前遍历的数值

EL表达式

定义

sun定义的一种计算规则,可以用来给标签的属性赋值,也可以直接在页面输出

语法

$(表达式)

使用

访问bean属性
  1. 写法1:${绑定名.属性名}
    • 容器根据绑定名依次从pageContext,request,session,application四个对象中查找绑定值,找到则返回绑定值,未找到,返回""
    • 找到绑定值之后,调用get***方法获取属性值
    • 可以指定查找范围,在绑定名前添加pageScope,requestScope,sessionScope,applicationScope
  2. 写法2:${绑定名[“属性名”]}
    • []中可以写下标,通常用于访问数组中的元素
    • []中写绑定名,如果[]中的内容不加”“,容器则将其当成绑定名处理,如果加”“,则当成属性处理
常规的运算
  • 算术运算 + - * /
  • 逻辑运算 && || !
  • 关系运算 > < >= <=
空(empty)运算
  1. 绑定值是 “”
  2. 绑定值是 null
  3. 绑定值是 空的集合
  4. 绑定值是 值不存在
获取请求参数值

/servlet03/el01.jsp?name=user01&city=nj&city=nj
参数名唯一: p a r a m . 参 数 名 参 数 名 不 唯 一 : {param.参数名} 参数名不唯一: param.:{paramValues.参数名[下标]}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值