1 / 43

JAVA WEB 开发 授课人:张鸽

JAVA WEB 开发 授课人:张鸽. 第一讲 Java 与 JSP 基础知识. 为什么要动态的构建 web 页面. 1 、 Web 页面的内容建立在用户提交的数据之上。 例如:搜索引擎中的结果页面、网上商城中的订单 2 、 WEB 页面中的内容由频繁变动的数据导出。 例如:天气预报或新闻头条页面 3 、 WEB 页面中的内容来自于数据库中. JSP 文件结构及主要标签. <%@ page contentType="text/html;charset=gb2312" %> <%@ page import="java.util.*“ %> ...

alexa
Télécharger la présentation

JAVA WEB 开发 授课人:张鸽

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JAVA WEB开发 授课人:张鸽

  2. 第一讲Java与JSP基础知识

  3. 为什么要动态的构建web页面 1、Web页面的内容建立在用户提交的数据之上。 例如:搜索引擎中的结果页面、网上商城中的订单 2、WEB页面中的内容由频繁变动的数据导出。 例如:天气预报或新闻头条页面 3、WEB页面中的内容来自于数据库中

  4. JSP文件结构及主要标签 <%@ page contentType="text/html;charset=gb2312" %> <%@ page import="java.util.*“ %> ... <HTML> <BODY> 其他 HTML 语言 <% 符合JAVA 语法的 JAVA 语句 %> 其他 HTML 语言 </BODY> </HTML>

  5. JSP示例(Hello.jsp) <HTML> <BODY> 你好<br> 你好<br> </BODY> </HTML> <%@ page contentType="text/html;charset=gb2312" %> <%@ page import="java.util.*"%> <HTML> <BODY> <% for ( int i=0; i<2; i++ ) { %> 你好<br> <% } %> </BODY> </HTML>

  6. JSP示例(Hello_Date.jsp) <%@ page import="java.util.*" %> <%@ page contentType="text/html; charset=gb2312" %> <HTML> <BODY> 你好,今天是 <% Date today=new Date(); %> <%=today.getDate()%>号, 星期<%=today.getDay()%> </BODY> </HTML> import java.util.*; response.setContentType("text/html; charset=gb2312"); out = pageContext.getOut(); out.write(“\r\n\r\n<HTML>\r\n <BODY>\r\n你好,今天是\r\n"); Date today=new Date(); out.print(today.getDate()); out.write("号,星期"); out.print(today.getDay()); out.write(" \r\n </BODY>\r\n</HTML>\r\n "); servlet文件 JSP文件

  7. jsp parser JSDK request 执行 response JSP执行过程 servlet servlet 分析器 *.jsp *.java *.class

  8. JSP 运行环境要求 JDK:Java应用程序开发包,包含编译运行Java程序所需的工具包和开发Java应用程序所需的类函数库。 Tomcat服务器软件:解释JSP网页,并且回传解释过后的JSP网页至用户计算机的浏览器 。

  9. 建立与测试开发环境 • server.xml 编辑设定

  10. JSP程序结构

  11. JSP 的特点 • 内嵌在HTML中:以较为简单直接的方式将程序代码内嵌在HTML中,降低了程序设计的难度。 • 丰富的内建对象:JSP的规格中包含相关的对象、卷标与指令,提供了设计主从式网络程序的功能,简化了编写servlet程序的过程。 • 整合Java平台:JSP程序中可运用Java所提供的各类包,以这些包为基础,扩充了JSP程序的本身的处理范围与能力。

  12. Java概述 • Java是JSP的基础,学习Java可以由2部份來进行:基本语法与类对象的引用。 • 基本语法:包含一般程序语言所需具备的语法元素。 • 类对象:Java是一种面向对象程序语言,以类封裝功能程序代码,通过组织相关类创建所需特定功能的应用程序。

  13. Java 主要结构 • Java根据其应用的领域,分成3个重要的版本:J2EE、J2SE 以及J2ME 。 • J2EE(Java 2 Platform, Enterprise Edition):商业级的Java版本,用以提供构建分布式商业应用系统所需的相关机制与技术,JSP即是J2EE结构下的一环,主要用以整合服务器端Java技术与客户端浏览器网页接口,提供构建以web为基础的大型商用系统所需的环境与结构。 • J2SE(Java 2 Platform, Standard Edition):Java最重要的核心,包 • 含相关API以及核心組件与运行Java所需的环境,编译工具等等。 • J2ME(Java 2 Platform,Micro Edition):用来设计消费性和嵌入式裝置的应用程序系統。

  14. Java的函数库-类 • Java函数库最基本的单位为类,类本身是一种程序功能的定义,在应用程序中被具体化成为对象,对象将类所定义的方法公开出来,让引用类的程序能够提供具体的功能。 • 类包含2种元素:属性与行为 ,属性用來调整类对象的属性,而方法則是該对象所能提供的功能。

  15. 说明 java.lang Java基础类包,包含用以处理Java字符串以及数组等相关类。 java.util 包含Java各种通用于各类应用程序的类包,例如集合数据结构等等。 java.awt 提供Java图形接口设计所需的基础类。 javax.swing 提供更多高级和丰富的图形接口设计类,由基础awt衍生而来。 java.io 提供输出/入数据流功能的支持类。 Java的函数库-包

  16. JSP程序代码区块 <%…%>界定JSP网页提供互动功能的程序区块。 <% Java程序代码 … %>

  17. JSP程序代码细节 • 注解 程序以符号// 作标识: //该区块里为JSP程序代码 程序运行的过程中,标识為//的程式代码都会被忽略。 • 数据输出 out是JSP中的默认对象,用來将数据输出到客户端网页上。 println()是out对象提供将字符串等数据输出至网页的方法。 每一行完整的程序指令,均必须以分号(;)做結束。

  18. 变量 • 变量用以储存各种类型的数据,同时对应到计算机中某一段内存空间区块的特定名称,程序根据变量名称在计算机内存中取得所需的数据内容,进行各种程序逻辑的运算。 • 声明变量: varType varName ;

  19. 常量 • Final关键词与常数声明: final varType varName = varValue ; • 常数所储存的內容不允许被改变,若在程序运行中更改常数的內容,會导致错误情況发生。

  20. 变量的命名规则 • 必须为合法字符 Java程序将字母相同、大小写相异的两个变量视为相异,同时名称包含非法字符并不被允许,例如空白与前置为数字的变量名称 。 • 避免使用关键词 关键词是由Java预先定义,具有特定意义的特定名称字串,无法被使用在变量的命名。 • 使用具意义的变量名称 变量的命名基本上只要符合上述的规则即可,使用一个代表变量意义的名称为变量命名可方便辨识。

  21. 类型 数据类型 名称 大小 有效范围 字符 char 字符 16 bit '\u0000'~'\uffff' 布尔 boolean 布尔值 1 bit true或false 浮点数 float 浮点数 32 bit 1.40239846E-45 ~3.40282347E+38 double 倍精确浮点数 64 bit 4.94065645841246544E-324 ~1.79769313486231570E+308 整数 byte 位整数 8 bit -128 ~ 127 short 短整数 16 bit -32768 ~ 32767 int 整数 32 bit -2147483648 ~ 2147483647 long 长整数 64 bit -922337203685475808 ~ 922337203685475808 数据类型

  22. 声明整型变量 整型变量,必须以任何一个整数类型的名称作声明,如下所示: byte bteVar ; short shVar ; int intVar ; long lngVar ;

  23. 布尔型变量 声明为boolean的变量只能储存true或是false: boolean blnVar1 = flase ; boolean blnVar2 = true ;

  24. 字符型变量 • Char类型的变量代表双位組的单一字符。 • 当一個字符被指定給char型变量,字符必須使用单引号將其包围起來。 • 一個字符可以用以表示变量或是字串。

  25. 数组 • 数组(Array)是一种复合类型的数据类型,用来存放一群类型相同的数据元素。 • 数组存放元素的位置,由索引值作识别 ,索引值从0开始依次增加。 • 声明一個数组变量: 数据类型数组名称[]=new 数据类型[数组大小]; 语法2:数据类型数组名称[]={內容值}; • 单一列结构的数组,将其称为一维数组

  26. 元素11 [0] [0] 元素12 [0] [1] 元素11 [0] [2] 元素21 [1] [0] 元素22 [1] [1] 元素12 [1] [2] 元素31 [2] [0] 元素32 [2] [1] 元素13 [2] [3] 二维数组 • 声明二维数组: 数据类型 数组名[][]=new 数据类型[列数][行数] ; • 存取二维数组的方式也相当的简单,只需指定所要存取的元素,其所在位置的索引编号即可,例如前一个二维数组示意图中,当用户想要取得元素32所需的语法如下: a = objArr[2][1] ; • 其中的objArr代表上述的二维数组表格,[2][1]则是其位置索引,这一行程序代码片段会将取得的元素32存到变量a。

  27. 运算符 运算符名称 范例 + 加法 A+B=14 - 减法 A-B=8 * 乘法 A*B / 除法 A/B % 取余数 A%B 算术运算符

  28. 运算符 使用语法 说明 += A+=5 A+=5 等于A=A+5 -= A-=5 A-=5等于A=A-5 *= A*=5 A*=5等于A=A*5 /= A/=5 A/=5等于A=A/5 %= A%=5 A%5等于A=A%5 ++ A++、++A A++等于A=A+1 -- A--、--A A--等于A=A-1

  29. 前置与后置运算 • 前置运算:运算符首先针对其连接的操作数进行运算,然后回传运算的结果 。 B = 5 ; A = ++B ; • 后置运算:操作数的值首先会回传给指定变量,然后运算符再针对其进行运算 。 B = 5 ; A = B ++ ;

  30. 运算符 说明 使用语法 范例(A=3,B=23) = = 等于 A= = B 返回布尔值false != 不等于 A!=B 返回布尔值true > 大于 A>B 返回布尔值false >= 大于等于 A>=B 返回布尔值false < 小于 A<B 返回布尔值true <= 小于等于 A<=B 返回布尔值true 比较运算符

  31. 运算符 意义 |、|| OR逻辑判断 &、&& AND ! NOT 逻辑布尔运算符

  32. OR运算符 | 以及 ||均是OR运算符,其左右串接2个操作数,当其中有一个操作数的值是true的時候,则返回一个true 的布尔值。 operandA || operandB operandA与operandB 其中有一个等于true ,则返回一个true的布尔值。

  33. AND运算符 • & 和 && 两个同样是AND运算符,针对两个操作数进行AND的逻辑运算,只有当其连接的两操作数均是true的时候,则返回一个true的布尔值,否则一律返回false 。 • &&不一定会针对其串接的两个操作数作运算,当左边的操作数结果为false的时候,则其直接返回一个结果为false的布尔值,不再理会右边表达式的操作数,而&则是对于两个操作数进行运算,即使左边的操作数结果为false,右边的操作数还是会完成其运算之后,才会回传其结果。

  34. !运算符 !是一种逻辑反向运算符,针对一个布尔操作数作运算,将其值取反后输出,其用法如下: !true => false !false => true

  35. 运算符 说明 ++、-- 递增、递减运算 *、/、% 乘、除、取余数 <、<=、>、>= 小于、小于等于、大于、大于等于 ==、!= 等于、不等于 & 逻辑运算"AND" | 逻辑运算"OR" && 逻辑运算"AND" || 逻辑运算"OR" +=、-=、*=、/=、%= 算术指派运算符 运算符优先顺序

  36. If 判断式 if(condition ) { 语句 ; }

  37. if-else判断式 if(condition) { 语句1 … } else{ 语句2 … } 其他语句 …

  38. if-else if-else 判断式 if(condition 1){ 语句1 … } else if(condition2){ 语句2 … } else{ 语句3 … }

  39. Switch判断式 switch(运算式式){ case 1: 程序片段; break; case 2: 程序片段; break; default: 程序片段; break; }

  40. For循环 for(初始值;条件式;表达式){ 程序代码; }

  41. while 循环 while(条件式){ 程序代码 }

  42. Break与continue指令 • break指令 用来强迫结束循环或离开判断式,在switch语句中,可以利用它结束一个case区块的运行,break经常被使用于循环中,进行循环的强迫中断操作 。 • continue指令 continue指令会忽略其后的程序代码,而直接运行下一次的循环。

More Related