jsp语法详解

合集下载

JSP基本语法

JSP基本语法

JSP脚本JSP通用语法规则JSP通用语法规则包括:JSP的标记规则、JSP元素中的相对路径规则、JSP元素中的转义规则。

JSP的标记规则每一个JSP元素都有一个起始标记和一个结束标记。

起始标记为“<%”或“<jsp:”,结束标记为“%>”或“/>”。

比如:<jsp:include page=”/index.jsp”/><%if(sum>0) sum=sum+42;%>注起始标记和结束标记一定要在同一个JSP页面中,且成对出现JSP元素中的相对路径规则在JSP中可以使用相对路径,相对路径是以字符“/“开头的。

比如:/test/testChinese.jsp——说的实际路径是“C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\test\testChinese.jsp “JSP元素中的转义规则我们已经知道,“<%”和“%>”是JSP中的标记字符,那么如果我们想在程序中用到这两个字符,该怎么区分呢?这就要用到转移规则了。

这里的转义规则包括:“’”被转义为“\’”“””被转义为“\””“\”被转义为“\\”“<%”被转义为“<\%”“%>”被转义为“%\>”下面我们通过一个小例子来看看。

其显示结果如图2-2所示。

图2-2 JSP转义规则示例上面显示结果,可以看到,本来是JSP标记语言的字符,也都显示出来了,实现这样功能的程序代码是怎么样的呢?02-02.jsp文件源代码:<html><head><title>JSP转义规则的例子</title></head><%@page contentType="text/html;charset=gb2312" %><body><p><%out.print("测试要避免冲突的字符串1:\'");%><p><%out.print("测试要避免冲突的字符串2:\"");%><p><%out.print("测试要避免冲突的字符串3:\\");%><p><%out.print("测试要避免冲突的字符串4:%\>");%></p></body></html>JSP脚本元素语法讲了语法规则以后,我们来看看脚本元素,JSP中的脚本元素有四种:注释、声明、表达式和程序段。

第3章 JSP语法

第3章 JSP语法

运行该段代码将生成下面的HTML代码: <a href="welcome.jsp">链接到welcome.jsp</a>
20
(3) 动态指定Form表单处理页面,例如下面的代码:
<% String name="logon.jsp"; %> <form action="<%=name%>"></form>
isErrorPage属性:将该属性值设为true,此时在当 前页面中可以使用exception异常对象。若在其他页 面中通过errorPage属性指定了该页面,则当前者出 现异常时,会跳转到该页面,并可在该页面中通过 exception对象输出错误信息。相反,如果将该属性 设置为false,则在当前页面中不能使用exception 对象。该属性默认值为false。 【例3-1】errorPage属性及isErrorPage属性的应14用
<!-- JSP表达式 -->
今天是:<%=today%>
<!-- HTML标记语言 -->
</center>
</body>
3
</html>
3.1.1 JSP中的指令标识 利用JSP指令可以使服务器按照指令的设置来执行
动作和设置在整个JSP页面范围内有效的属性。
<%@ page language="java" contentType="text/html; charset=gb2312" %>
[ isELIgnored="true|false" ]

第2章 JSP语法

第2章 JSP语法


<jsp :param name= »param2 »value= »value2 »/> </jsp:forward>
<jsp :param name= »param1 »value= »value1 »/>
小结


本章主要介绍了JSP页面的组成、指令、动作等技术,重点介绍 了JSP的page指令、include指令的使用,<jsp:include>、 <jsp:forward>等动作指令的使用。 通过本章的学习,读者可以建立一个简单功能的JSP网站。

1.page指令 page指令就是通过设置内部的多个属性来定义JSP文件中的全局 特性。需要注意的是,page指令只能对当前自身页面进行设置, 即每个页面都有自身的page指令。如果没有对属性进行设置, JSP将使用默认指令属性值。


2.include指令 在JSP开发中,可以将一些重用的代码写入一个单独的文件中, 然后通过include指令引用该文件,从而缓解代码的冗余问题, 修改也比较方便。Include指令语法格式为: <%@ include file=”被包含的文件路径”%>
扩展——代码编写规范


1.JSP文件命名 JSP文件名称要以小写字母命名,名称要体现出该页面的意义, 最好能够与模块名称联系在一起。 例如: login.jsp --登录页面 register.jsp --注册页面 message.jsp --消息页面



新知识点——JSP页面组成、声明、代码段、表达式、注释 JSP页面由两部分组成,一部分为静态部分,即HTML标记,用 来完成数据页面显示;另一部分为动态部分,用来完成数据处理, 包括脚本元素、指令元素和动作元素。 脚本元素用来嵌入Java代码,这些Java代码将成为转换得到的 Servlet的一部分;JSP指令元素用来从整体上控制Servlet的结 构;动作元素用来引入现有的组件或者控制JSP引擎的行为。

第2章 JSP的基础语法

第2章 JSP的基础语法

2.6 小结
本章详细介绍了什么是JSP,以及JSP具有哪些特点,还详细介绍了JSP的 运行机制。通过实例介绍了JSP声明语句、JSP Scriptlets、JSP表达式的 使用。
北京源智天下科技有限公司
1-11
联系方式:
北京源智天下科技有限公司
1-1
联系方式:
2.1 JSP简介
JSP是Java Server Pages的缩写,是由Sun Microsystem公司于 1999年6月推出的新技术。通过在传统的HTML中,利用插入JSP脚本代 码从而构成JSP页面。JSP是基于Java Servlet以及整个Java体系的Web 开发技术,利用这一技术来构建安全的、跨平台的动态Web站点,而且 目前在不断进行更新和优化。 如果读者对微软的ASP技术比较熟悉,应该知道ASP的编程语言 是VBScript和JavaScript,JSP使用的是Java。与ASP相比,在许多方面 有了大大的改进,具有动态页面与静态页面想分离,并摆脱系统平台的 束缚。JSP是通过编译后执行的,完全克服了ASP的脚本级解释执行的缺 点,目前以成为Web开发的主流选择。
2.4 注释
JSP的注释分为两类,一类为可以在客户端显示的注释,即HTML注释;一 类是不能在客户端显示的注释,即JSP注释。 HTML注释使用<!--作为开始,以-->作为结束,中间包含的代码即为注释部 分。 JSP注释使用<%- -作为开始,以--%>作为结束,中间包含的代码即为注释 部分。
北京源智天下科技有限公司
01 02 03 04 05 06 07 08 0lt;head> <title>JavaScriptletsDemo</title> </head> <body> <% String str = "Java Scriptlets Demo"; //声明字符串str out.println(str); //输出字符串str %> </body> </html>

第3章:JSP基础语法

第3章:JSP基础语法
JSP基础语法
<1>、掌握JSP中注释语句的使用; <2>、掌握JSP中Script的使用及使用的区别; <3>、掌握page指令的作用; <4>、掌握两种包含语句及两种包含语句的 区别; <5>、掌握跳转指令的操作; <6>、可以使用JSP基础语法结合JDBC完成登 录程序的开发;
JSP注释分两种,一种是显示注释,这 种注释客户端是允许看见的;另一种是隐 式注释,这种注释客户端是无法看见的; 在JSP中最重要的就是Scriptlet脚本小 程序,所有嵌入在HTML代码中的java程序 都必须使用Scriptlet标记出来;在JSP中一 共提供了3中Scriptlet代码; 第一种:<%!%> 第二种:<%%> 第三种:<%=%>一定要明确记住字符 串的内容不可改变这一重要特征,一个 String对象内容的改变,实际上是通过内存 地址的“断开-连接”变化完成的,而本身 字符串的内容没有发生任何变化; 可以直接使用String类中的charAt方法 取出字符串指定位置的字符; 在String中使用indexOf方法可以返回 指定字符串的位置; 在
由于那种嵌入scriptlet的代码看起来很 乱,而且不易管理;所以我们应该使用 scriptlet标签指令 <jsp:scriptlet>这里可以定义一些变 量</jsp:scriptlet>; 在使用标签指令时一定要完结; 在JSP中,pageEncoding指的是jsp页 面本身的编码,而contentType中的charset 是服务器发给客户端的内容编码。

第2章 JSP语法基础 2.3 JSP指令元素、2.4 JSP动作元素

第2章 JSP语法基础 2.3 JSP指令元素、2.4 JSP动作元素
JSP开发案例教程
第2章 JSP语法基础
2.3 JSP指令元素 2.4 JSP动作元素
JSP开发案例教程
本章内容
01 脚本元素 03 JSP指令元素
02 案例ch2.2_datetime: 时间格式化
04 JSP动作元素
05 案例ch2.5_include: 框架类型网页
06 小结与练习
2.3 JSP指令元素
指定在当前页
4
session
中是否允许 10 isThreadSafe 指定是否线程安全
session操作
5
buffer
指定处理页面 输出内容时的 11 缓冲区大小
autoFlush
是定当缓冲区满时是 否自动清空
指定当前页面
说明当前页面是否为
6
errorPage 运行异常时调 12 isErrorPage 其他页面的异常处理
该JSP动作表示获取或创建一个名称为guess的、属于类com.GuessNumber的、生命周期 为session的对象,详见本书案例ch5.4_guessNumber(猜数游戏)。
JSP开发案例教程
所有的动作元素需要两个属性:
id属性
id属性是动作元素的唯一标识,可以在 JSP页面中被引用。动作元素创建的id值 可以通过PageContext来调用。
可以使用绝对或相对URL。 ✓ tagDir属性指示前缀将被用于标识在WEB-INF/tags目录下的标签文件。
2.4 JSP动作元素
JSP开发案例教程
2.4 JSP动作元素
JSP动作元素
➢ JSP动作利用XML语法格式的标记,来控制JSP容器Servlet引擎的行为。 ➢ 利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件

J2EE JSP组件编程基础与语法详解——JSP中的动作标签

J2EE JSP组件编程基础与语法详解——JSP中的动作标签
<jsp:forward page="/servlet/userLogin"> <jsp:param name="userName" value=“admin" /> </jsp:forward>
11、<jsp:param>标准动作标签的编程使用 (1)它被用来以“名-值”对的形式为其他标签提供附加信 息(传递参数),从而实现从一个JSP文件向另一个文 件传递一个包含用户请求的request对象。 (2)它一般可以和<jsp:include>、<jsp:forward>、 <jsp:plugin>等标签一起使用。
的形式出现,它代表服务器 端的某种形式的Java程序代码,从而实现产生输出或创建和 修改对象等方面的功能。如:
(2)标准动作标签是基于XML标签的语法规则
<jsp:useBean id=“nowDate” class=“java.util.Date” />
3、标准动作标签的主要作用 (1)封装脚本代码 动作标签允许 Java 程序员将 Java 代码伪装成XML或者 HTML标签来扩展JSP页面的功能,避免“美工”写程序。 (2)实现“表示层”与“业务层”之间的分离和减少重复 编程实现
<jsp:include page="common.jsp"> <jsp:param name=“userName" value="<%= userName%>"/> </jsp:include>
(2) include指令和include动作标签有所不同 前者是在主JSP页面文件被转换成Servlet程序时一起 被转换(编译时包含)

Jsp详解

Jsp详解

Jsp详解1.简介2.Jsp的运行原理3.Jsp的语法1.Jsp模板元素2.Jsp中的脚本表达式3.Jsp中的脚本片段4.Jsp的声明5.Jsp注释6.Jsp指令1.首先我们来看一下page指令的用法2.下面在来看一下include指令3.最后来看一下taglib指令7.Jsp中内置的9个隐式对象8.JSP标签库1.jspinclude标签2.jspforward标签3.jspparam或者jspparams标签4.jspuseBean标签jspsetProperty标签jspgetProperty标签9.Jsp中怎么排查错误简介:JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。

JSP这门技术的最大的特点在于,写jsp就像在写html,但:它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。

相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。

不管是JSP还是Servlet,虽然都可以用于开发动态web资源。

但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。

其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。

让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。

因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。

Jsp的运行原理:目标:Web服务器是如何调用并执行一个jsp页面的?Jsp页面中的html排版标签是如何被发送到客户端的?Jsp页面中的java代码服务器是如何执行的?Web服务器在调用jsp时,会给jsp提供一些什么java对象?思考:JSP为什么可以像servlet一样,也可以叫做动态web资源的开发技术?其实Jsp就是一个Servlet,所以我们要先介绍Servlet的相关技术,当我们第一次访问Jsp 的时候,Jsp引擎都会将这个Jsp翻译成一个Servlet,这个文件存放在Tomcat中的work目录中,这里,我们新建一个MyJsp.jsp页面,然后访问以下,我们看一下翻译后的源码:1.<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5.<head>6.7.<title>My JSP 'MyJsp.jsp' starting page</title>8.9.</head>10.11.<body>12. This is my JSP page. <br>13.</body>14.</html>1.package org.apache.jsp;2.3.import javax.servlet.*;4.import javax.servlet.http.*;5.import javax.servlet.jsp.*;6.import java.util.*;7.8.public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase9.implements org.apache.jasper.runtime.JspSourceDependent {10.11.private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();12.13.private static java.util.List _jspx_dependants;14.15.private javax.el.ExpressionFactory _el_expressionfactory;16.private org.apache.AnnotationProcessor _jsp_annotationprocessor;17.18.public Object getDependants() {19.return _jspx_dependants;20. }21.22.public void _jspInit() {23. _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();24. _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class .getName());25. }26.27.public void _jspDestroy() {28. }29.30.public void _jspService(HttpServletRequest request, HttpServletResponse response)31.throws java.io.IOException, ServletException {32.33. PageContext pageContext = null;34. HttpSession session = null;35. ServletContext application = null;36. ServletConfig config = null;37. JspWriter out = null;38. Object page = this;39. JspWriter _jspx_out = null;40. PageContext _jspx_page_context = null;41.42.43.try {44. response.setContentType("text/html;charset=utf-8");45. pageContext = _jspxFactory.getPageContext(this, request, response,46.null, true, 8192, true);47. _jspx_page_context = pageContext;48. application = pageContext.getServletContext();49. config = pageContext.getServletConfig();50. session = pageContext.getSession();51. out = pageContext.getOut();52. _jspx_out = out;53.54. out.write("\r\n");55. out.write("\r\n");56. out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");57. out.write("<html>\r\n");58. out.write(" <head>\r\n");59. out.write(" \r\n");60. out.write(" <title>My JSP 'MyJsp.jsp' starting page</title>\r\n");61. out.write(" \r\n");62. out.write(" </head>\r\n");63. out.write(" \r\n");64. out.write(" <body>\r\n");65. out.write(" This is my JSP page. <br>\r\n");66. out.write(" </body>\r\n");67. out.write("</html>\r\n");68. } catch (Throwable t) {69.if (!(t instanceof SkipPageException)){70. out = _jspx_out;71.if (out != null && out.getBufferSize() != 0)72.try { out.clearBuffer(); } catch (java.io.IOException e) {}73.if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);74. }75. } finally {76. _jspxFactory.releasePageContext(_jspx_page_context);77. }78. }79.}我们看到,这个类继承了org.apache.jasper.runtime.HttpJspBase,要想看到这个类的源码,我1./*2. * Licensed to the Apache Software Foundation (ASF) under one or more3. * contributor license agreements. See the NOTICE file distributed with4. * this work for additional information regarding copyright ownership.5. * The ASF licenses this file to You under the Apache License, Version 2.06. * (the "License"); you may not use this file except in compliance with7. * the License. You may obtain a copy of the License at8. *9. * /licenses/LICENSE-2.010. *11. * Unless required by applicable law or agreed to in writing, software12. * distributed under the License is distributed on an "AS IS" BASIS,13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14. * See the License for the specific language governing permissions and15. * limitations under the License.16. */17.18.package org.apache.jasper.runtime;19.20.import java.io.IOException;21.22.import javax.servlet.ServletConfig;23.import javax.servlet.ServletException;24.import javax.servlet.http.HttpServlet;25.import javax.servlet.http.HttpServletRequest;26.import javax.servlet.http.HttpServletResponse;27.import javax.servlet.jsp.HttpJspPage;28.import javax.servlet.jsp.JspFactory;29.30.import piler.Localizer;31.32./**33. * This is the super class of all JSP-generated servlets.34. *35. * @author Anil K. Vijendran36. */37.public abstract class HttpJspBase38.extends HttpServlet39.implements HttpJspPage40.41.42.{43.44.protected HttpJspBase() {45. }46.47.public final void init(ServletConfig config)48.throws ServletException49. {50.super.init(config);51. jspInit();52. _jspInit();53. }54.55.public String getServletInfo() {56.return Localizer.getMessage("");57. }58.59.public final void destroy() {60. jspDestroy();61. _jspDestroy();62. }63.64./**65. * Entry point into service.66. */67.public final void service(HttpServletRequest request, HttpServletResponse response)68.throws ServletException, IOException69. {70. _jspService(request, response);71. }72.73.public void jspInit() {74. }75.76.public void _jspInit() {77. }78.79.public void jspDestroy() {80. }81.82.protected void _jspDestroy() {83. }84.85.public abstract void _jspService(HttpServletRequest request,86. HttpServletResponse response)87.throws ServletException, IOException;88.}好吧,看到了,继承了HttpServlet类,所以说其实Jsp就是一个ServletJsp的语法:1.JSP模版元素2.JSP表达式3.JSP脚本片段4.JSP注释5.JSP指令6.JSP标签7.JSP内置对象8.如何查找JSP页面中的错误Jsp模板元素JSP页面中的HTML内容称之为JSP模版元素。

J2EE JSP组件编程基础与语法详解——JSP中的指令及应用

J2EE JSP组件编程基础与语法详解——JSP中的指令及应用

(3)最好采用每个属性为一条标签的形式 <%@ page contentType="text/html;charset=gb2312" > <%@ page isErrorPage="true"%>
建议:最好采用此方式 以提高页面的可读性
3、注意页面中的“中文编码”的设置定义 (1)在页面中不添加下面的标签时 <%@ page contentType=“text/html;charset=gb2312”%> 或者 <%@ page pageEncoding="gb2312"%> (2)注意页面在浏览时出现中文乱码的主要原因
JSP规范中的指令及应用
JSP规范中的指令及应用
The Emphases in Teaching Materials
在本讲中重点掌握如下知识点 page指令的主要功能 page指令应用的语法格式 page指令中的常用的属性 JSP页面中的include指令
1、page指令(Page Directive)功能 (1)Page指令其实是一种标签 它给JSP容器提供要求用来处理页面的特殊设置要 求——实现JSP页面被编译时的各种处理规则的选项 (2)通过这些Page指令可以改变该JSP页面所对应的 Servlet程序的结构,以便当页面被编译处理时能够生 成所要求的Servlet类程序 2、page指令应用的语法格式 (1)语法格式 <%@ page{ 属性名称=“值” } %> (2)页面示例
(4)页面示例
(5)该指令主要的功能 它一方面可以把整个页面拆分为多个不同的子部分(版 块),每部分可以独立地变化和更新 另一方面只要改变所包含文件的内容,就可以迅速地更 新整个页面的内clude指令时注意页面可能出现中文乱码 在每个被包含的目标JSP页面中添加下面的指令声明<%@ page pageEncoding=“gb2312”%>,否则页面将会出现中文 乱码。

JSP课件-07.JSP概述及语法详解

JSP课件-07.JSP概述及语法详解

演示示例1
JSP 的优点 2-1
强调可重用组件
JSP 页面 1 静态内容 动态内容 JSP 页面 2 静态内容 动态内容 JSP 页面 3 静态内容
动态内容
多个 JSP 页面 使用相同的 JavaBean
JavaBean
JSP 的优点 2-2
简化页面开发- 简化页面开发-Web 设计人员和 Web 程序员使用 Web 开发工具开发 JSP 页面

jspService()
由容器自动定义, 由容器自动定义,不应当提供该方法的实现
HttpJspBase类 类
JSP与Servlet的区别
尽管JSP在本质上就是 在本质上就是Servlet,但这两者的创建方式不同. 尽管 在本质上就是 ,但这两者的创建方式不同. Servlet完全由 完全由Java程序代码构成,擅长于流程控制和事务 程序代码构成, 完全由 程序代码构成 处理,而通过Servlet来生成动态网页很不直观;JSP由 来生成动态网页很不直观; 处理,而通过 来生成动态网页很不直观 由 HTML代码和 代码和JSP标签构成,可以方便地编写动态网页. 标签构成, 代码和 标签构成 可以方便地编写动态网页. 因此在实际应用中,采用Servlet来控制业务流程,而采用 来控制业务流程, 因此在实际应用中,采用 来控制业务流程 JSP来生成动态网页. 来生成动态网页. 来生成动态网页
第 四 章
JSP概述及语法详解 概述及语法详解
运行环境: 运行环境:Office XP 版 本:ACCP 4.0 课 程:JSP 作 者:Lucky
回顾
Web程序的工作原理 程序的工作原理 编写一个简单的Servlet程序 程序 编写一个简单的 理解Servlet 的生命周期 理解

Jsp入门--语法格式(%%)、指令(page、include、taglib)

Jsp入门--语法格式(%%)、指令(page、include、taglib)

Jsp⼊门--语法格式(%%)、指令(page、include、taglib)JSP脚本1. <% java代码 %>⽅法内部的代码都可以写在个位置<% String s1 = "hello jsp"; %>2. <%=java代码 %>把java代码运⾏的结果在页⾯显⽰, 要求java代码是⼀个表达式<%=s1 %>3. <%! java代码 %> 使⽤很少对属性的声明,⽅法的声明4、jsp的注释 <%-- ... --%>JSP是特殊的Servlet JSP是⼀种特殊的Servlet,当JSP页⾯⾸次被访问时,容器(Tomcat)会先把JSP编译成Servlet,然后再去执⾏Servlet。

所以JSP其实就是⼀个Servlet!JSP真⾝存放⽬录 JSP⽣成的Servlet存放在${CATALANA}/work⽬录下,我经常开玩笑的说,它是JSP的“真⾝”。

我们打开看看其中的内容,了解⼀下JSP的“真⾝”。

你会发现,在JSP中的静态信息(例如<html>等)在“真⾝”中都是使⽤out.write()完成打印!这些静态信息都是作为字符串输出给了客户端。

JSP的整篇内容都会放到名为_jspService的⽅法中!JSP指令语法:语法格式: <%@ 指令名属性名1=值1 属性名2 = 值2.... %>1. page指令: 对jsp页⾯⼀些设置2. include指令: 包含其他jsp页⾯3. taglib指令: 引⼊标签库 (往后)page指令page指令是最为常⽤的指定,也是属性最多的属性!page指令没有必须属性,都是可选属性。

例如<%@page %>,没有给出任何属性也是可以的!在JSP页⾯中,任何指令都可以重复出现!默认创建的jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>属性:1、 language: jsp⽀持的编程语⾔: 值只能是java2、 pageEncoding: 设置jsp的编码:指定当前JSP页⾯的编码!这个编码是给服务器看的3、 Content-type: contentType属性与response.setContentType()⽅法的作⽤相同! 它会完成两项⼯作,⼀是设置响应字符流的编码,⼆是设置content-type响应头。

JSP基本语法教程

JSP基本语法教程
(2)property
property属性赋予不同的值代表不同的含义。

Property=“*”:这种赋值方式表示所有请求参数
的所有值,用于匹配Bean中的属性值。在Bean
中的属性的名字必须和Request对象中的参数名 一致。

Property=“propertyName”[param=“parameter
4.2.3 脚本段( Scriptlets )
脚本段代码的格式:
<% scriptlet %>
脚本段在Web服务器响应时就会运行。
【注意】
脚本段内不能定义方法。
4.2.4 表达式(Expression)
JSP表达式用来把Java数据直接插入到输出。
表达式的格式为:<%=Java Expression %>
4.3.2 include指令
include指令用于在JSP页面中包含另一个文
件的内容。
include指令的语法格式:
<%@ include file=“relativeURL” %>
“relativeURL”表示此file的路径,路径名一般
来说是指相对路径。 【注意】
include包含文件的内容也是JSP代码,即可以包
Bean的作用域。此属性是可选的,其缺省值为page。
求范围内有效。
session-创建一个与当前用户相关的实例,该实例只在当前用 户范围内有效。
application-创建一个与当前应用相关的实例,该
实例只在当前用户范围内有效。
(3)class
class指Bean的.class文件的名称。
4.4.2 <jsp:setProperty>

JSP基本的语法、3个编译指令、7个动作指令、9个内置对象

JSP基本的语法、3个编译指令、7个动作指令、9个内置对象

JSP基本的语法、3个编译指令、7个动作指令、9个内置对象⽬录⼀、jsp概述JSP是java server page的缩写,其**==本质是⼀个简化的servlet**,是⼀种动态⽹页技术标准。

jsp页⾯是在HTML页⾯中嵌⼊java程序段。

使⽤jsp开发的应⽤程序能够跨平台。

⼆、jsp基本的语法2.1 jsp表达式jsp表达式⽤于向页⾯输出信息。

语法格式例如以下:<%= 表达式 %>如:<%= 5+6 %>注意:<%与=之间不能有空格,=与后⾯的表达式之间能够有空格,另外没有语句结束符号;。

2.2 jsp声明标识声明标识⽤语在jsp页⾯中定义全局的变量或者⽅法,通过声明标识定义的变量和⽅法能够被整个jsp页⾯訪问。

语法格式例如以下:<%!声明变量或者⽅法的代码%>如<%!String str = "test";%>注意:<%与!之间不能有空格,!与其后⾯的代码之间能够有空格。

2.3 jsp代码段代码⽚段就是嵌在jsp页⾯中的java代码或脚本代码。

会在页⾯请求的处理期间被运⾏,java代码能够实现定义变量、流程控制等功能。

脚本代码能够通过使⽤jsp内置对象在jsp页⾯输出内容、处理请求和响应、訪问session等,代码⽚段的语法格式例如以下:<% java代码或者脚本代码 %>2.4 jsp注释2.4.1 HTML注释HTML注释格式:<!-- html凝视 -->html凝视不会显⽰在⽹页中。

在浏览器中查看源代码的时候能够看到注释信息。

2.4.2 代码⽚段注释由于代码⽚段即为java代码或者脚本代码,代码⽚段的注释和java语法⼀样。

单⾏注释写在//之后,多⾏注释写在/* */ 之间,⽂档提⽰注释写在/**与 */之间。

//单⾏注释/*多⾏注释第⼀⾏多⾏注释第⼆⾏*//**⽂档注释*/2.4.3 隐藏注释html注释在查看⽹页源代码的时候能够看到,所以严格来说这样的注释并不安全,jsp提供的隐藏注释在浏览器和查看源代码的时候都看不到。

JSP的学习(5)——语法知识三之include指令

JSP的学习(5)——语法知识三之include指令

JSP的学习(5)——语法知识三之include指令 本篇继续来对JSP语法中的JSP指令进⾏学习,在中,已经介绍了JSP指令的书写格式和page指令的详细信息,所以在这⼀篇中我们会对JSP指令中的include指令来进⾏详细的学习。

先来回顾下JSP指令的语法格式:JSP指令: JSP指令是为JSP引擎⽽设计的,JSP指令不产⽣任何可见输出,只是告诉在转换成Servlet的过程中如何处理JSP页⾯中的其余部分。

在JSP 2.0 规范中共定义了三个指令: 1) page指令 2) include指令 3) taglib指令 taglib指令是导⼊标签库的指令,以后会介绍到。

JSP指令格式:<%@指令(如page、include或taglib) 属性1="属性值"属性2="属性值" ... %>例如:<%@ page contentType = "text/html;charset=utf-8"%> 如果⼀个指令有多个属性,这多个属性可以写在⼀个指令中,也可以分开写。

例如:1 <%@page contentType = "text/html;charset=utf-8" %>2 <%@page import = "java.util.Date"%>或者写成: <%@page contentType="text/html;charset=utf-8" import="java.util.Date"%>include指令 include指令⽤于在本JSP中引⼊其他JSP页⾯。

语法格式:<%@include file=”/相对URL” %>其中“file”属性的值为相对于web应⽤下的地址(给服务器的地址,因为由服务器来处理将那些JSP包含进来)。

J2EE JSP组件编程基础与语法详解——表示层JSP技术

J2EE JSP组件编程基础与语法详解——表示层JSP技术

( 3 ) JSP页面文件被预编译和转换为Java类文件的二进制 代码
( 4 ) 采用 与 J2EE Servlet程序相同的执行机制执行JSP页 面中的各种标签代码和脚本代码
5、JSP页面和Servlet程序类之间的对应关系 (1)为什么要提出JSP技术——优化Servlet的响应输出
(2)提出JSP技术的主要目的 为了简化 Servlet 的表现层输出,使得 Servlet 的业 务逻辑处理脱离于大量的数据输出操作。 因此, JSP 是表现层的技术,而 Servlet 负责业务逻 辑的处理程序的调度(注意:是控制调度而不是具 体地功能实现)。
(3)尽管两者可以相互代替而独立地完成一个Web项目, 但两者更多的是相互配合使用,提高系统的可维护性。 ( 4 )在 JSP 页面中只需要通过 JSP 脚本程序输出动态的信 息,而静态固定的信息直接采用HTML
6、JSP其实是标签化的Servlet ( 1 ) JSP 能够大大地简化 Servlet 程序在完成页面输出的功 能实现的复杂性,但不能代替Servlet技术,为什么?
(2)JSP其实是标签化的Servlet 某个JSP文件第一次被请求时,JSP引擎把它转换为一 个 Servlet 程序。因此, JSP 其实是标签化的 Servlet 。 将常用的Web服务器中的功能代码以标签的方式来提供。
7、JSP中的标签语法规则
(1)JSP标签可以采用 XML标签的语法、也可 以采用HTML标签语法 (2)JSP标签的属性也和在XML标签中定义属性一样,也一 定要使用双引号括起来
2、支持JSP/Servlet的应用服务器 (1)准确应该称为“Servlet容器”平 台 (2)主流的J2EE应用服务器系统 Sun JSAS(Java System Application Server) Java系统 应用服务器 开源的Apache基金会的Tomcat平台 BEA公司(现为Oracle公司)的 WebLogic平台 IBM公司的WebSphere Server平台

第3章 JSP语法基础

第3章  JSP语法基础

3.5 JSP动作标记 JSP动作标记
<% String dx=request.getParameter("dx"); String dy=request.getParameter("dy"); double x=Double.parseDouble(dx); // int x=Integer.parseInt(dx); double y=Double.parseDouble(dy); %> <html> <body> <p>从这里开始是被加载文件的输出:<br> 传给加载文件的参数dx的值是:<%=dx%>,dy的值是:<%=dy%>。 <br> getMax方法调用结果:<%=getMax(x,y)%> </body> </html>
3.5 JSP动作标记 动作标记
<p>主页面信息:加载ch3_8_1.jsp文件,求两个数的 最大值:下面开始加载。 <jsp:include page="ch3_8_1.jsp" > <jsp:param name="dx" value="<%=dx%>" /> <jsp:param name="dy" value="<%=dy%>" /> </jsp:include> <p>主页面信息:现在已经加载完毕。</p> </body> </html>
3.4 JSP指令标记 指令标记
3.4 JSP指令标记 指令标记

JSP语法基础

JSP语法基础

JSP语法基础1、JSP基本概念JSP(Java Server Pages,Java服务器页面)是一种Web动态页面技术,JSP是嵌入了Java程序段的HTML 文件,由HTML元素(静态部分)、JSP元素(动态部分)和JSP注释组成。

JSP文件后缀名为.jsp。

JSP运行时会被容器翻译为Servlet源代码(xxx_jsp.java)、自动编译为.class文件(xxx_jsp.class)、载入.class文件,然后生成Servlet对象。

JSP和Servlet一样是服务器端技术,允许运行在Web服务器端。

JSP定义在JavaWeb工程中WebRoot根路径下或其下的某个目录,其访问方式和访问HTML文件一致。

注意:如果JSP文件放在WEB-INF目录中时,不能直接访问,需通过Servlet转发。

JSP在运行时会动态编译成一个Servlet,其本质上是就是一个Servlet,JSP是对Servlet技术的扩展。

Servlet完全由Java程序代码构成,擅长于流程控制和业务逻辑处理,一般用作控制器(Controller);JSP 由HTML元素和JSP元素构成,对页面的静态内容和动态内容进行了有效分离,擅长于内容的展示,一般用作视图(View)。

注:翻译生成的xxx_jsp.java和xxx_jsp.class文件的位置:Tomcat中,在apache-tomcat\work\Catalina目录需;在Eclipse中,在workspace下\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\XXX\org\apache\jsp。

2、JSP元素JSP元素包括脚本元素、指令元素和动作元素。

脚本元素(3种)用来声明类成员与方法。

使用<%!与%>声明变量时,必须小心数据共享与线程安全的问题。

实验3:JSP语法、指令和标签

实验3:JSP语法、指令和标签

实验3:JSP语法、指令和标签一、目的与要求:1. 熟练掌握JSP的声明、表达式、小脚本和注释的使用;2. 理解JSP页面指令和动作的语法格式;3. 理解JSP页面的生命周期。

二、实验环境:使用Eclipse工具新建一个动态Web项目,然后添加JSP页面。

三、实验内容与步骤:1、JSP语法元素输入并执行下面JSP页面,文件名为counter.jsp。

把文件放入【Tomcat 安装目录】\webapps\ROOT目录里面,用IE浏览器访问该页面。

<html><body><%@ page language="java" %><%! int count = 0; %><% count++; %>Welcome! You are visitor number<%= count %></body></html>【步骤1】该JSP页面包含哪些JSP语法元素。

在浏览器中访问该页面,输出结果如何?多次刷新页面,结果如何?关闭浏览器后,再访问结果如何?重启Tomcat后,访问结果如何?【步骤2】打开counter.jsp转换后的源文件counter_jsp.java,对应的类文件在哪里?文件名是什么?【步骤3】查看count变量是在哪里声明的?【步骤4】将上面JSP页面中的<%! int count = 0; %>一行改为<% int count = 0; %>,页面能否正常执行,它与上面页面有什么区别?重复步骤2~3,查看count变量声明在哪里?2、JSP指令元素page 指令:<%@ page 属性1="属性1的值" 属性2= "属性2的值" …%>用来定义整个JSP页面的一些属性和这些属性的值。

比较常用的两个属性是contentType和import。

j3基本语法

j3基本语法
第3讲 JSP基本语法
firstjsp.jsp程序 模板元素 注释 脚本元素 指令元素 动作元素
HTML注释:<!--comment --> JSP注释:<%--comment -->
Java注释://comment
/*comment */ /**comment */
脚本元素
页面中的Java代码: 声明(Declaration):<%! 变量和函数声明%> 表达式(Expression):<%= 表达式 %> Scriptlets:<% 代码 %>
page指令详解
page属性 language pageEncoding 允许值 "java" “encodingName"
import
session buffer autoFlush isThreadSafe
"importList"
"true|false" "none|8kb|sizekb" "true|false" "true|false"
Scriptlets中不能定义函数和类
指令元素
为JSP文件的编译提供全局信息: 页面(page):<%@ page attr=“val”%> 包含(include):<%@ include file=“fname”%> 标记(taglib):<%@ taglib uri=“pathname” prefix=“prefixname” %>
info
errorPage isErrorPage contentType
"info_text"
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5ห้องสมุดไป่ตู้
3
数据库 服务器
2016/2/25
1
JSP页面
2
每天进步多一点,每天收获多一点,每天快乐多一点
JSP 页面组成4-1
• JSP 页面的元素包括:
静态内容 指令 表达式 小脚本 声明 标准动作
2016/2/25
HTML静态文本 以“<%@ ” 开始,以“%> ” 结束。 比如:<%@ include file = " Filename" %> <%=Java表达式 %> <% Java 代码 %> <%! 方法 %> 以“<jsp: 动作名 ” 开始,以“</jsp:动作名> ” 结 束。比如:<jsp:include page=" Filename" /> <!-- 这是注释,但客户端可以查看到 --> 6 <%-- 这也是注释,但客户端不能查看到 --%>
表达式
7
每天进步多一点,每天收获多一点,每天快乐多一点
JSP 页面组成 4-3
Ø 在浏览器上观看运行结果
所有注释内容都不可见
Ø 查看网页源文件
可以通过源代码查看 到HTML注释的内容
2016/2/25
8
每天进步多一点,每天收获多一点,每天快乐多一点
JSP 页面组成 4-4
Ø 合理、详细的注释有利于代码后期的维护和阅读 Ø 在JSP文件的编写过程中,共有三种注释方法:
创建新闻发布系统的JSP页面 5-3
• 使用JSP模板向导创建JSP页面,共有两步: 1 右键点击“WebRoot”下的“ch02”,从右键菜单中选择:新建→
Jsp, 点击“下一步”
2
在下一个新弹出的窗口中,输入文件名index.jsp,点击“完成”
演示:使用JSP模板向导创建JSP页面
2016/2/25
3
返回响应 应用 返回结果 服务器
3
2016/2/25
数据库 服务器
4
从服务器端检索到的信息
每天进步多一点,每天收获多一点,每天快乐多一点
为什么需要JSP 2-2
Ø 如何在浏览器上动态输出当前日期?
显然,无法通过静态HTML完成这个效果,试一试JSP,看看是否可行 <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <html> <head><title>输出当前日期</title></head> <body> 你好,西软! 今天是 <% java.text.SimpleDateFormat formater = new java.text.SimpleDateFormat( "yyyy年MM月dd日"); String strCurrentTime = formater.format(new java.util.Date()); %> <%=strCurrentTime %> </body> </html> 运行结果

一种选择,成就一种人生
主题:Jsp语法详解
主讲人:刘智勤
每天进步多一点,每天收获多一点,每天快乐多一点
本章目标
• • • • • 掌握JSP的定义、作用、以及页面组成 掌握如何创建JSP页面 掌握JSP页面的执行过程 熟练运用page指令 掌握JSP 脚本元素的用法
13
每天进步多一点,每天收获多一点,每天快乐多一点
JSP 执行过程 2-1
Ø Web容器处理JSP文件请求需要经过3个阶段:
– 翻译阶段:JSP文件会被Web容器中的JSP引擎转换成Java 源码 – 编译阶段:Java源码会被编译成可执行的字节码 – 执行阶段:容器接受了客户端的请求后,执行编译成字节码 的JSP文件;处理完请求后,容器把生成的页面反馈给客户 端进行显示
演示:JSP页面修改前后的响应速度
15
每天进步多一点,每天收获多一点,每天快乐多一点
JSP运行环境
Ø Web容器(如:Tomcat)提 供JSP引擎,负责JSP文件 的执行,提供JSP的运行时 环境
Ø 在Eclipse中部署Web应用, 等同于在Web容器中部署 Web应用
与Eclipse中Web应用的 目录结构一模一样
– HTML的注释方法:<!-- html注释--> – JSP注释标记:<%-- JSP注释--%> – 在JSP脚本中使用注释:
<% //单行注释 %> <% /*多行注释 */ %>
9
每天进步多一点,每天收获多一点,每天快乐多一点
本章小结1
• 请编写一个JSP页面exercise1.jsp,要求:
每天进步多一点,每天收获多一点,每天快乐多一点
注释
JSP 页面组成 4-2
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=GBK" pageEncoding="GBK"%> 指令 <html> <head> 静态内容 <title>输出当前日期</title> 注释 </head> <!-- 这是HTML注释(客户端可以看到源代码)--> <%-- 这是JSP注释 (客户端不可以看到源代码) --%> <body> 你好,西软!今天是 <% //使用预定格式将日期转换为字符串 小脚本 SimpleDateFormat formater = new SimpleDateFormat("yyyy年MM月dd 日"); String strCurrentTime = formater.format(new Date()); %> <%=strCurrentTime %> 2016/2/25 </body> </html>
22 info="一个测试页面"
ng.*; import 为 JSP 页面引入 Java 类和包。 javax.servlet.* 各类或包间用逗号分隔 javax.servlet.jsp.* javax.servlet.http.* buffer contentTy pe pageEnco ding
例如:
<%@ page contentType ="text/html;charset=GB2312" %>
2016/2/25
20
每天进步多一点,每天收获多一点,每天快乐多一点
page指令元素
这条page指令就指定了contentType属性的值是 "text/html;charset=GB2312",即JSP页面的MIME类型是 text/html,使用的字符集是GB2312,这样可以显示标 准的汉字。 page指令的属性主要包括:language,import, contentType,info,pageEncoding,buffer,autoFlush ,session,errorPage,isErrorPage,isThreadSafe等。 表2.1列出了page指令的属性及其作用。
– ◆脚本元素
– ◆指令元素
2016/2/25
– ◆动作元素(下一节讲解)
18
每天进步多一点,每天收获多一点,每天快乐多一点
JSP指令元素
JSP 指令
page
include
taglib
JSP 指令的语法为: <%@ 指令名称 属性1=“属性值1”属性1=“属性值1” … 属性n=“属性n”%>
2016/2/25
2016/2/25
21
每天进步多一点,每天收获多一点,每天快乐多一点
page指令元素常用属性表
属 性 language

用 java
默认值


定义要使用的脚本语言
language ="java" import="java.io.* ", "java.util.Hashtable", "javax.servlet.jsp.* " buffer="64 KB" contentType="text/htm l; charset=GB2312" pageEncoding="GB23 12" 无
JSP文件
请求 响应 客户端 应用服务 器 执行 翻译 .java
14
1 2
3
编译 .class
每天进步多一点,每天收获多一点,每天快乐多一点
JSP 执行过程 2-2
Ø 第一次请求之后,Web容器可以重用已经编译好的字 节码文件
.class 第二次请求 响应 客户端 执行 应用服务器
Ø 注意:如果对JSP文件进行了修改,Web容器会重新 对JSP文件进行翻译和编译
true true 无 jsp"
autoFlush="true" session="false" errorPage="error/error.
false
isErrorPage="true"
true
23
isThreadSafe="true"
相关文档
最新文档