JSP笔记

1.JSP脚本
    格式:<%Java脚本%>
    JSP脚本中可以包含任何可执行的Java代码。
    在JSP脚本中也可以声明变量,但在JSP脚本中声明的变量是局部变量,不能使用public、private修饰,也不能使用static修饰。
    JSP脚本中不能定义方法。
2.JSP注释
    格式:<%-- JSP注释 --%>
    HTML注释:<!-- HTML注释 -->
3.JSP声明
    格式:<%! 声明部分 %>
    在JSP声明部分定义的变量和方法可以使用private、public等访问控制符修饰,也可以使用static,但不能使用abstract修饰。因为抽象方法将导致JSP对应的Servlet
    变成抽象类,不能被实例化。
4.输出JSP表达式
    格式:<%= 表达式 %>
    作用相当于out.pringln()
    注:输出JSP表达式语句后不能有分号
5.编译指令
    JSP编译指令是通知JSP引擎的处理消息,它不直接生成输出。???编译指令在将JSP编译成Servlet时起作用。
    常见的编译指令:
    ◆page:该指令是针对当前页面的指令。
    ◆include:用于指定包含另一个页面。
    ◆taglib:用于定义和访问自定义标签。
    格式:<%@ 编译指令名 属性名="属性值" ... %>
    <1>.page指令
        page指令常用属性:language、extends、import、session、buffer、autoFlush、info、errorPage、isErrorPage、contextType、pageEncoding
    <2>.include指令
        静态包含:包含页面将在编译时完全包含了被包含页面的代码。
        如果被嵌入的页面需要经常改变,建议使用<jsp:include>操作指令(动态包含)。
        由于静态包含还会将被包含页面的编译指令也包含进来,所以两个页面的编译指令如果冲突,那么页面就会出错。
    <3>.taglib指令
7.JSP的七个动作指令
    动作指令是运行时的动作。
    ◆jsp:forward--执行页面转向,将请求的处理转发到下一个页面。
        格式:
            <jsp:forward page="relativeURL|<%=expression%>">
                <jsp:param name="paramName" value="paramValue"/>
            </jsp:forward>
        增加的请求参数的值可以通过HttpServletRequest类的getParameter()方法获得。
    ◆jsp:param--用于传递参数,必须与其它支持参数的标签一起使用。
    ◆jsp:include--用于动态引入一个JSP页面
        格式:
            <jsp:include page="relativeURL|<%=expression%>" flush="true">
                <jsp:param name="paramName" value="paramValue"/>
            </jsp:include>
            flush用于指定输出缓存是否转移到被导入的文件中。
        静态导入<% include ... />和动态导入<jsp:include ... />的三点区别:
        <1>.静态导入是将被导入页面的代码完全融入,两个页面完全融合成一个Servlet;而动态导入则是在Servlet中使用include方法来引入被导入页面的内容。
        <2>.静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去了作用,只是插入被导入页面的body部分。
        <3>.动态还可以包含额外的参数。
    ◆jsp:plugin
    ◆jsp:useBean--创建一个JavaBean实例
        格式:
            <jsp:useBean id="name" class="className" scope="page|request|session|application" />
            id:JavaBean的实例名
            class:JavaBean的实现类
            scope:指定JavaBean实例的作用范围
                page--该JavaBean实例仅在此页面有效
                request--该JavaBean实例在本次请求中有效
                session--该JavaBean实例在本次会话中有效
                application--该JavaBean实例在本应用中一直有效
    ◆jsp:setProperty--设置JavaBean实例的属性值
        格式:
            <jsp:setProperty name="beanName" property="propertyName" value="value" />
    ◆jsp:getProperty--输出JavaBean实例的属性值
        格式:
            <jsp:getProperty name="beanName" property="propertyName" />
8.JSP脚本中的9个内置对象
    内置对象的实质:它们要么是_jspService()方法的形参,要么是_jspService()方法的局部变量
    JSP内置对象只能在JSP脚本、JSP输出表达式中使用
    ◆application
        代表JSP所属的Web应用本身,可用于在JSP页面,或在Servlet之间交换信息。
        常用方法:getAttribute(String attrName),setAttribute(String attrName, String attrValue),getInitParameter(String param)
    ◆config
    ◆exception
        只有异常处理页面(isErrorPage属性为true)对应的Servlet才会初始化exception对象
        JSP脚本包含的所有可能出现的异常都可交给错误处理界面处理。
    ◆out
        代表JSP页面的输出流,用于输出内容,形成HTML页面
    ◆page
    ◆pageContext
        代表该JSP页面上下文,使用该对象可以访问页面中的共享数据
    ◆request
        该对象封装了一次请求,客户端的请求参数都被封装在该对象内
        常用方法:getParameter(String name),getParameterValues(String name),setAttribute(String name, Object value),getAttribute(String name),
                setCharactorEncoding(String env)
    ◆response
        代表服务器对客户端的响应,通常用于重定向
        常用方法:getOutoutStream(),sendRedirect(String location)
        <1>.生成非字符响应
        <2>.重定向
            重定向会丢失所有的请求参数和request范围的属性。因为重定向将生成第二次请求,与前一次请求不在同一个request范围内。
            执行重定向动作后,地址栏会变成重定向后的目标URL
        <3>.增加Cookie
    ◆session
        代表一次会话。当客户端浏览器与站点建立连接时,会话开始;当客户端关闭浏览器时,会话结束
        常用方法:getAttribute(String attrName),setAttribute(String attrName, String attrValue)
9.JSP自定义标签
    自定义标签的主要作用:取代丑陋的JSP脚本
    在JSP2中开发标签库的步骤:开发自定义标签处理类-->建立一个*.tld文件,每个*.tld文件对应一个标签库,每个标签库可以包含多个标签-->在JSP中使用标签
    (开发标签库是较为高深的技术,待以后研习)
10.JSTL
    JSTL:JSP Standard Tag Library,既JSP标准标签库
    使用JSTL的核心标签库:
        第一步--导入标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <1>.<c:out />标签
        <c:out value="value(可以是EL表达式)" default="默认值" />

你可能感兴趣的:(JSP笔记)