JSP操作笔记

一、前言

什么是JSP?
就是Java Server Pages:java服务器端页面,也是也和servlet一样,开发动态web技术

最大的特点:

  • 写JSP代码就如同写HTML代码

区别:

  • HTML只给用户提供静态数据
  • JSP页面中可以嵌入java代码,为用户提供动态数据

二、通过阅读原码剖析JSP原理

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

  • 代码层面没有任何问题
  • 服务器内部工作
tomcat中有一个work目录,IDEA中使用Tomcat的会在IDEA的Tomcat中生产一个work目录

在这里插入图片描述
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet
JSP最终也会被转换为Java类,JSP本质上就是一个Servlet!

在这里插入图片描述

  1. 判断请求
  2. 内置一些对象

在这里插入图片描述

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

在这里插入图片描述

  1. 以上这些对象我们可以在JSP页面中直接使用

访问jsp页面流程图如下:

在这里插入图片描述我们先来一段JSP代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    String name = "徐志斌";
%>

name:<%=name%>
</body>
</html>

在JSP页面中,只要是java代码,就会原封不动的输出
如果是HTML代码,就会被被转换为:out.write(“name:”)这样的格式输出到前端页面

在这里插入图片描述

三、JSP基础语法(重点)

任何语言都有自己的语言,JSP作为java技术的一种应用,它有一些自己扩充的语法(了解即可),java所有的语法都支持。

1.JSP表达式

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

2.JSP脚本片段

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

JSP脚本片段的再实现:

<%
    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 World <%=i%> </h1>
  <%
    }
  %>

3.JSP声明

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

jsp声明:会被编译到jsp生成的java类的类中,其他的就会被生成到 _jspService方法中

在这里插入图片描述

四、JSP指令(了解)

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

@include会将两个页面合二为一
<%@include file="common/header.jsp"%>
<h1>网页主体</h1>
<%@include file="common/footer.jsp"%>

jsp标签:
jsp:include:拼接页面,本质还是三个
<jsp:include page="/common/header.jsp"/>
<h1>网页主体</h1>
<jsp:include page="/common/footer.jsp"/>

五、九大内置对象

  1. PageContext 可存储数据
  2. Request 可存储数据
  3. Response
  4. Session 可存储数据
  5. Application (ServletContext) 可存储数据
  6. config (ServletConfig)
  7. out
  8. page 基本没人用
  9. exception
// 内置对象,存储数据
    pageContext.setAttribute("name1","徐志斌1号"); //保存的数据只在一个页面中有效
    request.setAttribute("name2","徐志斌2号"); //保存的数据只在一次请求中有效,请求转发会携带这个参数
    session.setAttribute("name3","徐志斌3号"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
    application.setAttribute("name4","徐志斌4号"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器

request:客户端向服务器发送请求,产生的数据用户看完就没用了。比如:新闻,用户看完没用了

session:客户端向服务器发送请求,产生的数据用户看完就没用了还有用。比如:购物车

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

猜你喜欢

转载自blog.csdn.net/weixin_46594796/article/details/109448366