• JSP基础知识


    JSP的本质是Servlet源程序

    每个JSP页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,接着再把这个Serlvet源程序编译成Servlet的class类文件。

    然后再由Web容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个Servlet程序。

    JSP页面的隐含变量

    已经声明好的变量,不用我们自己声明。

    一共有9个隐含对象。

    1. HttpServletRequest request

    2. HttpServletResponse response

    在JSP页面中几乎不会调用response的任何方法

    3. PageContext pageContext

    页面的上下文,可以从该对象中获取其他8个隐含对象,也可以获取到当前页面的其他信息

    4. HttpSession session

    浏览器和服务器的一次对话

    5. ServletContext application

    代表当前Web应用

    6. ServletConfig config

    当前JSp对应的Servlet的ServletConfig对象(几乎不用)

    7. JspWriter out

    out.println() 可以直接把字符串打印到浏览器上

    8. Object page

    指向当前JSP对应的Servlet对象的引用,但因为Object类型,只能调用Object类的方法(几乎不用)

    9. Exception exception

    在声明了page指令的isErrorPage="true"时,才可以使用   <% page isErrorPage="true" %>

    域对象的属性操作

    1)方法

    Object getAttribute(String name):获取指定的属性

    Enumeration getAttributeNames():获取所有的属性的名字组成的Enumeration对象

    void removeAttribute(String name):移除指定的属性

    void setAttribute(String name, Object o):设置属性

    2)pageContext,request,session,application对象都有这些方法(所以这四个对象也被称为域对象)

    pageContext:属性的作用范围仅限于当前JSP页面。

    request:属性的作用范围仅限于同一个请求。

    session:属性的作用范围限于一次会话。

    application:属性的作用范围限于当前Web应用。

    JSP表达式

    <%= xxx %> 将里面的内容输出到页面。

    相当于out.println(xxx)

    JSP声明

    <%!  %>里的java代码将被插入Servlet的JspServlet方法外面,所以JSP声明可用于定义JSP页面转换成的Servlet程序的静态代码块、成员变量和方法。

    因为JSP隐式对象实在jspServlet方法内声明的,所以在JSP声明中不能使用这些隐式对象。

    JSP注释

    <%-- --%>

    可以注释java语句和JSP标签等。

    JSP指令

    告诉引擎如何处理JSP页面中的其余部分

    page指令

     1. <%@ page import="xxx" %>  :导入包

     2. <%@ page isErrorPage="false" %>  :若为true,则该页面是错误页面,可以使用exception隐含变量

    3. <%@ page errorPage="" %>  :为该页面指定错误页面,当发生错误就会跳转到错误页面

    4. <%@ page isELIgnored="false" %>  :该页面是否忽略EL表达式,默认为false(不忽略)

    5. <%@ page session="true" %>  :该页面是否可以使用session

    ...

    include指令

    <%@ include file="b.jsp" %>  :静态引入其他JSP,将被引入的JSP与原JSP融合到一起,只生成一个Servlet源文件

    taglib指令

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  :引入自定义标签库

    JSP标签

    1. include

    动态引入JSP,生成两个Servlet源文件,然后通过一个方法的方式把目标页面包含进来,且可以传入参数

    <jsp:include page="b.jsp">
    <!-- 可在b.jsp页面通过 request.getParameter("username")获取参数 -->
    <jsp:param value="abcd" name="username" /> </jsp:include>

    2. forword

    转发。但可以传入参数

    <jsp:forward page="b.jsp">
    <!-- 可在b.jsp页面通过 request.getParameter("username")获取参数 -->
    <jsp:param value="abcd" name="username" /> </jsp:forward>
  • 相关阅读:
    droid开发:如何打开一个.dcm文件作为位图?
    AndroidStudio3.0 Canary 8注解报错Annotation processors must be explicitly declared now.
    Android 异步加载神器Loader全解析
    Android实现RecyclerView的下拉刷新和上拉加载更多
    Android之ViewFlipper的简单使用
    云计算之路-阿里云上:2014年6月11日17点遇到的CPU 100%状况团队
    云计算之路-阿里云上:黑色1秒,微软的问题还是阿里云的问题?团队
    [网站公告]18:07-18:20阿里云SLB故障造成网站不能正常访问团队
    上周热点回顾(6.2-6.8)团队
    云计算之路-阿里云上:受够了OCS,改用ECS+Couchbase跑缓存团队
  • 原文地址:https://www.cnblogs.com/CComma/p/7137468.html
Copyright © 2020-2023  润新知