• jsp初学


    目录

    定义:

    输出

    注释

    1JSP提供了隐藏注释:

    2动态注释,网页看不到,只能看源码

    指令

    1page指令,描述属性

    2include指令,显示的是其他jsp页面,

    jsp动作元素

    1包含文件元素

    *****include指令与 动作元素不同原因

    2请求转发元素

    JSP隐式对象

    1out对象

    2pageContext对象

    3exception对象

    jsp原理 



    指令标识

    html

    java代码

    out内置对象,直接拿过来用 

    定义:

    <%里面调用方法%>输出,
    <%!定义方法%>成员变量的操作

    输出

    <%="page范围:"+str1 %>

    注释

    1JSP提供了隐藏注释:

    <%-- 注释内容 --%>:,隐藏注释不仅在浏览器页面中看不到,在查看HTML源代码时也看不到

    2动态注释,网页看不到,只能看源码

    显示如下

    • 这是因为Tomcat编译JSP文件时,会将HTML注释当成普通文本发送到客户端,而JSP页面中格式为“<%-- 注释信息 --%>”的内容则会被忽略,不会发送到客户端

    指令

    1page指令,描述属性

    languagecontentTypepageEncodingimport属性设置

    例如:

    <%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%>
    <%@ page import="java.awt.*" %>
    <%@ page import="java.util.*","java.awt.*"%>

    session属性的值为true。需要注意的是,JSP 容器自动导入以下4个包:

    java.lang.*

    javax.servlet.*

    javax.servlet.jsp.*

                                                               javax.servlet.http.*

    2include指令,显示的是其他jsp页面,

    显示的是这个界面,但是内容是跳转的内容

            <%@ include file="被包含的文件地址"%>

    由于被包含的文件最终会生成一个文件,所以在被包含文件、包含文件中不能有重复的变量名或方法

    这里的file属性指定的相对路径是相对于文件(file),插入文件的路径一般不以“/”开头,而是使用相对路径

    taglib指令

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    prefix:用于指定标签的前缀,该前缀不能命名为jspjspxjavasunservletsunw

    uri:用于指定标签库文件的存放位置

    jsp动作元素

    1包含文件元素

    多个文件到我这个文件里要都先编译

    page相对路径,<jsp:include page="URL" flush="true|false" />

    page:用于指定被引入文件的相对路径。例如,指定属性值为top.jsp,则表示将当前JSP文件相同文件夹下的top.jsp文件引入到当前JSP页面中。

    flush:用于指定是否将当前页面的输出内容刷新到客户端,默认情况下,flush属性的值为false

    •  flush="true"的本界面先出来

    如果你希望在被包含的页面内容之前输出当前页面的所有内容,那么你可以使用 flush="true"。如果你希望在被包含的页面内容之后或者某个特定时间点刷新输出缓冲区,那么你可以使用 flush="false"

    注意<jsp:include>动作元素对包含的动态文件和静态文件的处理方式是不同的,如果被包含的是静态文件,则包含页面执行后,在使用了动作元素的位置将会输出被包含文件的内容

    如果动作元素包含的是一个动态文件,那么JSP编译器将编译并执行被包含文件。

    • *****include指令与 动作元素不同原因

    include指令通过file属性指定被包含的文件,file属性不支持任何表达式;include指令只编译一次

    动作元素通过page属性指定被包含的文件支持JSP表达式;页面一包括了页面二,先编译页面二,包含在页面一,在编译页面一

    2请求转发元素

    跳转到welcome.jsp页面
    • page属性用于指定请求转发到的资源的相对路径,该路径的目标文件必须是当前应用中的内部资源

    JSP隐式对象

    9个内置对象

    名称

    类型

    描述

    out

    javax.servlet.jspJspWriter

    用于页面输出

    request

    javax.servlet.http.HttpServletRequest

    得到用户请求信息

    response

    javax.servlet.http.HttpServletResponse

    服务器向客户端的回应信息

    config

    javax.servlet.ServletConfig

    服务器配置,可以取得初始化参数

    session

    javax.servlet.http.HttpSession

    用来保存用户的信息

    application

    javax.servlet.ServletContext

    所有用户的共享信息

    page

    java.lang.Object

    指当前页面转换后的Servlet类的实例

    pageContext

    javax.servlet.jsp.PageContext

    JSP的页面容器

    exception

    java.lang.Throwable

    表示JSP页面所发生的异常,在错误页中才起作用

    1out对象

    out先写到缓存区里面

     getWriter()才是直接返回到页面上

    • 一般是有缓存的,除非设置buffer="0kb",所以一般是 getWriter()输出的先显示

    原理

    2pageContext对象

    通过pageContext可以获得其他8个隐式对象,和设置属性

    获取对象

    都可以

    pageContext操作属性的相关方

    方法名

    功能描述

    void setAttribute(String name,Object value,int scope)

    用于设置pageContext对象的属性

    Object getAttribute(String name,int scope)

    用于获取pageContext对象的属性

    void removeAttribute(String name,int scope)

    用于删除指定范围内名称为name的属性

    void removeAttribute(String name)

    用于删除所有范围内名称为name的属性

    Object findAttribute(String name)

    用于从4个域对象中查找名称为name的属性

    属性:

    void setAttribute(String name,Object value,int scope)

    scope范围如下

    pageContext.PAGE_SCOPE:表示页面范围。

    pageContext.REQUEST_SCOPE:表示请求范围。

    pageContext.SESSION_SCOPE:表示会话范围。

    pageContext.APPLICATION_SCOPE:表示Web应用程序范围。

    • 要注意的是,当调用findAttribute()方法查找名称为name的属性时,会按照pagerequestsessionapplication的顺序依次进行查找,如果找到,则返回属性的名称,否则返回null

    为什么第二个不谢request----可能是request对象的方法

    3exception对象

    • 使用属性
    • 前提:exception对象只有在错误处理页面才可以使用,即page指令中指定了属性<%@ page isErrorPage="true"%>的页面。
    • 1处理错误页面的jsp" 要设置<%@isErrorPage="true%>才可以获取错误对象<%=exception.getMessage()%>
    • 输出错误内容
    • 2错误页面要设置<%@errorPage="error.jsp"%>

     注册页面

    写了引用就行

    中间写主题输入框就行了

    jsp原理 

    JSP容器执行jspService()方法处理客户端的请求。对于每一个请求,JSP容器都会创建一个新的线程来处理它。如果多个客户端同时请求该JSP文件,则JSP容器会创建多个线程,使得每一个客户端请求都对应一个线程

  • 相关阅读:
    常见C++缩写知识点
    Spring Data JPA where in 超过 1000 解决方案
    业务出海、高效传输、动态加速,尽在云栖大会「CDN与边缘计算」专场
    ROS_TF
    一百七十、Linux——Crontab定时任务调度Kettle脚本
    【算法】【矩阵和数组模块】数组中的最长连续序列长度
    【数据结构】——顺序表详解
    Axi接口的DDR3:参数,时序,握手机制
    数据库小记-mysql-DDL、DML、DQL
    react配置@指向src目录
  • 原文地址:https://blog.csdn.net/m0_72735063/article/details/134062285