JSP入门
JSP简介
所谓JSP就是在网页文件中嵌入Java代码或JSP定义的一些标记。JSP是建立在Servlet上的,在执行时JSP容器会先将JSP文件转换成Servlet文件以及class 文件,然后再执行。所以说JSP实际上也是Servlet。JSP容器也是Servlet容器。
JSP语法
JSP页面由元素和模板数据组成,模板数据不必理会,这些内容将直接发到客户端,JSP容器不会处理,例如HTML内容。
JSP元素分为指令元素、脚本元素和动作元素三种。
指令元素
指令元素用于为转换阶段提供整个JSP页面的相关信息,不会产生任何的输出到当前的输出流中。指令元素有三种分别是:page、include和taglib。语法形式如下所示:
<%@ directive (attr="value")* %>
XML语法格式
<jsp:directive.page attr1="value1" attrl="value2".. />
page指令
page指令的作用范围是整个JSP页面,无论放到哪里都可以,好的习惯应该放到JSP页面的顶部。page指令有13个属性:
- language="scriptingLanguage"
用于指定脚本元素使用的脚本语言,默认java,就目前来说也仅支持java
- extends="className"
用于指定JSP页面转换后的Servlet类从哪一个类继承,通常不需要使用,JSP容器会自动提供。需要注意的是该值时完整的限定类名
- import="importList"
用于指定脚本环境中可以使用的Java类。例如:
<%@ page import="java.util.Vector, java.io.*" %>
//或者
<%@ page import="java.util.Vector" %>
<%@ page import="java.io.*" %>page指令中只有import属性可以重复设置。默认导入列表是:java.lang.*,java.servlet.*,java.servlet.jsp.*和javax.servlet.http.*。
- session="true|false"
用于指定JSP页面中是否可以使用session对象,默认true
- buffer="none|sizekb"
用于指定out对象的缓冲区大小,若设为none,表示没有缓冲区,所有输出通过ServletResponse的PrintWriter对象写出。单位为kb,默认8kb。
- autoFlush="true|false"
用于指定当缓冲区满的时候,缓存是否自动刷新,若设为false,当缓冲区满时会抛出一个异常。默认true
- isThreadSafe="true|false"
用于指定对JSP页面的访问是否是线程安全的。默认true。此属性不推荐使用
- info="info_text"
用于指定页面的相关信息,该信息可以通过Servlet接口的getServletInfo()方法得到。
- errorPage="error_url"
用于指定当JSP页面发生异常时,将转向哪一个错误处理页面。需要注意的是,若一个页面通过使用该属性定义了错误页面,那么在web.xml文件中定义的任何错误页面将不会被访问。
- isErrorPage="true|false"
用于指定当前JSP页面是否是另一个JSP页面的错误处理页面,默认false。
- contentType="ctinfo"
指定用于响应的JSP页面的MIME类型和字符编码。例如:
<%@ page contentType="text/htmll charset=gb2312" %>
- pageEncoding="peinfo"
用于设置JSP页面使用的字符编码,若设置了该属性,则使用该属性指定的字符集,若无,则使用contentType属性指定的字符集,如果两个都没有指定,则使用字符集"ISO-8859-1"
- isELIgnored="true|false"
用于定义在JSP页面中是否执行或忽略EL表达式。默认值依赖于web.xml文件。
include指令
include指令用于在JSP页面中静态的包含一个文件,该文件可以使JPS文件,HTML文件、文本文件或者一段Java代码。需要注意的是包含的文件最好不要包含<html><body>等标签,这会影响到原JSP文件中同样的标签。源文件与被包含文件可以彼此访问定义的变量和方法,因此包含时需要格外小心。include指令语法如下:
<%@ include file="relativeURLsper" %>
xml语法格式
<jsp:directive.include file="relativeURLspec" />
示例:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030" %>
<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head>
<title>My JSP 'MyJsp.jsp' starting page</title> </head>
<body>
现在时间是:
<%@ include file="date.jsp" %>
</body>
</html>
date.jsp
<%
out.println(new java.util.Date().toLocaleString());
%>
taglib指令
taglib指令允许页面使用用户定制的标签。语法格式如下:
<%@ taglib (uri="tagLibraryURL" | tagdir="tagDir") prefix="tagPrefix" %>
xml语法格式
<jsp:directive.taglib (uri="tagLibraryURL" | tagdir="tagDir") prefix="tagPrefix" />
- uri
该属性唯一的标识和前缀相关的标签库描述符,可以是绝对或者相对的URI。这个URI用于定位标签库描述符的位置
- tagdir
该属性指示前缀将被用于标识安装在/WEB-INF/tags/目录或者子目录下的标签文件
- prefix
定义一个prefix:tagname形式的字符串前缀,用于区分多个自定义标签。
脚本元素
脚本元素包含三个部分:声明、表达式和脚本段
声明
声明脚本元素用于声明在JSP页面的脚本语言中使用的变量和方法。声明必须是完整的声明语句,遵照java语言的语法。声明不会再当前输出流中产生任何输出。
声明语法:
<%! declaration(s) %>
xml语法格式的声明
<jsp:declaration>declaration(s)</jsp:declaration>
声明示例:
<%! int i; %>
<%! int j =0; %>
<%! public String f(int i) {if (i<3) return "3" ;} %>
可以再一个声明中声明多个变量和方法,也可以使用多个声明。在声明变量的时候要注意不要忘记变量后面的分号,声明只在当前JSP页面有效。另外,使用声明声明的变量,在JSP容器转化JSP页面为Servlet类时,将作为该类的实例变量(类成员变量)或者类变量(类静态成员变量),在多用户并发访问时,这将导致线程安全的问题。
脚本段
脚本段是在请求处理期间要执行的java代码段。脚本段可以产生输出,并将输出发送到客户端,也可以是流程控制语句。语法如下:
<% scriptlet %>
xml语法格式
<jsp:scriplet> scriplet</jsp:scriplet>
在脚本段中声明的变量为局部变量,在后面的脚本段中可以使用该变量。脚本段中的变量时线程安全的。
表达式
表达式脚本元素是Java语言中完整的表达式,在请求处理时计算这些表达式,计算的结果将被转成字符串,插入到当前的输出流中。语法如下:
<%= expression %>
xml语法格式
<jsp:expression> expression</jsp:expression>
要注意,在书写表达式时,一定不要再表达式后面添加任何的标点符号。
动作元素请见下一个博文。
JSP入门的更多相关文章
- Jsp入门学习笔记
#Jsp入门 一.JSP基础语法 1.JSP指令: page inlcude taglib 2.JSP注释: a.html注释: <!-- abcdefghijklmn --> b.jsp ...
- JSP入门:介绍什么是JSP和Servlet(转)
转自:http://developer.51cto.com/art/200907/134506.htm JSP入门:什么是jsp? JSP(Java Server Pages)是由Sun Micros ...
- JSP入门必读
JSP基础知识:转自老师上课梳理的笔记,希望对大家有所帮助.有什么不妥当的地方还望大家批评指正. 特别适用于JSP入门的人员使用.1.JSP [1] 简介1.1 HTML HTML擅长显示一个静 ...
- 九、JSP入门(1)
JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1.2 JSP的 ...
- day11(jsp入门&Cookie&HttpSession&一次性图片校验码)
day11 JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. ...
- JSP入门之自定义标签
第二部分简单讲解:主要讲解el表达式,核心标签库.本章主要讲解:自定义标签库:404页面,505页面,错误页面配置方法 全部代码下载:链接 1.JSP自定义标签: 自定义标签是用户定义的JSP语言元素 ...
- Jsp入门实战上
前面讲了servlet入门实践现在开始介绍jsp入门实践,开发环境的搭建请参考我前面的tomcat的文章,jsp入门教程分为上下两部分,第一部分简单讲解:jsp语法的规范,以及三大编译指令,七个动作指 ...
- Cookie&&Session&&jsp入门
会话技术 会话:一次会话中包含多次请求和响应. 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Coo ...
- jsp 入门 cookie session
Java Server Page ==> 服务器端的动态页面资源.用来做显示的功能. JSP构成 ==> HTML 脚本代码 标签构成. JSP 原理 ==> 实际上就是 servl ...
随机推荐
- 架构实例之Demo_JSP
架构实例之Demo_JSP 1.开发工具和开发环境 开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13 开发环境:W ...
- MBTI-性格测试
- 对象比较器:Comparable和Comparator
在进行对象数组排序的过程中需要使用到比较器,比较器有两个:Comparable和Comparator ①.java.lang.Comparable:是在类定义是时候默认实现好的接口,里面提供有一个co ...
- Ajax与JqueryUI和EasyUI错题总结
Ajax与JqueryUI和EasyUI错题总结 正确答案A,解析:此题考察的是JQuery UI下的menu插件的使用,menu提供ui-state-disabled class 方法禁用任何菜单项 ...
- 转: Protobuf 的 proto3 与 proto2 的区别
Protobuf 的 proto3 与 proto2 的区别 On 2015-07-17 19:16:00 By Soli Protobuf 的 proto3 与 proto2 的区别 这是一 ...
- PL/SQL 如何查看当前连接信息以及SQL PLUS如何指定IP地址
1.通过PL/SQL 想连接别的数据库可以通过在服务名前面加上IP和左斜线来实现: 2.有时我们的IP和左斜线不用输也能连别的数据库,是因为在一个文件里配置好了.这个文件在哪里? 在这个路径下的 NE ...
- 从贝叶斯到粒子滤波——Round 2
上一篇博文已经讲了贝叶斯滤波的原理以及公式的推导:http://www.cnblogs.com/JunhaoWu/p/bayes_filter.html 本篇文章将从贝叶斯滤波引入到粒子滤波,讲诉粒子 ...
- knockoutJS学习笔记03:knockout简介
通常来说,前端的维护难度是比较大的,特别是脚本,虽然像jquery这样的库可以帮助我们减少很多代码,但在稍微复杂的情况下,还是会产生有很多代码.上一篇介绍了模板引擎jsRender,它可以帮我们快速生 ...
- jquey on
1.如果你的元素是用clone方法复制出来的,并且,用了on来绑定事件的话,必须在clone的后边添加true,负责你的事件不会生效. 2.必须在on $('.js-liubody').on('cli ...
- 【Python】[模块]使用模块,安装第三方模块
一个.py文件就称之为一个模块(Model)按目录来组织模块的方法,称为包(Package)每一个包目录下面都会有一个__init__.py的文件内置函数1.使用模块 导入模块 import sys ...