当前位置: 移动技术网 > IT编程>开发语言>Java > Java WEB开发JSP了解及Listener监听器

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

2020年08月10日  | 移动技术网IT编程  | 我要评论
####什么时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页面中一些重要属性和行为
    在这里插入图片描述
    ## 标题
    在这里插入图片描述
    在这里插入图片描述

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九大内置对象

在这里插入图片描述

jsp四大域对象

在这里插入图片描述

  • 四个域的作用范围可用通过请求转发来确定,一般使用顺序从下到大即从上到下
 <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回传给客户端数据的区别

  • 仔细思考

在这里插入图片描述

  • 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文件来写
  • 实现原理
    在这里插入图片描述
 头部信息<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> 
请求转发使用说明

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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网