JSP及EL、JSTL标签

一、 Jsp隐含(内置)对象(**)

1、request(*)

  • HttpServletRequest

2、response

  • HttpServletResponse

3、out

  • JSPWriter
  • 类似于PrintWriter

4、config

  • ServletConfig

5、application

  • ServletContext

6、exception

  • Throwable
  • jsp翻译成Servlet所抛出的异常

7、session(*)

  • HttpSession

8、page

  • Object
  • 相当于this,用来指代翻译成的那个Servlet

9、pageContext(*)

  • PageContext
  • 是管理者,通过它可以获取其他8个隐含对象

二、开发模式

1、模式1 (高耦合)

在这里插入图片描述

2、模式2

  • 引入MVC设计模式对代码分层,降低代码的耦合度
  • MVC是经典的设计模式,是代码的分层思想:
  • M:Model,业务层,用来处理业务。
  • V:View,视图层,用来展现数据
  • C:Controller,控制层,用来进行调度,是业务层和视图层的桥梁。其目的是要将代码解耦,便于开发和维护
    在这里插入图片描述

三、转发和重定向

1、转发和重定向的相同点

  • 都是解决WEB组件之间的跳转问题,WEB组件:Servlet/Jsp

2、转发和重定向的区别

  • 依赖时用转发,查询时转发
  • 不依赖时用重定向,增加、修改、删除后重定向到查询
    转发
    -转发的特点
  • 1、一次请求
  • 2、地址不变
  • 3、一个请求只有一个request,两个组件可以用过它共享资源
  • 4、只能转发到项目内部的资源
    重定向
    - 重定向的特点
  • 1、二次请求
  • 2、地址改变
  • 3、二个请求有两个request,两个组件无法通过它共享数据
  • 4、可以重定向到项目外部的资源

四、 EL和JSTL

1、作用

在这里插入图片描述

2、EL表达式的作用

访问Bean的属性

<!-- 如何获取Bean属性 -->
			<!-- request.getAttritube("stu").getName() -->
			<p>姓名:${stu.name}</p>
			<!-- request.getAttritube("stu").getAge() -->
			<p>年龄:${stu["age"]}</p>
			<!-- request.getAttritube("stu".getCourse().getId()) -->
			<p>课程:${stu.course.id}</p>

输出简单的运算结果

<!-- 2.支持运算 -->
			 <p>年龄+5:${stu.age+5}</p>
			 <p>20-30之间:${stu.age>20 && stu.age<30}</p>
			 <p>判空:${empty stu }</p>

获取请求参数

	 <p>参数:${param.user }</p>

3、EL的取值范围

  • EL默认从如下四个隐含对象中依次取值
  • page、request、session、application。
  • 也可以指定取值范围
  • requestScope.stu.name
  • sessionScope.stu.name
  • 设计默认取值的目的是为了开发者不用指定范围,简化EL表达式

4、什么是JSTL

  • Jsp Standard Tag Library,Jsp标准标签库。Apache组织开发后捐献给Sun

4.1 如何使用JSTL

  • 1、将JSTL标签对应的jar文件拷贝到WEB-INF/lib目录下
  • 2、使用taglib指令导入要使用的JSP标签
<%@taglib uri="" prefix=""%>
例如
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  • uri:jsp标签的命名空间
  • prefix:命名空间的前缀
  • 3、foreach标签
 <!-- forEach -->
		 <!--  items:声明遍历的数据
		       var:给每次循环所获得的数据命名-->
		 
		 <p>
		 	<c:forEach items="${stu.interests}" var="i">
		 	 ${i}
		 	</c:forEach>
		 </p>
  • 4、if标签
 <!-- if -->
		 <p>
		 <c:if test="${stu.sex=='M'}">男</c:if>
		 <c:if test="${stu.sex!='M' }">女</c:if>
		 </p>

5、JSTL工作原理

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/superfloat/article/details/89343040
今日推荐