zoukankan      html  css  js  c++  java
  • Jsp语法九大内置对象和四大作用域

    一.JSP

    原理:JSP其实就是一个servlet。

    Servlet负责业务逻辑处理,JSP只负责显示。开发中,JSP中不能有一行JAVA代码

    二.JSP语法

    1. JSP模板元素:JSP中HTML标签及文本

    2. 脚本:写JAVA代码,<% %>

    3. 表达式:用于输出变量及表达式,<%= %>

    4. 注释:分为三种

    a) <!-- --> :JSP翻译成Servlet时也将进行翻译。页面中也有。

    b) <% /*.......*/ %>:JSP翻译成Servlet时会被翻译,但页面(右击源代码)中没有。

    c) <%-- .......... --%>:JSP翻译成Servlet时不会被翻译。

    三.指令

    1. page:此指令可放在JSP页面中的任意位置。作用范围为整个JSP页面

    属性:

    language:默认值JAVA,目前也只有JAVA

    extends:JSP对应的SERVLET的父类

    import:导入此JSP页面中所用到的包,类。多个包以逗号分隔,默认已导入的包有:java.lang.*,javax.servlet.*,javax.servlet.http.*,javax.servlet.jsp.*

    session:是否创建HttpSession对象,默认为true

    buffer:设置缓存,取值none|8kb|sizekb,默认8kb。一般为默认值。

    autoFlush:是否自动刷新,true|false,默认true。

    isThreadSafe:Jsp对应的Servlet是否实现SingleTreadMode接口。默认为true, false为实现。//实现单线程

    errorPage:设置错误页面

    在web.xml配置默认错误页面

    <error-page>

    <exception-type>java.lang.Exception</exception-type>

    <location>/exce.jsp</location>

    </error-page>

    <error-page>

    <error-code>404</error-code>

    <location>/404.jsp</location>

    </error-page>

    isErrorPage:默认为flase,指示是否生成Throwable对象的引用exception.

    contentType:设置HTML中MIME类型的编码,如同Servlet中response.setContentType();

    pageEncoding:告知引擎翻译JSP时使用的编码。

    isELlgnored:是否忽略EL表达式,JSP2.0以后,默认为false

    四.include:

    包含:

    1. 动态包含

    <jsp:include page=”....” />

    如有两个JSP文件A,B. A动态包含B,A和B各自翻译成A_jsp.class和B_jsp.class文件,然后容器将两个servlet合并。再输出。

    2. 静态包含

    <%@ include file=”.....” %>

    A和B翻译成一个A_jsp.class文件。已经合并,并给容器。再输出。

    2. taglib:

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

    五.九大隐式对象

    request: HttpServletRequest

    response: HttpServletRequest

    session: HttpSession(page指令中session设置true后,才会有)

    config: ServletConfig

    application: ServletContext

    exception: Throwable(page指令中isErrorPage设置为true后,才会有)

    page: 当前servlet的引用

    out: JspWriter(等同于PrintWriter)

    pageContext: javax.servlet.jsp.PageContext;

    作用:

    a. 可以获取其它8大隐式对象

    b. 本身也是一个域对象,作用范围为本页面

    提供了操作其他域对象的方法(ServletContext,HttpSession, ServletRequest)

    操作自身域对象的方法:

    pageContext.getAttribute(Stringname);

    pageContext.setAttribute(Stringname,Object value);

    pageContext.removeAttribute(Stringname);

    操作其它域对象的方法:

    Object getAttribute(Stringname,int scope)

    scope:PageContext有对应的常量

    PageContext.APPLICATION_SCOPE

    PageContext.SESSION_SCOPE

    PageContext.REQUEST_SCOPE

    PageContext.PAGE_SCOPE

    voidremoveAttribute(String name,int scope)

    voidsetAttribute(String name,Object value,int scope)

    当我们只知道有name这么一个参数,但不知道在哪个域中时。可以用:

    pageContext.findAttribute(Stringname);

    查找的顺序由小到大,page->request->session->context

    c. 提供了包含及转发的方法

    pageContext.forward(String path);

    pageContext.include(String path)

    六.四大域对象

    pageContext:在本页面中有效

    request: 在一次请求及转发的Servlet中有效

    session: 在一次会话中有效,直到超时及销毁

    application: 在整个web应用有效,生命周期为Web运行期间

    原则:域对象越小越好。

    七.JSP内置标签(动作元素)

    jsp:include:动态包含

    jsp:forward:请求转发

    jsp:param:传递请求参数

    八.JavaBean

    1. 有无参的构造方法

    2. 私有的字段(字段名小写开头)

    3. 提供公共的getter和setter方法。

    4. 一般实现java.io.Serialiable(可序列化)接口。

    作用:用于封装数据

    九.JavaBean的动作元素

    1、jsp:useBean

    作用:从指定的域范围查找指定名称的对象。找到直接返回;找不到创建该对象的实例,并放到指定的范围中。

    范围:page request sessionapplication

    属性:

    id:引用对象的名称

    class:查找的类型

    scope:指定的范围。默认值是page

    2、jsp:getProperty

    获取指定javabean的指定属性的取值,并打印到页面上。如果属性值为null,打印null。

    属性:

    name:javabean的名称

    property:操作的是getter属性

    3、jsp:setProperty

    作用:设置Javabean的某个属性的值。

    属性:

    property:属性名称。支持通配符*

    name:javabean的名称

    value:直接指定值

    param:指定请求参数名。

    十.JavaWeb的开发模型

    1、模型1:JSP+JavaBean

    特点:适合开发非常简单的应用。

    2、模型2:JSP+Servlet+JavaBean(MVC)

    M:模型 JavaBean

    V:视图 JSP

    C:控制器 Servlet

  • 相关阅读:
    大数据-数据分析-numpy库-数组的深拷贝和浅拷贝
    windows环境下mysql主从配置
    C#定时发送邮箱设置
    论《LEFT JOIN条件放ON和WHERE后的区别》
    记录成长
    RobotFramework+Selenium如何提高脚本稳定性
    Jekins 插件Extended Choice Parameter显示Json Parameter Type遇到的问题
    nGrinder 参数使用
    Jenkins REST API 实例
    java ee config / nacos / shit Alibaba Middleware
  • 原文地址:https://www.cnblogs.com/loong-hon/p/4910925.html
Copyright © 2011-2022 走看看