• JSP概述


    [TOC]

    JSP概述

    什么是jsp

    sun公司制定的一种服务器端的动态页面技术规范.

    1. 虽然使用servlet也可以生成动态页面,但是过于繁琐需要大量使用out.println语句,并且不利于页面的维护(需要修改java源代码),所以sun公司才制定的jsp规范,目的是更简洁,更方便的生成动态页面.
    2. jsp是一个以.jsp为后缀的文件,该文件的内容主要是html和少量的java代码.容器会将jsp文件转换成一个servlet然后执行.
    3. jsp的本质就是一个servlet!

    如何写一个jsp文件?

    1. 创建一个以.jsp为后缀的文件.

    2. 在该文件里面,可以添加如下内容:

      • html代码 直接写即可
      • java代码
        • java代码片段 <% java代码 %>
        • jsp表达式 <%= java表达式 %>
    3. 9大隐含对象

      • out
      • request
      • response
      • session
      • application
      • page
      • config
      • exception
      • pageContext
    4. 指令

      告诉容器,将jsp转换成servlet类的时候,做一些额外的处理,比如: 导包.

      语法: <%@ 指令名 属性=值 %>

    JSP代码块

    1. <% 代码 %>
    2. <%= 表达式 %>
    3. <%! 属性或方法 %>

    JSP指令

    page指令

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    
    • import属性:用于导包,比如<% page import="java.util.*" %> 多个包使用逗号隔开

    • contentType属性:用于设置response.setContentType方法的参数值.

    • pageEncoding属性:告诉容器,在读取jsp文件的内容时,使用指定的字符集来解码

    include指令

    <%@ include file="header.jsp"%>
    
    • file属性:指定被包含的文件名.比如,<%@ include file="header.jsp"%>

      容器在将jsp转换成java时,会将指定的文件的内容插入到该指令所在的位置

    taglib指令

    <%@ taglib uri="" prefix="c"%>
    

    用于引入JSTL标签库或者其他的自定义标签库

    JSP注释

    格式: <%-- 注释内容 --%>

    注意: 如下三种注释方式

    1.使用jsp注释: (没被翻译成serlvet, 也没有被执行, 不会显示到浏览器)

    <!-- 使用jsp注释 -->
    <%-- 
        out.write("aaaaa<br>");
    	System.out.println("aaaaa");
    --%>
    

    2.使用java注释: (可以翻译为servlet, 但是没有被执行, 不会显示到浏览器)

    <% 
        // out.write("bbbbb<br>");
        // System.out.println("bbbbb");
    %>
    

    3.使用html注释: (可以翻译为servlet, 可以被执行, 但是被html所注释, 不会显示到浏览器)

    <!-- 
        <% 
            out.write("ccccc<br>");
            System.out.println("ccccc");
        %>
    -->
    

    结果:

    浏览器源码:

    <!-- 使用jsp注释 -->
    
    <!-- 使用java注释 -->
    
    <!-- 使用html注释 -->
    <!-- 
    ccccc<br>
    -->
    

    控制台:

    ccccc
    

    jsp是如何执行的

    阶段一

    容器将.jsp文件转换成一个.java文件(即servlet类)

    write()只能输出字符类型的值, 不能输出表达式和null(空值) println()和print()可以输出字符, 也可以输出表达式, 当输出的值为null时输出"null"字符串

    graph LR A[html,js,css] -->B(out.write输出) C[<% %>] --> D[servlet普通代码] E[<%= %>] --> F[out.println输出] G[<%! %>] --> H[增加新的属性或者方法]

    阶段二

    容器在将该Servlet编译,实例化,调用.

  • 相关阅读:
    前端切图:自制简易音乐播放器
    SEO那些事:一句代码一键分享网站
    POJ 2553 Tarjan
    POJ 2186 Tarjan
    POJ 1236 Tarjan算法
    POJ 1330 Tarjan LCA、ST表(其实可以数组模拟)
    POJ 1470 Tarjan算法
    POJ 1985 求树的直径 两边搜OR DP
    POJ 3687 拓扑排序
    POJ 3522 Kruskal
  • 原文地址:https://www.cnblogs.com/zpKang/p/13106746.html
Copyright © 2020-2023  润新知