JavaWeb----jsp

13 篇文章 0 订阅

什么是jsp

Java Server Pages:java服务器端页面,也和Servlet一样,用于动态web技术
特点:

  • 写jsp和写HTML类似
  • 区别:
    1. html只能提供静态的数据
    2. jsp页面中可以嵌入Java代码,为用户提供动态数据

jsp原理

浏览器向服务器发送请求,不管访问什么资源本质上都是在访问servlet
JSP最终也会被转化为Java类
JSP本质上就是Servlet(HttpJspBase 继承了 HttpServlet)

//初始化
public void _jspInit(){}
//销毁
public void _jspDestroy(){}
//JSPService
public void _jspService(HttpServletRequest request, HttpServletResponse response){}

1. 判断请求

2. 内置对象

final javax.servlet.jsp.PageContest pageContext;    //页面上下文
javax.servlet.http.HttpSession session = null;      //session
final javax.servlet.ServletContext application;     //application
final javax.servlet.ServletConfig config;           //config
javax.servlet.jsp.JspWriter out = null;             //out
final java.lang.Object page = this;                 //page:当前
HttpServletRequest request                         //请求
HttpServletResponse response                       //响应

3. 输出页面前增加的代码

response.setContentType("text/html"); //设置响应的页面类型
;ageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;

以上的对象都可在jsp页面中直接调用

在这里插入图片描述

jsp基础语法

jsp表达式

<%= 变量或者表达式%>
${}

jsp脚本片段

<%
    ...
%>

jsp声明

<%!
    ...
%>

jsp声明会被编译到Java类中,其他会被生成到_jspService()方法中

jsp指令

<%@page args...$>
<%@include file=""%>

9大内置对象

  1. PageContext 保存的数据在一个页面中有效
  2. Request 保存的数据只在一次请求中有效,请求转发会携带这个数据
  3. Response
  4. Session 保存的数据在服务器中有效,从打开浏览器到关闭浏览器
  5. Application (=ServletContext)
  6. config (=ServletConfig)
  7. out
  8. page
  9. exception

jsp标签,jstl标签,el表达式

maven依赖

<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
</dependency>
<!-- standard标签库 -->
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>

EL表达式

${}

  • 获取数据
  • 执行运算
  • 获取web开发的常用对象
  • 调用java方法 (一般不用)

JSP标签

<jsp:include >
<jsp:forward page="/index.jsp">
    <jsp:param name="name" value="test"></jsp:param>
    <jsp:param name="age" value="18"></jsp:param>
</jsp:forward>

JSTL标签库

JSTL标签库的使用是为了弥补HTML标签的不足,它自定义了许多标签,可以供我们使用,标签的功能和Java代码一样。
使用步骤:

  1. 引入对应的 taglib
  2. 使用其中的方法

核心标签

<%--引入JSTL核心标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
标签描述
<c:out>用于在JSP中显示数据,就像<%= … >
<c:set>用于保存数据
<c:remove>用于删除数据
<c:catch>用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if>与我们在一般程序中用的if一样
<c:choose>本身只当做<c:when>和<c:otherwise>的父标签
<c:when><c:choose>的子标签,用来判断条件是否成立
<c:otherwise><c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import>检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach>基础迭代标签,接受多种集合类型
<c:forTokens>根据指定的分隔符来分隔内容并迭代输出
<c:param>用来给包含或重定向的页面传递参数
<c:redirect>重定向至一个新的URL
<c:url>使用可选的查询参数来创造一个URL
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值