zoukankan      html  css  js  c++  java
  • JSP入门[续]

    JSP基本语法

      06)JSP指令   

    01)JSP指令的基本语法格式:
      <%@ 指令 属性名="值" %>
    举例:<%@ page contentType="text/html;charset=UTF-8"%>
     
    02)如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。
     例如:
    <%@ page contentType="text/html;charset=UTF-8"%>
    <%@ page import="java.util.Date"%>
    也可以写作:
    <%@ page contentType="text/html;charset=UTF-8" import="java.util.Date"%>
     
         a)page指令
          page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,
        page指令最好是放在整个JSP页面的起始位置。 
          
    JSP 2.0规范中定义的page指令的完整语法:
    <%@ page
    [ language="java" ] //指明JSP支持的语言,默认为java语言
    [ import="{package.class | package.*}, ..." ]  //当前JSP页面中,需要导入的包,其中import可以写多次
    [ session="true | false" ]  //true表示需要服务器创建session/false不需要服务器创建session,默认true
    [ buffer="none | 8kb | sizekb" ]  //JSP输出使用的缓存大小,默认8kb
    [ autoFlush="true | false" ]  //表示当缓存满时,web容器是自动刷新到客户端/false需要手工刷新到客户端,默认true
    [ isThreadSafe="true | false" ]  //true表示web服务器确保线程安全/false不确保线程安全,默认true
    [ info="text" ]  //表示jsp的相关描述信息,可以通过getServletInfo()取得该jsp的信息
     
    [ errorPage="relative_url" ]  //当前jsp页面出错后,转发到的目标页面,地址栏没有变  例:<%@ page errorPage="error.jsp" %>
    [ isErrorPage="true | false" ] //当某个jsp页面有该属性时,web容器会自动创建exception对象,上述异常处理属于局部异常处理,只有为true时,才会创建exception对象
    上述异常处理属于局部异常处理,两者通常成对出现

    在web.xml中

    <error-page>
      <error-code>500</error-code>
      <location>/error1_500.jsp</location>
    </error-page>

    <error-page>
      <exception-type>java.lang.NumberFormatException</exception-type>
      <location>/error2_500.jsp</location>
    </error-page>

    要同时出现erro-code和exception-type,实验证明exception-type显示

     上述异常处理属于全部异常处理

    一般是先局部再全局处理

    当全局和局部异常同时出现时,局部异常优先

    [ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]   //contentType="text/html;charset=UTF-8"
    [ pageEncoding="characterSet | ISO-8859-1" ]  
    //优先pageEncoding="UTF-8" 
    pageEncoding3种意思,前提在IDE工具中

    a)JSP页面的中文采用UTF-8方式编码
    b)JSP保存时采用UTF-8方式编码
    c)指示浏览器以UTF-8方式查看

    使用page指令pageEncoding属性解决JSP中文乱码,

      pageEncoding解决输出乱码问题,

      request.setCharacterEncoding("utf-8")解决输入问题

    [ isELIgnored="true | false" ]   //false表法JSP引擎不忽略EL表达式语言/true表法JSP引擎忽略EL表达式语言
    %>
     
    [注意]可以在一条page指令的import属性中引入多个类或包,其中的每个包或类之间使用逗号分隔:
       <%@ page import="java.util.Date,java.sql.*,java.io.*"%>
        上面的语句也可以改写为使用多条page指令的import属性来分别引入各个包或类:
       <%@ page import="java.util.Date"%>
       <%@ page import="java.sql.*"%>
       <%@ page import="java.io.*"%>
     
    使用page指令解决JSP中文乱码
       1.JSP程序存在有与Servlet程序完全相同的中文乱码问题
         输出响应正文时出现的中文乱码问题
     读取浏览器传递的参数信息时出现的中文乱码问题
     
       2.JSP引擎将JSP页面翻译成Servlet源文件时也可能导致中文乱码问题(UTF-8)
       3.如何解决JSP引擎翻译JSP页面时的中文乱码问题
        通过page指令的contentType属性说明JSP源文件的字符集编码
       或page指令的pageEncoding属性说明JSP源文件的字符集编码
     
    b) include指令
      
      linclude指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入。
      语法:
      <%@ include file="relativeURL"%>
      其中的file属性用于指定被引入文件的相对路径。  file属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),
      否则,表示相对于当前文件。
       细节:
        1.被引入的文件必须遵循JSP语法。
        2.被引入的文件可以使用任意的扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容,为了见明知意,
      JSP规范建议使用.jspf(JSP fragments)作为静态引入文件的扩展名。
        3.由于使用include指令将会涉及到2个JSP页面,并会把2个JSP翻译成一个servlet,所以这2个JSP页面的指令不能冲突(除了pageEncoding和导包除外)。
      include指令包含多个JSP页面,最后JSP引擎只翻译总JSP页面,被包含的JSP页面原封不动的进入总JSP页面,造成HTML结构非常混乱,多个JSP最终会翻译成一个Servlet
     
    c)Taglib指令
     
      Taglib指令用于在JSP页面中导入标签库,后面详解
     
     
  • 相关阅读:
    socket注意
    PCM音频文件编码
    题外:分类篇(音乐风格分类)基于BP神经网络
    MFCC特征提取过程详解
    语音信号分析
    k-means聚类
    c++关键字详解
    vs中项目解决方案和项目的关系
    条件编译#ifdef 和#endif
    c++快捷键
  • 原文地址:https://www.cnblogs.com/hacket/p/2951990.html
Copyright © 2011-2022 走看看