欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java WEB开发JSP了解及Listener监听器

程序员文章站 2022-07-10 18:29:34
####什么时JSP概念JSP全称时Java Server Pages。Java的服务器页面JSP的主要作用主要是替代servlet回传html页面数据因为servlet回传html页面是一件非常繁琐的事情,开发黑盒维护成本极高jsp文件创建在web目录下创建一个jsp文件,通过jsp和html一样,都是存放在web目录下,访问和访问html页面一样访问地址:http:ip/port/工程路径/a.htmljsp本质是一个servlet程序当第一次访问jsp文件时,tomca...

JSP概述
JSP常用脚本
JSP常用标签
Listener监听器

概念
  • JSP全称时Java Server Pages。Java的服务器页面
  • JSP的主要作用主要是替代servlet回传html页面数据
  • 因为servlet回传html页面是一件非常繁琐的事情,开发黑盒维护成本极高
jsp文件创建
  • 在web目录下创建一个jsp文件,通过
  • jsp和html一样,都是存放在web目录下,访问和访问html页面一样
  • 访问地址:http:ip/port/工程路径/a.html
  • jsp本质是一个servlet程序
  • 当第一次访问jsp文件时,tomcat服务器会将翻译成为Java源文件,并且进行对它翻译成为字节码文件
jsp头部的page命令
  • jsp头部指令可以修改jsp页面中一些重要属性和行为
    Java WEB开发JSP了解及Listener监听器
    Java WEB开发JSP了解及Listener监听器
    Java WEB开发JSP了解及Listener监听器
    Java WEB开发JSP了解及Listener监听器

jsp常用脚本

 //脚本格式
<%! 声明jsp文件 %> 
在jsp文件中
<body>
   这里是jsp请求

   <%--声明变量--%>
   <%!
      private static Map<Integer, Integer> map;
      private String name;

   %>

   <%--声明类的方法--%>
   <%!
      static {
          map = new HashMap<>();
          map.put(10, 100);
      }

   %>

    <%--声明类方法--%>
    <%!
      public int abc() {
          return 12;
      }

    %>

    <%--声明内部类--%>
    <%!
      public static class A {
          private Integer id = 10;
      }

    %>
</body> 
表达式脚本
  • 作用:在jsp页面上输出数据
  • 特点:
  • 所有表达式脚本都会被翻译到jsp.service()方法中
  • 表达式脚本都会被翻译为put.print()输出到页面上上
  • 由于表达式脚本翻译的内容都在jsp.service()中,所以次方法中的对象可以直接使用
  • 表达式脚本语句不能以分号结束
 <%--表达式脚本--%>
    <%--输出整型、浮点型、字符串、对象--%>
    <%=12%> 
代码脚本
  • 在jsp.service()方法中写的语句在代码脚本中都可以书写
  • 特点:
  • 代码脚本翻译后都在jsp.service方法中
  • 因为翻译后在jsp.sercie()方法中,所以jsp.service()中的对象都可以使用
  • 代码脚本还可以由多个脚本块完成一个Java语句
  • 代码脚本可以和表达式脚本一起使用
//格式
<%
  java 语句 
%> 
 <%--代码脚本--%>
<%--if-else语句,for循环--%>
   <%
       int i = 10;
       if (i > 10) {
           System.out.println("i>10");
       } else {
           System.out.println("i<=10");
       }
       %>
   <%--代码脚本和表达式脚本组合在一起使用--%>
   <%
       for (int i = 0; i < 10; i++) {
       %>
        <%=i%><br>
   <%
       }
       %> 
jsp三种注释
  • html注释:此种注释会被翻译到Java源代码中,在jsp.service()方法里,以out.write()输出到客户端
  • java注释:Java注释会被翻译到Java源代码
  • jsp注释:jsp注释可以注释掉jsp中所有代码
jsp九大内置对象

Java WEB开发JSP了解及Listener监听器

jsp四大域对象

Java WEB开发JSP了解及Listener监听器

  • 四个域的作用范围可用通过请求转发来确定,一般使用顺序从下到大即从上到下
 <h1>scope.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("/scope2.jsp").forward(request,response);
    %> 

out和response回传给客户端数据的区别

  • 仔细思考

Java WEB开发JSP了解及Listener监听器

  • response表示响应,通常用于设置返回给客户端的内容
  • out是给使用做输出使用的
  • out.write()输出字符串没有问题
  • out.print()输出所有数据都没有问题
  • 在jsp页面都可以使用print输出
 <%

       out.write("out输出1<br>");
       out.write("out输出2<br>");

       response.getWriter().write("response输出1<br>");
       response.getWriter().write("response输出1<br>");


    %> 

jsp常用标签

静态包含
<%--    <%@ include file=""%> 就是静态包含
                file表示要指定的jsp文件路径
                地址中的第一个斜杠表示为 http://ip:port/工程路径/     映射到web目录
         静态包含特点:
             静态包含不会翻译被包含的jsp文件
             静态包含其实是把被包含的jsp页面代码拷贝到包含的位置上执行输出

                --%>
    <%--<%@include file="/include/footer.jsp"%>--%> 
动态包含
  • 页面长划分为头部,主体,尾部
  • 可以将每隔一个部分用一个jsp文件来写
  • 实现原理
    Java WEB开发JSP了解及Listener监听器
 头部信息<br>
    主体内容<br>
    <%--页脚信息<br>--%>
    <%--
        动态包含
            <jsp:include page=""></jsp:include>
            page属性是指要包含的jsp页面路径
        特点:
           动态包含会把jsp页面翻译成为Java代码
            传递参数
        --%>
    <jsp:include page="/include/footer.jsp">
        <jsp:param name="wzl" value="123"/>
    </jsp:include>

//在footer.jsp文件中
    页脚信息<br>
    获取参数:<%=request.getParameter("wzl")%> 
请求转发
 <%--请求转发--%>
    <jsp:forward page="/a.jsp"></jsp:forward> 
请求转发使用说明

Java WEB开发JSP了解及Listener监听器

Listener监听器
  • Listener监听器是Java web三大组件之一
  • Java web三大组件:Servlet程序、Filter过滤器、Lisenter监听器
  • Listener是JavaEE的规范即为接口
  • 作用:监听某种事情的变化通过回调函数,反馈给客户(程序)去做一些相应的处理
ServletContextListener监听器
  • 可以监听ServletContext对象的创建和销毁
  • ServletContext对象在web工程启动时调用,在停止时销毁
使用ServletContextListener监听器监听器监听ServletContext对象对象步骤
  • 创建一个类实现ServletContextListener
  • 实现其俩个回调方法
  • 到web.xml中取配置监听器
//创建一个类实现ServletContextListener,实现其俩个回调方法
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyServletContextListenerImpl implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("ServletContext对象被创建了");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ServletContext对象被销毁了");
    }
}

到web.xml中取配置监听器
    <!--配置监听器-->
    <listener>
        <listener-class>com.atguigu.listener.MyServletContextListenerImpl</listener-class>
    </listener> 

本文地址:https://blog.csdn.net/wangzilong_2019/article/details/107372136

相关标签: JSP Listener