<%@ 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地址

1、第一个JSP的更多相关文章

  1. java web(一) 使用sql标签库+tomcat+mysql手动创建一个jsp练习总结

    2016-09-0111:06:53                                     使用sql标签库+tomcat+mysql手动创建一个jsp 1. 1.1安装tomcat ...

  2. 第一章 开始编写第一个jsp

    第一章 搭好框架,需要tomcat服务器和jdk. JSP是Java Server Page的缩写,现在先让我们编写一个简单的jsp页面,看看jsp究竟能干什么? <%=new java.uti ...

  3. 第一个JSP程序

    本文介绍如何写出第一个JSP程序 1.配置服务器 (1)在eclipse中选择Server视图,(ps:很多童鞋说找不到Server,那是因为eclipse的版本问题,请下载JEE版本的eclipse ...

  4. 在JSP页面中调用另一个JSP页面中的变量

    在jsp学习中,经常需要在一个jsp页面中调用另一个jsp页面中的变量,下面就这几天的学习,总结一下. jsp页面之间的变量调用有多种方法: 1.通过jsp的内置对象—request对象获取参数: ( ...

  5. eclipse建立一个jsp项目遇到的问题及解决

    打开eclipse  在workplace 区域空白处,右键 填写好Project name,之后,点击finished 即可. 选中webcontent,新建一个文件夹,并新建一个jsp 文件 新建 ...

  6. 二、Tomcat配置以及IDEA运行第一个Jsp项目——JavaWeb点滴

    一.Tomcat配置环境变量 tomcat从官网下载最新的即可,本人下载的是安装版本.在安装过程中需要设置用户名和密码以及选择相应的JDK的安装目录.这些都比较简单直接下一步即可,安装完成之后就是配置 ...

  7. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  8. 提交一个变量或数组到另一个jsp页面

        注意一:提交一个变量到另一个jsp页面,用hidden的input 另一个页面用request.getParameter();获取 注意二:提交一个数组到另一个页面,可以用相同的input的n ...

  9. JSP页面中引入另一个JSP页面

    一个JSP页面中引入另一个JSP页面,相当于把另一个JSP页面的内容复制到对应位置: <%@include file="date.jsp" %> 一般页面的top和bo ...

  10. 徒手创建一个 jsp 项目

    在开始之前,先回顾一下 jsp 和 servlet,jsp 和 servlet 本质是一样的,因为 jsp 最终必须编译成 servlet 才能运行. 因为 jsp 的那些标签 jvm 是无法直接运行 ...

随机推荐

  1. SpringMvc配置详解

    在此做一个对Mvc的复习,便于以后快速复习mvc配置. 开发环境 : IDe :iDEA JDK:1.8 使用的框架技术:Mybtais ,Spring,Spring MVC 数据源选用Dbcp 首先 ...

  2. 在活动中使用菜单(Menu)

    任务名称:在活动使用菜单 任务现象:打开程序后,点击菜单按钮会出现2个选项,点击选项时会跳出相对应的提示框 步骤 1.创建一个项目,详细参考:http://8c925c9a.wiz03.com/sha ...

  3. String是最基本的数据类型吗?

    不是, 基本数据类型包括:byte,short,int,long,float,double,boolean,char. 而String是类代表字符串,属于引用类型,所谓引用类型包括:类,接口,数组.. ...

  4. Fully Digital Implemented Delta-Sigma Analog to Digital Converter

    http://www.design-reuse.com/articles/14886/fully-digital-implemented-delta-sigma-analog-to-digital-c ...

  5. MAC 更新SVN到1.8

    经过谷歌和百度N次后,最终搞定SVN的升级,Intellij Idea和Xcode5.1都能够正常使用. 步骤: 1. 下载Subverion的Max安装版.(推荐.使用其它brew和port都试过, ...

  6. 移动端 关于 键盘将input 框 顶上去的解决思路---个人见解

    在移动端,经常会遇到input获得焦点时候弹出的虚拟键盘将整体页面布局打乱的情况. 比如说是这种 输入框未获得焦点键盘未抬起的时候: 输入框获得焦点键盘抬起的时候 这种情况下,不管是上面的textar ...

  7. MySQL MyISAM和InNodb备份与恢复技巧

    1. 为什么要备份数据库 对数据库来说,最重要也最容易被忽视的就是备份.由于不可预测性,偶然的事件可能会导致非常惨重的损失. 数据越是重要,数据的变化越频繁,备份越发需要经常进行. 备份周期根据不同业 ...

  8. osgi实战学习之路:2. maven+maven-bundle-plugin+karaf搭建osgi之HelloWorld

    环境准备: jdk版本号 jdk:1.7 karaf: 版本号:apache-karaf-3.0.1 下载地址: http://pan.baidu.com/s/1qWM4Y1u http://kara ...

  9. leetcode mock interview-two sum II

    package com.company; import java.util.LinkedList; import java.util.List; public class Main { public ...

  10. 基于Spring Boot和Spring Cloud实现微服务架构学习--转

    原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...