JSP脚本元素和标记
JSP页面基本结构
JSP 页面基本结构一个JSP 页面有两部分组成,一部分是JSP 页面的静态部分,如HTML ,CSS 标记等,用来完成数据显示和样式;一部分是JSP 页面的动态部分,如脚本程序,JSP 标签等,用来完成数据处理。
JSP 静态部分可以用任何通常使用的Web 制作工具编写,编写方式也和原来的一样。
JSP 页面动态部分包括四部分,分别为脚本元素(Scripting Element ),指令(D irective ),动作(Action )和注释。
脚本元素用来嵌入Java 代码,这些Java 代码将成为转换得到的Servlet 的一部分,脚本元素又可以划分为声明、表达式和脚本执行程序;JSP 指令用来从整体上控制Servlet 的结构;动作用来引入现有的组件或者控制JSP 引擎的行为。
为了简化脚本元素,JSP 定义了一组可以直接使用的变量(预定义变量),比如前面代码片断中的request 就是其中一例。
JSP 页面构成元素详细信息如图2-1所示:c图2-1 JSP 页面构成元素我们来看一个完整的JSP 案例,其中包括了大多数JSP 页面结构元素。
具体代行号0是page指令的用法。
行号1是taglib指令的用法。
行号2-8、33、34是HTML语法中的元素用法。
行号9-11、20-22是JSP隐藏注释的用法。
行号12是include指令的用法。
行号13、14、30、32是JSP动作元素的用法。
行号15是自定义标记,它与行号中的内容相关。
行号16是脚本元素中JSP表示式的用法。
行号17、18、19是脚本元素中JSP声明的用法。
行号23-29、31是脚本元素中JSP脚本小程序的用法。
第2章 JSP语法
五、Java控制结构
• 顺序结构 • 选择结构 • 循环结构
顺序结构
• 按设计时所确定的次序,一个一个语句的顺序执行 • 一般程序主体采用顺序结构,其中嵌套选择和循环结构。
选择结构控制
单选if、 双选if„else、 多选switch
if语句
if (条件表达式) 语句
条件?
True
例:
String x="男",s=""; if(x=="男") s="不能进入";
实践环节: 上机实战,验证结果
• 例3:利用Switch语句编程实现分数和等级的对应 • 0~59:E 60~70:D 70~80:C • 80~90:B 90~100:A
实践环节: 编写网页 exa2_14.jsp:表单页面,输入学生的成绩 exa2_15.jsp:根据成绩值显示成绩的等级
二、循环结构控制
知识点介绍
• 乱码问题: • ex9.jsp页面获取的信息可能是乱码(由很多?组 成),此时必须对含有汉子的字符进行特殊的处 理。
• 解决方案:在获取表单信息之前设置统一编码 • request.setCharacterEncoding("GBK");
• 例1写出程序 • • y= •
-1 0 1
案例
例1: int x=6, y=10, k=5; switch( x%y ) { case 0: k=x*y; break; case 6: k=x/y; break; case 12: k=x-y; break; default: k=x*y-x; break; } 例2: char ch='A'; int r=6; switch( ch+5 ) { case 'A': r=r+3; break; case 'B': r=r+5; break; case 'C': r-=6; break; default : } r/=2;
Jsp基本语法
Jsp基本语法Jsp语法分为3类:脚本元素、指令元素、动作元素。
jsp的脚本元素有以下4个:1. 隐藏注释:<%--这是客户端不可见的隐藏注释--%>2. 声明(declarations):<%!这是声明%>3. 脚本段(scriptlets):<%这是脚本段%>4. 表达式(expression):<%=这是表达式%>jsp的指令元素有以下3个:指令主要用来提供整个JSP网页相关的信息,并且用来设定JSP页面的相关属性。
一、page指令功能:设定整个JSP网页的属性和相关功能。
语法:<%@ page attribute1="value1" attribute2="value2" %>标签元素:<jsp:directive.page attribute1="value1" attribute2="value2" />page指令元素的属性language="language" 指定JSP Container要用什么语言来编译JSP网页。
目前只可以使用Java语言,不过不排除增加其它语言。
默认值为Java。
extends="className" 定义此JSP页面产生的Servlet是继承自哪个父类。
必须为实现HttpJspPage接口的类。
JSP规范对不完全理解其隐意的情况下使用此属性提出警告。
import="importList" 定义此JSP页面可以使用哪些Java API。
用逗号分隔列出一个或多个全质类名。
此列表用于在生成的java servlet中创建相应的导入语句。
以下包是自动包含的,不必被指出:ng.*;java.servlet.*;java.servlet.jsp.*;java.servlet.htt.*session="true|false" 指明JSP页面是否需要一个HTTP会话,如果为true,那么产生的servlet 将包含创建一个HTTP会话(或访问一个HTTP会话)的代码,缺省为true。
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中的脚本元素有四种:注释、声明、表达式和程序段。
jsp 6个常用标签
一、Include指令<jsp:include>标签表示包含一个静态的或者动态的文件。
语法:<jsp:include page="path" flush="true" />or<jsp:include page="path" flush="true"><jsp:param name="paramName" value="paramValue" /></jsp:include>注:1、page="path" 为相对路径,或者代表相对路径的表达式。
2、flush="true" 必须使用flush为true,它默认值是false。
3、<jsp:param>子句能让你传递一个或多个参数给动态文件,也可在一个页面中使用多个<jsp:param> 来传递多个参数给动态文件。
二、Forward指令<jsp:forward>标签表示重定向一个静态html/jsp的文件,或者是一个程序段。
语法:<jsp:forward page="path"} />or<jsp:forward page="path"} ><jsp:param name="paramName" value="paramValue" />……</jsp:forward>注:1、page="path" 为一个表达式,或者一个字符串。
2、<jsp:param> name 指定参数名,value指定参数值。
参数被发送到一个动态文件,参数可以是一个或多个值,而这个文件却必须是动态文件。
JSP页面的基本元素
JSP页面的基本元素JSP页面元素构成:静态内容、指令、表达式、小脚本、声明、注释。
JSP指令包括:page指令:通常位于jsp页面的顶端,同一个页面可以有多个page指令。
include指令:将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句。
taglib指令:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。
page指令语法:<%@page 属性="属性值" 属性2="属性值1,属性值2"... 属性n="属性值n" %>一般会将contentType设成contentType="text/html; charset=utf-8"JSP注释在JSP页面的注释。
有一下几种方式:HTML的注释:(客户端可见)<!-- html注释 -->JSP的注释:(客户端不可见)<%-- html注释 --%>JSP脚本注释:(可以嵌入在JSP的注释中)// 单行注释/* 多行注释 */JSP脚本在JSP页面中执行的Java代码。
语法:<% Java代码 %>示例:<%out.println("moonlit");%>JSP声明在JSP页面中定义变量或者方法。
语法:<%! Java代码 %>示例:<%!String s = "moonlit"; // 声明了一个字符串变量int add(int x, int y) { // 声明了一个返回整型的函数,实现两个函数的求和。
return x + y;}%>声明了变量和函数之后,我们就可以在接下来使用这些变量和函数。
JSP表达式在JSP页面中执行的表达式。
语法:<%=表达式 %> // 注意:表达式不以分号结束示例:(如在JSP页面中显示JSP生命中定义的s)<p>姓名:<%=s %></p>。
第2章 JSP语法基础 2.3 JSP指令元素、2.4 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插件
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模版元素。
JSP基本语法
26
Jsp动作标记- jsp:forward动作标记
3、 jsp:forward动作标记 jsp:forward动作允许将用户请求定位到其它页 面,基本的语法格式是:
<jsp:forward page={"要转向的页面url"|"<%=表达式 %>"} /> 或者 <jsp:forward page={"要转向的页面url"|"<%=表达式 %>"} > <jsp:param name="属性名" value="属性值" /> </jsp:forward>
6
演示:示例 1
JSP Scriptlet 2-1
JSP Scriptlet概念
JSP Scriptlet就是在JSP页面里嵌入一段Java代码
JSP Scriptlet在JSP页面中的表现形式
<% Java代码 %>
7
JSP Scriptlet 2-2
使用JSP Scriptlet进行JSP编程
第九章
JSP 基础(二) 脚本、指令与动作的使用
回顾
JSP 的英文全称是JavaServer Page,是一种 Java服务器端编程技术之一,用于创建动态网页 JSP的页面由静态内容、JSP Scriptlet、 JSP 表 达式、申明、JSP 指令和注释等组成 JSP 生命周期包括转换、编译和执行阶段 JSP 页面可使用 Dreamweaver 和 MyEclipse8.5 等开发工具来创建
24
Jsp动作标记- jsp:param动作标记
ห้องสมุดไป่ตู้ ch9_1.jsp文件内容: <%@ page contentType="text/html;charset=GB2312" %> <%! public String getMax(double x,double y){ if (x>y){ double temp; temp=x; x=y; y=x; } return ("大数是:"+y+",小数是:"+x); } %>
JSP页面的构成
JSP页⾯的构成JSP页⾯就是带有JSP元素的常规Web页⾯,它由静态内容和动态内容构成。
其中,静态内容指HTML元素,动态内容(JSP元素)包括指令元素、脚本元素、动作元素、注释等内容。
1、指令元素指令元素主要⽤于为转换阶段提供JSP页⾯的相关信息,指令不会产⽣任何输出到当前的输出流中,它指定了有关页⾯本⾝的信息,这些信息在请求之间⼀直保持不变。
指令元素语法为<%@ directive{attr="value"}%>。
指令元素有三种:page、include、taglib。
1)page该指令⽤于整个页⾯,定义与页⾯相关的属性,它是JSP页⾯和容器的通信员,⼀般放在JSP页⾯的第⼀⾏。
与page相关的属性如下:属性描述buffer指定out对象使⽤缓冲区的⼤⼩autoFlush控制out对象的缓存区contentType指定当前JSP页⾯的MIME类型和字符编码errorPage指定当JSP页⾯发⽣异常时需要转向的错误处理页⾯isErrorPage指定当前页⾯是否可以作为另⼀个JSP页⾯的错误处理页⾯extends指定servlet从哪⼀个类继承import导⼊要使⽤的Java类info定义JSP页⾯的描述信息isThreadSafe指定对JSP页⾯的访问是否为线程安全language定义JSP页⾯所⽤的脚本语⾔,默认是Javasession指定JSP页⾯是否使⽤sessionisELIgnored指定是否执⾏EL表达式isScriptingEnabled确定脚本元素能否被使⽤a、import="导包列表",可以多次导⼊,也可以⽤逗号分隔开。
b、language=“scriptingLangeuage”,指定在脚本元素使⽤的脚本语⾔,默认是Java。
c、contentType="cinfo",指定HTTP响应的头部的Content-Type值。
j3基本语法
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"
JSP实验报告2-JSP指令标记和动作标记
青岛科技大学实验报告姓名:陶浩专业:惠普测试班级:171学号:1708090122 课程:脚本编程技术时间:2019/9/24实验项目:实验2 JSP指令标记和动作标记一、实验目的1. 掌握怎样在JSP页面中使用page指令设置contentType的值;使用include指令在JSP页面中静态插入一个文件的内容。
2. 掌握怎样在JSP页面中使用include标记动态加载文件;使用forward动作标记实现页面的转向。
二、实验要求1. JSP指令标记:编写3个JSP页面和一个hello.txt文档,hello.txt文档的每行有若干英文单词,每个单词用空格分开,每行用<BR>分隔(1)first.jsp的具体要求first.jsp使用page指令设置contentType属性的值是text/plain,使用include指令静态插入hello.txt文件。
(2)second.jsp的具体要求second.jsp使用page指令设置contentType属性的值是application/vnd.ms-powerpoint,使用include指令静态插入hello.txt文件。
(3)third.jsp的具体要求third.jsp使用page指令设置contentType属性的值是application/msword,使用include 指令静态插入hello.txt文件。
2. JSP动作标记编写4个JSP页面,one.jsp、two.jsp、three.jsp、error.jsp。
one.jsp、two.jsp、three.jsp都含有一个导航条,以便让用户方便的单击超链接访问这3个页面,要求这3个页面通过使用include动作标记动态加载导航条文件head.txt。
head.txt<%@ page contentType="text/html;charset=GB2312" %><table cellSpacing="1" cellPadding="1" width="60%" align="center" border="0" ><tr valign="bottom"><td><A href="one.jsp"><font size=3>one.jsp页面</font></A></td><td><A href="two.jsp"><font size=3>two.jsp页面</font></A></td><td><A href="three.jsp"><font size=3>three.jsp页面</font></A></td></tr></Font></table>(1)one.jsp的具体要求页面有一个表单,用户可以使用该表单输入一个1~100之间的整数,并提交给本页面;如果输入的整数在50到100之间(不包括50)就转向three.jsp,如果输入的整数在1到50之间就转向two.jsp,如果输入不符合以上两种情况,就转向error.jsp。
JSP填空题和判断题知识讲解
J S P填空题和判断题填空题1.W3C是指___万维网联盟_______。
2.Internet采用的通信协议是___TCP/IP___。
3.当今比较流行的技术研发模式是__C/S__和__B/S__的体系结构来实现的。
4.Web应用中的每一次信息交换都要涉及到__服务器_和_客户端__两个层面。
5.HTML文档的开头和结束元素为__<html></html>_____。
6.表格定义中使用的子标记<td>的含义为___单元格___。
7.将一个图像作为一个超级链接,用到了__<img>__标记。
8.input表单域表示一个文本框时,它的type属性应该赋值为__text____。
9.URL是Uniform Resource Locator的缩写,中文称之为统一资源定位器。
10.超级链接标记<a>的href属性取值为链接的目标地址。
11.一个完整的JSP页面是由普通的HTML标记、JSP指令标记、JSP动作标记、变量声明与方法声明、程序片(Scriptlet)、表达式()、注释(Comment) 7种要素构成。
12.JSP页面的基本构成元素,其中变量和方法声明(Declaration)、表达式(Expression)和Java程序片(Scriptlet)统称为JSP脚本元素。
13.指令标记、JSP动作标记统称为 JSP标记。
14.“<%!”和“%>”之间声明的方法在整个页面内有效,称为页面的成员方法。
15.在“<%!”和“%>”之间声明的变量又称为页面成员变量,其作用范围为整个JSP页面。
16.JSP页面的程序片中可以插入 HTML 标记。
17.当JSP页面的一个客户线程在执行 synchronized 方法时,其他客户必须等待。
18.JSP页面中,输出型注释的内容写在“<!--”和“-->”之间。
19.JSP声明函数时,如果在前面加上_synchronize 关键字,功能是当前一个用户在执行该方法时,其他用户必须等待,直到该用户完成操作。
[计算机软件及应用]JSP教程 JSP语法
四、指令元素
JSP指令的主要作用是和JSP引擎之间进行沟通,JSP指令发送消息 到服务器端,并不向客户端产生任何输出。所有的指令都在JSP整 个文件范围内有效。
在“<%@”和“%>”之间插入JSP指令,使用格式为: <%@ 指令名 属性1=“值1” [ 属性2=“值2”……] %>
说明: ⑴ 属性值总是用双引号或单引号括起来; ⑵ 属性之间用空格分隔,不需要任何标点。
的形式返回并插入到JSP页面的相应位置。
表达式示例
<%@ page contentType="text/html;charset=GB2312" %> <HTML> <BODY> <P> Sin(0.9)除以3等于
<%=Math.sin(0.90)/3%> <p>3的平方是:
<%=Math.pow(3,2)%> <P>12345679乘72等于
<%=12345679*72%> <P> 5的平方根等于
<%=Math.sqrt(5)%> <P>99大于100吗?回答:
<%=99>100%> </BODY> </HTML>
程序段:Scriptlet
Scriptlet即是Java程序片段,它可以包含任意的Java代码,实现复杂 的操作和控制。
(2) <%”和“%>”之间定义的变量和方法是局部(动态)的;多个用户请求同 一个JSP页面时,各用户间没联系(分别拥有各自的局部变量)。
程序段Scriptlet示例
<%@ page contentType="text/html;charset=gb2312" %> <HTML> <BODY> <% for ( int i=0; i<2; i++ ) { %>
jsp程序设计
jsp程序设计exer03133-1 JSP页⾯由哪些元素构成?主要由指令标识、脚本标识、jsp注释和动作标识构成。
3-2 JSP中主要包含哪⼏种指令标识?它们的作⽤及语法格式是什么?1、page指令,定义在jsp范围内有效的属性,格式为<%@page attr1="value1" attr2="value2"...%>2、include指令,⽤于在当前页⾯的当前位置嵌⼊其他的⽂件,如果嵌⼊的⽂件含有可执⾏代码,则显⽰代码执⾏后的结果。
格式为<%@include file="⽂件的绝对路径或相对路径"%>3、taglib指令,定义⼀个标签库以及其⾃定义标签的前缀,格式为<%@taglib uri="taguri" prefix="tagprefix"%> pre3-3 JSP中的脚本标识包含哪些元素?它们的作⽤及语法格式是什么?脚本标识包含三种元素:声明标识、jsp表达式、脚本程序(1)jsp表达式⽤于向页⾯中输出信息,格式为<%=变量或可以返回值得⽅法或java表达式%>(2)声明标识可以在页⾯中声明变量或⽅法,格式为<%!声明变量或⽅法的代码%>(3) 脚本程序中可以定义变量、调⽤⽅法和进⾏各种表达式运算,每⾏语句后以分号结尾,格式为<% java代码 %>3-6 page指令中的哪个属性可多次出现:(C)(A)contentType (B)extends(C)import (D)不存在这样的属性3-7 以下哪些属性是include指令所具有的:(B)(A)page (B)file(C)contentType (D)prefix3-8 下列选项哪些是正确的JSP表达式语法格式:(D)(A)<%String name="YXQ"%> (B)<%String name="您好";%>(C)<%="您好";%> (D)<%="YXQ"%>exer0320⼀. JSP中常⽤的动作标识有哪些?作⽤分别是什么?1、jsp:include:在页⾯被请求的时候引⼊⼀个⽂件,格式为<jsp:include page=""/>2、jsp:useBean:寻找或者实例化⼀个JavaBean。
jsp三大指令标记,七大动作标记、详解。
jsp三⼤指令标记,七⼤动作标记、详解。
JSP的基本构成JSP页⾯主要由指令标签,注释,嵌⼊Java代码,JSP动作标签,HTML标记语⾔等五个元素组成。
3个指令标签1 、page指令page指令⽤户定义JSP页⾯中的全局属性,Eg:<%@ page attr1=”value1” atrr2=”value2”.......%>page指令对整个页⾯有效,包括静态的包含⽂件,但page指令不能⽤于被动态包含的⽂件,例如使⽤<jsp:include>包含的⽂件。
在⼀个JSP页⾯中可以使⽤多个page指令,但page指令中的属性只能出现⼀次(import属性除外)。
page指令的常⽤属性如下:(1) language属性该属性⽤于设置JSP页⾯使⽤的语⾔,⽬前只⽀持Java语⾔。
例:<%@ page language=”java” %>(2) extends属性该属性⽤于设置JSP页⾯所继承的Java类,JSP和Servlet都可以继承指定的⽗类,但该属性并不常⽤.(3) import属性该属性⽤于设置JSP所导⼊的类包,JSP页⾯可以嵌⼊Java代码⽚段,这些Java代码在调⽤API时需要导⼊相应的类包。
例: <%@page import=”java.util.*” %>(4) pageEncoding属性该属性⽤于定义JSP页⾯的编码格式,指定的⽂件编码格式。
例:<%@ page pageEncoding=”UTF-8” %>(5) contentType属性该属性⽤于设置JSP页⾯的MIME类型和字符编码,浏览器会根据些解释页⾯。
例:<%@ pagecontentType=”text/html;charset=utf-8” %>(6) session属性该属性⽤于定义JSP页⾯是否使⽤session会话对象,其值是boolean类型,默认值为true. Eg:<%@ page session=”true” %>(7) buffer属性该属性⽤于设置out对象所使⽤的缓冲区⼤⼩,默认⼤⼩是8KB,单位只能是8的倍数。
第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元素可以分为三大类:JSP指令元素、JSP动作元素、JSP脚本元素。
一、JSP指令元素仅仅是在“翻译”阶段使用的,即把JSP翻译成Servlet。
JSP指令元素只有“三个”:page、taglib、include。
但每个指令可能有若干个属性。
比如:page指令有contentType属性、有import属性等。
二、jsp动作元素又可分为“三种”:JSP标准动作元素,JSP标准标记库(JSTL)动作元素,自定义动作元素。
JSP标准动作元素”是早期就存在的JSP规范定义的标准动作元素,它是由jsp作为前缀的标签。
例如:<jsp:useBean ……>就是JSP标准动作元素。
JSP标准标记库(JSTL)动作元素:是在JSP发展到后才来产生的,他主要由:1.核心库(core)、2.国际化和格式化库、3.关系数据库访问库、4.XML处理库、5.函数库,这五个库组成。
每个库的标签都对应相应的标签前缀,比如:核心库里面的标签前缀是c,<c:out……>。
由于现在的Web一般都采用MVC模式,所以JSTL中的关系数据库访问库一般比较少用到。
而在用纯JSP设计的Web中一般会用到。
自定义动作元素:如果觉得JSTL还不够用,你还可以开发自定义的定制动作。
自定义动作元素在这里不作介绍。
三、JSP脚本元素:JSP脚本元素在JSTL还没发展起来时,是JSP代码的主要组成部分,在JSP脚本里面可以写各种各样的java代码来完成各种任务。
但JSP页面中大量使用JSP脚本元素会使JSP页面凌乱,而且JSP页面使用JSP脚本元素不方便编程任务的分工。
可以说,JSTL就是为了解决JSP脚本元素带来的问题而产生的。
有了JSTL后,可以用JSTL 取代JSP脚本元素(但JSTL还在完善中,有时不能100%的取代JSP页面中的JSP脚本元素)。
EL表达式也是JSP在后来引进的。
他可以为JSP标记的属性等动态赋值,比JSP表达式更加简单易用。
第2章 JSP页面与JSP标记
在图2-12所示的“Java虚拟机选择”界面中指定JVM 路径(本例为c:\j2sdk),然后选择【Install】继 续安装,进入如图2-13所示的“正在安装”界面, 开始执行安装,安装正常完成后,进入如图2-14所 示的“完成安装”界面。
JVM路径
图2-12 Java虚拟机选择界面
S J P
下一步
图2-7 欢迎界面
S J P
• 安装与配置Tomcat
在图2-8所示的“协议许可”界面中选择【I Agree】继续安装,进入如图2-9所示的“选择 安装组件”界面。
同意
图2-8 协议许可界面
S J P
• 安装与配置Tomcat
在图2-9所示的“选择安装组件”界面中选择使用默 认选项,选择【Next】继续安装,进入如图2-10所 示的“选择安装位置”界面。
说明Java实用程序的位置 实用程序的位置 说明 说明类和包文件的搜索路径
表2—1 JDK环境变量
S J P
• JDK的下载与安装
配置环境变量 具体操作步骤如下 :
(1)在【系统变量】选项区域中双击“Path”变 量,在弹出的【编辑系统变量】对话框中的 【变量值】输入框中添加Path变量值,如图23所示。 (2)在【Administrator的用户变量】选项区域 中,单击【新建】按钮,在弹出的【编辑用户 变量】对话框中输入CLASSPATH变量名和变量 值,如图2-4所示。
P
J
P • 启动与停止Tomcat
S
图2-15 Tomcat服务操作 菜单
图2-16 启动Tomcat服务
J
• 启动与停止Tomcat P
S
启动类型
Tomcat服务配置 图2-17 Tomcat服务配置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章——JSP脚本元素和标记一、教学内容1.JSP页面的基本结构2.变量和方法的声明3.Java程序片4.表达式5.JSP中的注释6.JSP指令标记7.JSP动作标记二、教学目标1.理解JSP页面的基本结构;2.掌握JSP变量和方法的声明方法;理解Java程序片及其编写;会用Java表达式与JSP注释;3.熟悉JSP指令标记与JSP动作标记;4.初步掌握JSP编程方法。
三、教学重点及难点1.重点:JSP页面构成;变量与方法声明;Java程序片;Java表达式。
2.难点:JSP指令与动作标记。
四、教学方式与方法演示讲解法,任务驱动法,案例教学法,问题探究法,与多媒体教学演示相结合五、实施教学第一部分:新授课一JSP页面的基本结构1.构成JSP页面的五种元素:普通的HTML标记,JSP标记,变量和方法的声明,Java程序片,Java表达式•JSP页面程序是在传统的静态页面程序中加入用Java描写的动态页面处理部分。
例1:制作JSP页面example2_1.jsp,显示内容如图1所示。
分析:(1)创建JSP页面:记事本、DREAMWEAVER(2)编辑JSP页面:Date对象的创建和当前日期的获取;和的计算;(3)保存JSP页面:文件类型、文件名(不区分大小写)(4)运行JSP页面:WEB服务器二JSP脚本元素1.什么是JSP的脚本元素?用来在JSP中包含脚本代码,以<%开始并以%>结束,通常是Java代码,它允许声明变量和方法,包含任意脚本代码和对表达式的求值。
2.JSP中的脚本元素有哪些?注释、声明、表达式和程序代码段。
3.变量和方法的声明:声明是用来声明在JSP网页程序中将会用到的变量和方法。
在JSP中使用这些变量和方法前,必须事先声明。
声明语句必须符合指定脚本语言(Java)的语法规范。
语法格式如下:<%!Java的变量声明语句Java的方法声明代码%>说明:(1)成员变量被所有JSP用户共享。
例2:制作完成一个简单的网站计数器example2_2.jsp。
(2)声明的变量和方法在整个JSP页面内都有效,与位置无关。
例3:完成例1中求和的方法声明。
4.Java程序片:一段有效JSP脚本语言程序段认为是Java程序段。
该程序段内容必须符合相应脚本语言的语法规定。
语法格式如下:<% Java程序片 %>例4:创建根据当前系统时间给出适当的问候语的JSP页面程序。
说明:(1)在Java程序片中可以定义变量(JSP页面的局部变量)、声明方法、调用方法、使用表达式等。
注意在变量声明和使用表达式时必须跟有“;”。
思考:JSP页面的成员变量和局部变量的区别。
✋成员变量被所有用户共享,服务器关闭时才释放变量的内存空间;✋局部变量在用户的线程获得CPU资源时才被分配内存空间,而且不同用户使用的局部变量互不干扰,当用户线程将当前Java程序片执行完毕即释放局部变量的内存空间。
问题:如何避免多个用户同时操作JSP页面的成员变量?解决方法:将操作成员变量的方法用synchronized关键字修饰。
例5:通过synchronized方法操作一个成员变量来实现一个简单的计数器example2_4.jsp。
(2)在Java程序片内可以使用任何隐含的对象和任何用<jsp:useBean>声明过的对象。
(3)Java程序片内的注释格式与Java中的注释格式一致。
5.表达式:任意一个有效的JSP脚本语言表达式就是Java表达式,即表达式内容必须符合相应脚本语言的语法规则。
语法格式如下:<%= 表达式 %>表达式是在运行时由服务器计算求值,其结果转化成String,插入该表达式在JSP页面的相应位置。
如果表达式的结果不能转化成String,将产生错误异常。
使用表达式,可在JSP页面内显示动态数据内容。
例6:完成例1中1到100的连续和的计算和显示。
说明:(1)不能用一个分号“;”作为表达式的结束符。
但同样的表达式用在Java程序片中就需要使用分号。
(2)表达式元素可以很复杂,由多个表达式组成。
这种复杂表达式在计算值的时候,表达式的计算次序是由左向右,在这种情况下,有时会产生一定的副作用。
6.JSP中的注释JSP提供了两类注释的方法:一类注释是对JSP网页自身的注释;一类注释是会出现在发送给客户的生成网页中的注释。
(1)JSP网页自身注释:又称隐藏式注释,它是对JSP程序进行的注释,服务器不会将它发送到客户端,对客户而言,是看不见即隐藏的,即运行后打开网页的源代码中不包含注释语句。
语法格式如下:<%-- JSP网页自身的注释内容 --%>(2)使用Java语言的注释方法对JSP程序进行注释,但是这种注释必须包含在<%与%>之间。
方法如下:<% 程序段/* 多行注释内容多行注释内容 */程序段// 单行注释内容程序段%>•通常,这类注释多用于进行程序说明,注释自己的JSP程序。
这些注释内容在JSP编译时被完全忽略,在最终传递到客户端的网页中这种注释是不存在的,既不会显示在客户的浏览器中,也不会在源代码中看到。
(3)发送到客户端的注释:又称“嵌入式注释”,一般采用HTML及XML的语法格式:<!-- 发送到客户端的注释 -->JSP引擎对此类注释不作任何解释,而直接将其返回给客户端的浏览器,其结果是会在客户端页面中显示一个注释;同时,客户在查看源代码时可以看到这条注释。
注意:在这种注释中可以出现动态数据,这是与一般HTML注释最大的不同之处。
注释中的动态数据是通过表达式(expression)来表示的,其语法格式如下:<!-- 注释 <%=expression %> 注释 -->习题一:1.制作一个JSP 页面,在页面中首先声明两个用来计算x*y 和x/y 的方法,然后在页面中调用这两个方法,并显示计算结果。
2.制作一个JSP 页面,在页面中用2磅和4磅各自输出一遍英文字母。
三 JSP 指令标记1.JSP 中的三个指令: page 、include 、taglib注意: 指令并不会输出任何数据至客户端,且有效范围仅限于使用该指令的JSP 网页。
2.指令的语法:<%@ 指令名称 属性1= ,属性2= ,… %> 3.page 指令(1)功能:page 用于定义与整个JSP 页面相关的属性。
(2)作用域:对整个页面有效。
(3)page 指令的语法: <%@ page 属性1= ,属性2= ,… %> 如:<%@page contentType="text/html;charset=GB2312"%>• 该语句定义JSP 页面的contentType 属性为“text/html;charset=GB2312”,这样页面就可以显示标准的汉语。
(4)page 指令的各个属性:4.include 指令(1)功能:文件加载指令include 用来指定JSP 文件被编译的时候,需要静态插入的文本或者代码。
(2)语法:<%@ include file=“被包含的文件名”%>注意:include 指令只有一个属性file ,值为被包含文件的名称。
例1:创建一个包含include 指令的JSP 页面程序。
(3)工作流程:注意:包含include 指令的JSP 文件与include 指令指定的文件中page 指令的contentType 属性值必须相同。
例2:制作如图所示的JSP 页面,保存为example2_7.jsp 。
四 JSP 动作标记1.什么是JSP 的动作标记?JSP 规范中包含一些标准的动作控制标签,它们必须通过适当的JSP 引擎来实现,在JSP 引擎的任何版本中或者是Web 服务器中总是可用的。
它们可以辅助那些定制的类型实现特定的JSP 页面。
2.JSP 中标准的动作控制标签有哪些?<jsp:include>,<jsp:forward>,<jsp:plugin>,<jsp:param>,<jsp:useBean>,<jsp:setProperty>和<jsp:getProperty>。
3.include 动作标记(1)作用:在即将生成的页面上动态地插入一些文件。
(2)语法:<jsp:include page =URL > <jsp:param NAME = "参数名称1" VALUE = "值1" /> <jsp:param NAME = "参数名称2" VALUE = "值2" /> ……</jsp:include>• page 属性指定需要包含进页面的文件的URL 地址。
• 使用<jsp:param>可以传递参数到要插入的JSP 网页。
• 若无参数,则必须使用如下格式: <jsp:include page =URL />例3:制作如下图所示的JSP 页面。
question.txtanswer.jspmyfile/ok.txtmyfile/ok.txt:<%@ page contentType="text/html;charset=GBK"%><A href="firstExample2_10.jsp">欢迎去第一个页面</A><BR><A href="secondExample2_10.jsp">欢迎去第二个页面</A>例4:制作如下图所示的JSP页面。
myfile/triangle.jsp参数的获取:request.getParameter("参数名称");myfile/triangle.jsp :<%@ page contentType="text/html;charset=GBK"%> <html><body><%! public String getArea(double a,double b,double c){ if((a+b)>c&&(a+c)>b&&(b+c)>a){double p=(a+b+c)/2.0; double area=Math.sqrt(p*(p-a)*(p-b)*(p-c)); return ""+area; }else return(""+a+","+b+","+c+"不能构成一个三角形,无法计算面积"); } %><% String sideA=request.getParameter("sideA"); String sideB=request.getParameter("sideB");String sideC=request.getParameter("sideC"); double a=Double.parseDouble(sideA);double b=Double.parseDouble(sideB); double c=Double.parseDouble(sideC); %>如何调用?<%@ page contentType="text/html;charset=GBK" %><html><body bgcolor=yellow><%! double a=3,b=4,c=5;%><BR>加载triangle.jsp计算三边为<%=a%>,<%=b%>,<%=c%>的三角形面积:<jsp:include page="myfile/triangle.jsp" flush="true"><jsp:param name="sideA" value="<%=a%>" /><jsp:param name="sideB" value="<%=b%>" /><jsp:param name="sideC" value="<%=c%>" /></jsp:include></body></html>(3)工作流程:思考:include指令与include动作标记的比较?处理时间不同。