javaweb---JSP

javaweb---JSP

  1. 什么是jsp,有什么用

    jsp的全称是java server pages.

    jsp的主要作用就是代替Servlet程序回传html页面的数据

    jsp回传一个简单html页面的代码

    <%--
      Created by IntelliJ IDEA.
      Date: 2022/4/25
      Time: 15:33
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>  
        这是jsp
    </body>
    </html>
    

jsp本质上就是Servlet程序

  1. jsp三种语法

a. jsp头部的page指令

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

language属性:表示jsp翻译以后是什么语言文件,暂时只支持java

contentType属性:表示jsp返回的数据类型是什么。

pageEncoding属性:表示jsp页面文件的字符集

import属性:用于导包,导类

以下两个属性是给out输出流使用的:

autoflush属性:设置当out输出流缓冲区满了之后,是否自动刷新缓冲区。默认为true

buffer属性:设置out缓冲区的大小,默认是8Kb

errorPage属性:设置当jsp页面运行出错时,自动跳转去的错误页面路径

isErrorPage属性:设置当前jsp页面是否是错误信息页面。默认是false。如果是true可以获取异常信息。

session属性:设置访问当前jsp页面是否会创建HttpSession对象。默认是true

extends属性:设置jsp翻译出来的java类默认继承谁。

b)jsp中的常用脚本

  • 声明脚本

    <%@ page import="java.util.Map" %>
    <%@ page import="java.util.HashMap" %><%--
      Created by IntelliJ IDEA.
      User: 86156
      Date: 2022/4/25
      Time: 15:59
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <%--声明类属性--%>
        <%!
            private Integer id;
            private String name;
            private static Map<String,Object> map;
        %>
    <%--声明static静态代码块--%>
        <%!
            static {
                map=new HashMap<String,Object>();
                map.put("key1","value1");
                map.put("key2","value2");
                map.put("key3","value3");
            }
        %>
    <%--声明类方法--%>
        <%!
            public int abc(){
                return 11;
            }
        %>
    <%--声明内部类--%>
        <%!
            public class A{
                private Integer id=12;
                private String abc="a";
            }
        %>
    </body>
    </html>
    
  • 表达式脚本

<%--表达式脚本--%>
    <%=12%>     <br>
    <%=11.11%><br>
    <%="字符串!"%><br>
    <%=map%>    <br>
    <%=request.getParameter("username")%>

代码脚本

<%--代码脚本--%>
<%
  int k=12;
  for(int i=1;i<=10;i++){
      for(int j=1;j<=i;j++) {
%>
          <%="* "%>
<%
      }
%>
      <br>
<%
  }
%>

C)jsp中的三种注释

  • html注释

    <!--这是html注释-->
    
  • java注释

    //单行java注释
    /*
    	多行java注释
    */
    
  • jsp注释

    <%--这是jsp注释 --%>
    

4.jsp九大内置对象

request 请求对象

response 响应对象

pageContext jsp的上下文对象

session 会话对象

application ServletContext对象

config ServletConfig对象

out jsp输出流对象

page 指向当前jsp的对象

exception 异常对象

5.jsp四大域对象

pageContext 当前jsp页面范围内有效

request 一次请求内有效

session 一个会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)

application 整个web工程范围内都有效

四个域对象在使用时按如下顺序生效

pageContext————request————session————application

<%--
  Created by IntelliJ IDEA.
  User: 86156
  Date: 2022/4/25
  Time: 16:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>c.jsp页面</h1>
    <%
        //向四个域中添加数据
        pageContext.setAttribute("key","pageContext");
        request.setAttribute("key","request");
        session.setAttribute("key","session");
        application.setAttribute("key","application");
    %>
    pageContext域:<%=pageContext.getAttribute("key")%><br>
    request域:<%=request.getAttribute("key")%><br>
    session域:<%=session.getAttribute("key")%><br>
    application域:<%=application.getAttribute("key")%><br>

    <%
        request.getRequestDispatcher("/c1.jsp").forward(request,response);
    %>
</body> 
</html>

7.jsp常用标签

a.静态包含

<%@ include file="/a.jsp"%>

静态包含的特点:

​ 1、静态包含不会翻译被包含的jsp页面

​ 2、静态包含其实是把包含的jsp页面的代码拷贝到包含的位置执行输出

b.动态包含

    <jsp:include page="/b.jsp"></jsp:include>

动态包含的特点:

1、动态包含会把包含的jsp页面翻译成java代码

2、动态包含可以传递参数

c.转发标签

8.练习

练习:在jsp页面输出九九乘法表

<%--
  Created by IntelliJ IDEA.
  User: 86156
  Date: 2022/4/25
  Time: 17:40
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1 align="center">九九乘法表</h1>
    <table align="center">
        <%  for(int i=1;i<=9;i++){   %>
            <tr>
                <%  for(int j=1;j<=i;j++){   %>
                <td><%=j+"x"+i+"="+(i*j)%></td>
                <% } %>
            </tr>
        <% } %>
    </table>
</body>
</html>

9、Listener监听器

1、Listener监听器是javaweb三大组件之一。javaweb的三大组件分别是:Servlet程序、Filter过滤器、Listener监听器

2、监听器的作用:监听某种事物的变化,然后通过回调函数,反馈给程序去做一些相应的处理。

posted @ 2022-04-25 17:59  ice--cream  阅读(32)  评论(0编辑  收藏  举报