什么是JSP?

1. JSP

1.1 什么是jsp

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

最大的特点:

  • 写JSP就像再写HTML
  • 区别:
    • HTML只给用户提供静态的数据
    • JSP页面中可以嵌入JAVA代码,为用户提供动态数据

1.2 JSP原理

思路:JSP到底怎么执行的!

  • 代码层面没有任何问题

  • 服务器内部工作

    tomcat中有一个work目录

在这里插入图片描述

浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!

JSP最终也会被转换成Java类

JSP本质上就是一个servlet

// 初始化
public void  _ispInit(){

}
// 销毁
public void _jspDestroy(){

}
// JSPService
public void _jspService(.HttpServletRequest request,HttpServletResponse response)
  1. 判断请求
  2. 内置了一些对象

在这里插入图片描述

  1. 输出页面前增加的代码
    在这里插入图片描述

  2. 以上的这些个对象我们可以在JSP页面中使用

在这里插入图片描述

在JSP页面中:

只要是JAVA代码就会原封不动的输出

如果是HTML代码,就会被转化为:

out.write("<html>\r\n")

这样的格式,输出到前端!

1.3 JSP基础语法

任何语言都有自己的语法,JAVA中有,JSP作为java技术的一种应用,它拥有一些自己扩充的语法,java所有语法都支持!

JSP表达式

<%--jsp表达式
作用:用来将程序的输出,输出到客户端!
<%=new 变量或者表达式%>
--%>
<%= new java.util.Date()%>

jsp脚本片段

<%--jsp脚本片段--%>
  <%
  int sum =0;
  for (int i=1; i<=100; i++){
    sum+=i;
  }
  out.println("<h1>Sum="+sum+"</h1>");
  %>

脚本片段的再实现

<%
int x = 10;
out.println(x);
%>
  <p>这是一个jsp文档</p>
<%
int y =20;
out.println(y);
%>

  <hr>
<%--  在代码中嵌入html元素--%>

  <%
  for (int i =0; i<5;i++){

  %>
  <h1>hello</h1>
  <%
    }
  %>

JSP声明

<%!
  static {
    System.out.println("Loading Servlet!");
  }
  private int globalVar = 0;
  public void kuang(){
    System.out.println("进入了方法!");
  }
  %>

JSP声明:会被编译到生成的java的类中!其它的就会被生成到_jspService方法中!

在JSP中嵌入java代码即可!

<%%>
<%= %>
<%!%>

JSP的注释,不会再客户端显示,HTML就会!

1.4 JSP指令

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>
<head>
    <title>Title</title>
</head>
<body>
<%@ include file="common/header.jsp"%>
<h1>网页主题</h1>
<%@ include file="common/footer.jsp"%>

<hr>

<jsp:include page="common/header.jsp"/>
<h1>网页主题</h1>

</body>
</html>

1.5 9大内置对象

  • PageContext 存东西
  • Request 存东西
  • Response
  • Session 存东西
  • Application 【SerlvetContext】 存东西
  • config 【SerlvetConfig】
  • out
  • page
  • exception
pageContext.setAttribute("","");   //保存的数据只在一个页面中有效
request.setAttribute("","");       // 保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("","");       // 保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("","");   // 保存的数据只在服务器中有效,从打开服务器到关闭服务器

request:客户端向服务器发送数据,产生的数据用户看完就没有用了

session :客户端向服务端发送请求,产生的数据,用户用完一会还要用

application: 客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可能使用

1.6 JSP标签,JSTL标签。EL表达式

        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/taglibs/standard -->
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

EL表达式:

  • 获取数据
  • 执行运算
  • 获取web开发的常用对象

JSP标签

<jsp:forward page="/jsp2.jsp">
    <jsp:param name="name" value="value1"></jsp:param>
    <jsp:param name="age" value="value2"></jsp:param>
</jsp:forward>

JSTL表达式

JSTL标签库的使用就是为了弥补HTML标签的不足,他自定义了许多标签,可以供我们使用,标签的功能和java代码一样!

核心标签

在这里插入图片描述

JSTL标签库的使用步骤

  • 引入对应的taglib
  • 使用其中的方法
  • 在Tomact也需要引入jstl的包,否则会报错:JSTL解析错误
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值