zoukankan      html  css  js  c++  java
  • 1、第一个JSP

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; UTF-8"%>
    
    <!DOCTYPE HTML">
    <html>
      <head>
        <title>My JSP 'index.jsp' starting page</title>
      </head>
      
      <body>
        This is my JSP page.
      </body>
    </html>

    解释:

    1、JSP指令标识:

      指令标识主要用于设置整个JSP页面方位内有效的相关信息,这些标识会被服务器解释执行,但不会产生任何内容输出到页面中。

      JSP中包含了page、include和taglib共3个指令标识,其语法结构相同,定义如下:

      <%@ 指令名 属性1="属性值1" 属性2="属性值2" ... %>

    1.1、page指令

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

      

    属性名 说明
    language 指定当前页面中使用的语言,目前只支持Java语言。改属性的默认值为Java
    contentType 设置JSP页面的MIME类型和字符编码,浏览器会根据该属性指定的类型和编码显示网页内容
    pageEncoding 设置JSP页面的编码格式,在JSP页面中所有代码都使用该属性指定的字符串
    import 导入JSP页面中的类包。 import="java.util.Date"
    buffer 这种out对象使用的缓冲区大小,默认为8KB,器单位只能使用KB。建议开发人员使用8的整数倍
    autoFlush 指定当缓冲区已满时自动将缓冲区的内容输出到客户单,默认为true。如果为false,当蝗虫去已满时将抛出JSB Buffer overflow异常
    isErrorPage 将当前JSP页面设置为错误处理页面,已处理另一个JSP页面的错误,即为异常处理
    errorPage 指定当前页面出现异常时调用的另一个页面(即错误处理页面)
    session 指定当前JSP页面是否支持session,默认为true
    isThreadSafe 指定JSP页面是否是线程安全的,如果为true,则表示JSP页面在同一时间可以被多个线程访问,否则不可以

    pageEncoding和contentType的区别?

      通常情况下,两者会同时存在,前者的作用是指定JSP页面的编码格式,如果值设置为非支持中文的字符集(如:ISO-8859-1),那么在这个页面中不能编写中文信息;否则会出现乱码。后者的作用是指定服务器处理请求完成后,回应给浏览器的内容类型。如果设置为"text/html;charset=UTF-8",则说明回应的页面是HTML文档或文本内容,其字符集为UTF-8

      pageEncoding是jsp文件本身的编码

      contentType的charset是指服务器发送给客户端时的内容编码

      

      JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。

      第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

      第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。

      JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字串在二进制码(java encoding)内表达的规范。

      第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效

    1.2、include指令

      include指令是否JSP提供的页面包含指令,它可以将一个JSP页面包含到另一个JSP页面中

      <%@ include file="path" %>

      该指令只有一个参数file,它可以是相对路径也可以是绝对路径

    1.3、taglib指令

      taglib指令用于声明一个标签的引用,在JSP页面之中声明了哪个标签库的引用,即可在JSP页面中调用哪个标签。该指令的语法如下:

      <%a taglib prefix="tagprefix" uri="tagURI"%>

      prefix:标签库的前缀

      uri:标签库文件uri地址

  • 相关阅读:
    怎样理解 C++ 11中的move语义
    面试---计算机网络
    TCP报头中的选项字段
    协程的实现之调度器
    CPU缓存
    TLS---线程局部存储
    微信libco协程设计及实现---总结
    libco源码解析---协程运行与基本结构
    2014年第五届蓝桥杯B组(C/C++)预赛题目及个人答案(欢迎指正)
    并查集(模板&典型例题整理)
  • 原文地址:https://www.cnblogs.com/caoyc/p/5438105.html
Copyright © 2011-2022 走看看