JSP实验二 JSP基本语法

合集下载

第2章 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实验二-JSP基本语法

Java web应用编程基础实验报告实验2:JSP基本语法实验姓名:___ ____班级:______学号:____ _成绩:_____一、实验目的:●熟悉HTML语法,理解和掌握JSP基本语法。

●初步掌握JavaScript的使用●初步掌握利用指令、脚本元素和动作元素,进行简单的JSP和HTML混合编程的方法和技术。

二、实验要求:●理解Web Server,正确使用Apache的Tomcat建立JSP Server。

●编写程序完成以下实验内容,通过手工和MyEclipse两种方式分别完成JSP文件的布署。

●上交实验报告电子文档(文档包含源程序,以班级、学号、姓名依次出现组成的字符串标识文档,以班级为单位上交).三、实验内容:1、采用声明实现访问计数器count.jsp,并在页面中显示:“当前访问本网站的用户数为:**人/次。

"程序:〈%@ page language=”java" import="java.util.*" pageEncoding="GB2312”%〉〈html〉<head〉<title〉网页访问计数〈/title></head>〈body><%if (application。

getAttribute(”count")== null) {application。

setAttribute("count”, new Integer(0));}Integer count=(Integer)application.getAttribute("count");application。

setAttribute("count”, new Integer(count.intValue()+ 1));count=(Integer)application.getAttribute("count");%>〈center>你是第<%=count。

Jsp基本语法

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:”,结束标记为“%>”或“/>”。

比如:<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中的脚本元素有四种:注释、声明、表达式和程序段。

5.JSP基本语法

5.JSP基本语法
2 JSP基本语法
• • • • • 2.1 注释 2.2 HTML元素 2.3 脚本元素 2.4 指令元素 2.5 动作元素
2.1 注释
• HTML 注释
被发送到客户端,不直接显示,在源代码中可以查看到。 <!-- 注释 --> 唯一不同之处是可在其中使用表达式,从而包括动态内容
• JSP注释(隐藏注释)
TYPE=text/html; CHARSET=iso-8859-1
2.4.1 page指令
• <%@ page %>指令作用于整个JSP页面,包括静态的包含 文件。但是<% @ page %>指令不能作用于动态的包含文件, 比如 <jsp:include> 。 • 可以在一个页面中用上多个<% @ page %>指令,但是其中 的属性只能用一次,不过也有个例外,那就是import属性, 可以多次使用。 • 无论<% @ page %>指令放在JSP的文件的哪个地方,它的 作用范围都是整个JSP页面。不过,为了JSP程序的可读性, 以及好的编程习惯,最好还是放在JSP文件的顶部。 • 属性区分大小写 。
copyright.html: <p>&copy; 2002 Microsoft Corp.</p>
2.4.2 include指令
使用include指令可以把一个复杂的JSP页面分成若干简单的部 分,当要对页面更改时,只需更改对应的部分就行了。 通常情况下把页面分成多个区,典型的分区方法如下 头部:head.jsp,LOGO 页面主体: body.jsp, 功能区 尾部:footer.jsp,版权声明等
2.3.5 脚本元素举例
• • • • • • • • • • • • • • • • • <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <html> <body> <%! public class Circle {double r; Circle(double r) { this.r=r; } double area() { return 3.14*r*r; } double length() { return 3.14*r*2; } } %>

第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插件
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java web应用编程基础实验报告实验2:JSP基本语法实验姓名:___ ____班级:______学号:____ _成绩:_____一、实验目的:●熟悉HTML语法,理解和掌握JSP基本语法。

●初步掌握JavaScript的使用●初步掌握利用指令、脚本元素和动作元素,进行简单的JSP和HTML混合编程的方法和技术。

二、实验要求:●理解Web Server,正确使用Apache的Tomcat建立JSP Server。

●编写程序完成以下实验内容,通过手工和MyEclipse两种方式分别完成JSP文件的布署。

●上交实验报告电子文档(文档包含源程序,以班级、学号、姓名依次出现组成的字符串标识文档,以班级为单位上交)。

三、实验内容:1、采用声明实现访问计数器count.jsp,并在页面中显示:“当前访问本网站的用户数为:**人/次。

”程序:<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%><html><head><title>网页访问计数</title></head><body><%if (application.getAttribute("count") == null) {application.setAttribute("count", new Integer(0));}Integer count=(Integer)application.getAttribute("count");application.setAttribute("count", new Integer(count.intValue() + 1));count=(Integer)application.getAttribute("count");%><center>你是第<%=count.intValue()%>个访问者</center></body></html>访问记数结果:2、编写一个JSP程序,计算整数的阶乘,并显示出结果。

要求先声明计算阶乘的方法,再调用该方法,最后在页面上输出结果。

(要求:通过表单提交一个正整数,然后计算它的阶乘。

其中要对提交的是否为整数作判断,是整数则进行阶乘计算,不是整数则要求重新提交。

)程序:<%@page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><font size=5 color=red><html><title>一个整数的阶乘运算</title><%! //核心算法long Factorial(int n){if(n==0){return 0;}else{int sum=1;for(int i=1;i<=n;i++){sum=sum*i;}return sum;}}%><% //检测输入的数据是否为整数int num=0;String str=request.getParameter("num");try{if(str!=null){num=Integer.parseInt(str);}else{}}catch(Exception e){out.println("只能输入整数");}%><body><p>请输入一个整数:</p> //主界面<form action="#"method="post"name="form"><input type="text"name="num"><input type="submit"name="submit"value="开始计算"> </form><p><%=num%>的阶乘是:<%=Factorial(num)%></p> </body></html></font>输入一个整数6:得出计算结果:输入小数8.1:提示只能输入整数:3、在JSP页面中静态包含文件。

要求程序包含两个文件,主文件静态包含一个能够计算数据的算术平方根的页面。

程序:(quest3-1.jsp)<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%><html><title>静态包含页面及计算数的平方根</title><body bgcolor=#FFFFFF> //设置背景色为白色<font size="3"><center><p>请输入一个正数</p><%@include file="quest3-2.jsp"%> //包含页面quest3-2.jsp</center></font></body></html>(quest3-2.jsp)<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><font size=5 color=black><html><title>计算一个数的算术平方根</title><% //输入数据并检测是否为数字double num=0;String str=request.getParameter("num");try{if(str!=null){num=Double.parseDouble(str);}else{}}catch(Exception e){out.println("只能输入数字");}%><body><p>请输入一个数字:</p><form action="#"method="post"name="form"><input type="text"name="num"><input type="submit"name="submit"value="开始计算"></form><p><%=num%>的平方根是:<%=Math.sqrt(num)%></p> //计算算术平方根</body></html></font>输入正数9.0:计算得出结果:4、动态包含页面并传递数据。

要求程序包含两个文件,主文件加载次文件,并将随机产生的0 ~ 1之间的数据传递给它,并且在页面上显示出来。

之后,再把动态包含改为跳转,比较两者之间的区别。

程序:(quest4-1.jsp)<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%><%@page import="java.util.Random"%><% //随机函数Random rand=new Random();int type=rand.nextInt(2);%><jsp:include page="quest4-2.jsp" flush="true"> //包含页面quest4-2.jsp<jsp:param name="type" value="<%=type%>"/></jsp:include>(quest4-2.jsp)<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%><%if(request.getParameter("type")!=null){String str=request.getParameter("type");int num=Integer.parseInt(str);%><%=num%><br><%}else{}%><p>message from quest4-2.jsp</p>随机数1:随机数0:四、实验过程中遇到的问题及解决手段:在第二个阶乘运算的实验中,出现了点击“开始计算”的按钮后就卡在“等待localhost…响应”的阶段无法显示计算结果的情况,在我对代码进行仔细的检查后,发现问题出在了算法中的for循环上,我不小心将循环条件的代码打错,导致for循环陷入了死循环,无法跳出,在我将代码改正后,阶乘运算的功能终于得以正常实现。

相关文档
最新文档