7JSP

JSP

1JSP简介

​ 什么是JSP

  • Java Server Pages:Java服务器端页面,也和Servlet一样,用于动态Web技术
  • 写JSP就像在写HTML
  • HTML只给用户提供静态的数据
  • JSP页面可以嵌入java代码,为用户提供动态数据

​ JSP原理

  • 进入到IDEAtomcat的工作区间,可以发现jsp页面转变成了java程序

  • 浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet
  • JSP最终也会被转换成为一个Java类
  • JSP实质上就是一个Servelt

  • 在JSP页面中
  • 只要是JAVA代码就会原封不动的输出
  • 如果是HTML代码,就会被转换成out.write("\r\n");这样的格式输出到前端

2JSP基础语法

  • 任何语言都有自己的语法,jsp作为java技术的一种应用,也有一些自己的扩充语法(了解,知道即可!!)java所有语法都支持!!
 <%--  2.1jsp表达式
    用来将程序的输出 输出到客户端
  --%>
  <%= new java.util.Date()%>
<hr><%--换行--%>
 <%--  2.2jsp脚本片段--%>
  <%
    int sum=0;
    for (int i=0;i<=100;i++){
      sum+=i;
    }
    out.println("<h1>Sum="+sum+"</h1>");
  %>
<%--  2.3在代码中嵌入html元素--%>
  <%
    for (int i=0;i<5;i++){
  %>
  <h1>hello,world <%=i%></h1>
  <%
    }
  %>
<%--2.4jsp声明 --%>
  <%!
    static {
      System.out.println("loading servlet!");
    }
    private int floblavar=0;
    public void fao(){
      System.out.println("loading fao!");
    }
  %>

//补充
//在jsp,嵌入java代码即可!
<%%>
//普通脚本用于在jsp页面执行java语句如实例化对象,调用方法等,在这里面也可以定义变量,但要想输出就得使用out.println()方法

<%=%>
//用于在jsp页面显示(向页面输出,现在在页面上)某个变量值,或方法调用的返回值.

<%!%>
//声明变量和函数,可以由java代码调用。例如<%! String name="yvwenting"%>

<%--注释--%>
//jsp的注释不会在客户端显示,但是HTML的就会!!说明jsp会相较于html更安全
    
//EL表达式:在JSP页面的任何静态部分均可通过:${expression}来获取到指定表达式的值

​ 2.5JSP指令

  • <%@page args......%>:arg经常为errorPage用于指定错误界面
  • <%@include file=""%>:可以将两个页面合二为一
  • <jsp:include page=""/>:拼接页面,本质还是多个,这个常用一点

​ 定制错误界面如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--定制错误界面--%>
<%@ page errorPage="error/500.jsp" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        int i=1/0;
    %>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--错误界面 可以在web/img下放一个500图片 这样更方便 --%>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <img src="web/img/1.jpg" alt="500">
</body>
</html>

​ 写网页header和网页footer

<%--方式1 --%>
<body>
    <%include file="common/header.jsp"%>
    <h1>
        网页主体
    </h1>
    <%include file="common/footer.jsp"%>
</body>
<%--方式2 --%>
<body>
    <jsp:include page="/common/header.jsp"/>
    <h1>
        网页主体
    </h1>
    <jsp:include page="/common/footer.jsp"/>
</body>

3九大内置对象

  • PageContext 存东西
  • Request 存东西
  • Response
  • Session 存东西
  • Application (Servlet Context) 存东西
  • config (servlet config)
  • out
  • page
  • exception

​ 用途

  • request: 客户端向服务器发送请求,产生的数据,用户看完就没用了, 比如: 新闻,用户看完没用的!
  • session: 客户端向服务器发送请求,产生的数据,用户用完之后还有用 , 比如: 购物车
  • application: 客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还可以使用, 比如:聊天数据
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<%
    pageContext.setAttribute("name1","fao1");
    //保存的数据只在一个页面中有效
    request.setAttribute("name2","fao2");
    //保存的数据只在一次请求中有效,请求转发会携带这个数据
    session.setAttribute("name3","fao3");
    //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
    application.setAttribute("name4","fao4");
    //保存的数据只在服务器中有效,从打开服务器到关闭服务器
%>

<%--  脚步片段中的代码会被原封不动生成到.JSP.java
      要求:在这里面的代码:必须保证Java语法的正确性
      作用域从底层到高层:pageContext->request->session->application
--%>

<%--  使用EL表达式输出  --%>
<h3>取出的值为:</h3>
<h3>${name1}</h3>
<h3>${name2}</h3>
<h3>${name3}</h3>
<h3>${name4}</h3>
<h3>${name5}</h3>

</body>
</html>

posted @ 2022-05-21 11:59  fao99  阅读(105)  评论(0)    收藏  举报