JEE项目开发与设计课件(完整版)_第1页
JEE项目开发与设计课件(完整版)_第2页
JEE项目开发与设计课件(完整版)_第3页
JEE项目开发与设计课件(完整版)_第4页
JEE项目开发与设计课件(完整版)_第5页
已阅读5页,还剩667页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 开发环境的搭建J2EE项目开发与设计学习目标了解J2EE运行环境配置掌握MyEclipse、Tomcat、JDK的安装与集成开发了解MyEclipse开发工具的使用与优化制作一个Web应用程序本书介绍的J2EE编程都将使用本章搭建的J2EE开发环境。为了提高开发效率,所涉及软件均与MyEclipse进行了整合。1.1 J2EE开发环境所需软件1.1 J2EE开发环境所需软件本书使用的操作系统为32位,如果用户的操作系统为64位,请在官方网站下载相应的软件。1.1 J2EE开发环境所需软件下载7.0版本下载安装版Tomcat 7.0下载地址:/1.1 J2EE开发环境所需软件单击此图标下载

2、下载合适的版本接受许可协议JDK下载地址:/technetwork/java/javase/downloads/index.html1.1 J2EE开发环境所需软件MyEclipse的官方网站在国内打不开;此处提供MyEclipse 9.0的下载链接地址,读者可以通过迅雷等下载软件下载;下载地址:http:/downloads.myeclipseide .com/downloads/products/eworkbench/helios/installers/myeclipse-9.0-offline-installer-windows.exe1.2 J2EE开发环境配置1.2 J2EE开发环境

3、配置第一步:安装JDK 1.7默认安装路径:C:Program FilesJavajdk1.7.0_04注意,在安装JDK 1.7时会同时安装JRE 1.7默认安装路径:C:Program FilesJava jdk1.7.0_04jre安装JDK 1.7JDK 1.7安装功能选择1.2 J2EE开发环境配置JDK1.7安装进度自动安装JRE1.2 J2EE开发环境配置可选安装JavaFX SDK JavaFX SDK安装路径设置1.2 J2EE开发环境配置JavaFX SDK安装进度JavaFX SDK安装结束1.2 J2EE开发环境配置1.2 J2EE开发环境配置第二步:安装Tomcat

4、7.0默认安装路径:C:Program FilesApache SoftwareFoundationTomcat 7.0Tomcat安装欢迎界面接受许可协议1.2 J2EE开发环境配置Tomcat安装方式选择Tomcat简单配置1.2 J2EE开发环境配置默认选择JRE路径Tomcat路径设置1.2 J2EE开发环境配置Tomcat完成安装1.2 J2EE开发环境配置1.2 J2EE开发环境配置第三步:安装MyEclipse 9.0下面将MyEclipse、Tomcat和JDK进行整合,以提高开发效率。启动MyEclipse,选择WindowPreferences命令,然后在相应的界面中依次进

5、行设置。参数选择整合Tomcat 7.0(一)1.2 J2EE开发环境配置整合Tomcat 7.0(二)整合Tomcat 7.0(三)1.2 J2EE开发环境配置整合Tomcat 7.0(四)1.2 J2EE开发环境配置1.2 J2EE开发环境配置 至此,MyEclipse 9.0、Tomcat 7.0与JDK 1.7三个软件实现了整合,为以后开发基于J2EE的软件提供了开发环境。1.3 MyEclipse汉化与优化1.3 MyEclipse汉化与优化1.3.1 MyEclipse汉化第一步:下载MyEclipse 9.0汉化包。该汉化包可从网上搜索并下载,搜索关键词 “myeclispe 9

6、 汉化”;作者是从/f/19760689.html下载的。解压此汉化包,文件结构如图:1.3 MyEclipse汉化与优化第二步:找到MyEclipse 9.0的安装目录。快速查找安装目录的方法123这里MyEclipse 9.0的安装目录是:D:UsersAdministratorAppDataLocalGenuitec MyEclipse-9.0M11.3 MyEclipse汉化与优化第三步:把下载的汉化包中的language文件夹粘贴到用户安装MyEclipse 9.0的Common文件夹中(如果没有,就创建一个)1.3 MyEclipse汉化与优化第四步:新建Java项目1231.3

7、MyEclipse汉化与优化在Java项目中右击src结点;选择Paste命令将汉化包中CreatePluginsConfig.java类文件粘贴到此处。121.3 MyEclipse汉化与优化第五步:修改CreatePluginsConfig.java文件的main()方法;设置用户计算机中MyEclipse的安装路径。CreatePluginsConfig.java文件的main ()方法代码如下:public static void main(String args) new CreatePluginsConfig(D:UsersAdministratorAppDataLocal Gen

8、uitecMyEclipse-9.0M1Commonplugins).print(); /友情提示:上面D:UsersAdministratorAppDataLocalGenuitec MyEclipse-9.0M1Commonplugins是用户的 MyEclipse安装路径 1.3 MyEclipse汉化与优化第六步:清空MyEclipse控制台记录1.3 MyEclipse汉化与优化第七步:运行汉化文件CreatePluginsConfig.java(只需要运行一次,在控制台下面会输出英文)1231.3 MyEclipse汉化与优化运行CreatePluginsConfig.java后的

9、控制台日志1.3 MyEclipse汉化与优化第八步:找到D:UsersAdministratorAppDataLocalGenuitecMyEclipse-9.0M1configuration org.eclipse.equinox.simpleconfigurator,用记事本方式把 打开,在最后一行按 Enter 键。再把在控制台中显示的内容都粘贴到记事本中并保存。1.3 MyEclipse汉化与优化第九步:在MyEclipse 9.0的安装根目录中找到myeclipse.ini文件,用记事本方式打开,在最后一行输入语句-Duser.language=zh第十步:保存并重启MyEclip

10、se,即可看到中文界面了1.3 MyEclipse汉化与优化1.3.2 MyEclipse优化启用代码提醒功能的方法如下:打开My Eclipes 9.0程序,选择“窗口”“首选项”命令,打开“首选项”窗口。在左侧窗格中展开Java“编辑器”结点,选择“内容辅助”选项,在右侧窗格中添加自动激活触发器字符1.4 使用MyEclipse 创建和发布Web Project 1.4 使用MyEclipse创建和发布Web project 1.4.1 编写输出HelloWorld的JSP文件创建HelloWorld 工程1231.4 使用MyEclipse创建和发布Web project 创建名称为He

11、lloWorld的工程HelloWorld工程目录结构1.4 使用MyEclipse创建和发布Web project 双击index.jsp,找到标签在此标签中输入如下代码: 1.4 使用MyEclipse创建和发布Web project 1.4.2 运行JSP文件第一步:部署HelloWorld工程部署工程1.4 使用MyEclipse创建和发布Web project 添加到Web容器1.4 使用MyEclipse创建和发布Web project 选择Tomcat为容器1.4 使用MyEclipse创建和发布Web project 部署工程成功1.4 使用MyEclipse创建和发布Web

12、project 第二步:启动Tomcat 7.x1.4 使用MyEclipse创建和发布Web project 解决上图所示问题的方法是结束Tomcat 7.x进程,1.4 使用MyEclipse创建和发布Web project 结束已启用的进程1.4 使用MyEclipse创建和发布Web project 再次在MyEclipse中启动Tomcat 7.x,问题得到解决。1.4 使用MyEclipse创建和发布Web project 第三步:打开浏览器,在地址栏中输入http:/localhost:8080/HelloWorld/小 结本章着重介绍J2EE开发环境的搭建,1.4节提供了一个J

13、SP开发的例子,通过学习本例子,读者可以对JSP开发有一个最初的认识。习 题1配置好J2EE开发环境,新建一个工程,工程名称为Ex1。在此工程的index.jsp文件中调试如下代码,查看运行结果,并总结JSP运行的原理。习 题2在工程Ex1中新建一个JSP页面,实现如下所示的九九乘法表功能。2. JSP技术详解J2EE项目开发与设计学习目标掌握JSP的基本语法:JSP注释、JSP脚本元素、JSP指令、JSP动作指令。掌握JSP内建对象。熟练使用JSP的内置对象在开发中的应用。本章介绍了JSP的基本语法,以及为简化JSP开发提供了一些内建对象。首先讲述了JSP内建对象的基本概念,然后分别介绍了内

14、建对象request、response、pageContext、session、application、out、config、page的概念和使用,最后介绍了JSP内置对象在开发中的应用2.1 JSP技术简介2.1 JSP技术简介JSP(Java Server Pages)是由Sun Microsystems公司倡导、很多公司参与共同建立的一种动态网页技术标准。JSP技术类似于ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(Tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linu

15、x中运行,也能在其他操作系统中运行。2.1 JSP技术简介 JSP技术使用Java编程语言编写类XML的Tags和Scriptlets来封装产生动态网页的处理逻辑。网页还能通过Tags和Scriptlets访问存在于服务端资源的应用逻辑。JSP将网页逻辑与网页设计显式分离,支持可重用的基于组件的设计,使基于Web的应用程序开发变得迅速和容易。 2.1 JSP技术简介 Web服务器在遇到访问JSP的请求时,首先执行其中的程序段,然后将执行结果和JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需的功能。2.1 JSP技术简介JSP与

16、Java Servlet一样,都是在服务器端执行的。通常返回该客户端的就是一个HTML文本,因此只要客户端有浏览器就能浏览。 JSP 1.0规范的最后版本是1999年9月推出的,该年12月又推出了JSP 1.1规范。目前较新的是JSP 1.2规范,JSP 2.0规范的征求意见稿也已出台。2.1 JSP技术简介JSP由HTML代码和嵌入其中的Java代码组成。服务器在页面被客户端请求后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,大型Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java

17、技术简单易用、完全面向对象、具有平台无关性、安全可靠、主要面向Internet等特点。 2.1 JSP技术简介JSP技术的强势 一次编写,到处运行。系统的多平台支持。强大的可伸缩性。多样化和功能强大的开发工具支持。JSP技术的弱势 产品的复杂性。难以上手产品更新快2.2 JSP的基本语法2.2 JSP的基本语法本节主要介绍JSP的基本结构,使读者对JSP有一个全面的了解。例2-1是一个简单的JSP文件。例计算1+2+100的和。 计算1+2+.+100的和 % int m=100,n=1; int sum=0; while(n 2.2 JSP的基本语法1JSP注释为了提高程序代码的可读性,在编

18、写代码时可以加上必要的注释,用于标注程序开发过程的开发提示。(1)HTML注释HTML注释主要用于在客户端动态地显示一个注释,也称输出注释。语法格式:2.2 JSP的基本语法(2)JSP注释JSP注释隐藏在JSP源代码中,不会输出到客户端,也称隐藏注释。语法格式:(3)Scriptlets中的注释通常使用“/”表示单选注释,使用“/* */”表示多选注释。在IE浏览器中,通过选择“查看”菜单中的“查看源文件”命令查看注释在客户端的运行情况。2.2 JSP的基本语法2JSP表达式JSP提供了一种输出表达式值的简单方法,输出表达式的语法格式如下:注意,使用输出表达式的语法替代了原来的out.pri

19、ntln输出语句,但是输出表达式后没有分号。2.2 JSP的基本语法3常用编译指令JSP的编译指令是通知JSP引擎的消息,它不直接生成输出。编译指令有默认值,因此开发人员不需要为每个指令设置值。(1)page指令page指令是针对当前页面的指令,作用于整个JSP。它通常位于JSP的顶端,一个JSP可以有多条page指令,但是其属性只能出现一次,重复的属性设置将覆盖先前的设置。语法格式:其中部分说明如下:language:定义要使用的脚本语言,目前只能使用Java,即language=java。import:和一般的Java Import意义一样,用于引入要使用的类,只是用逗号“,”隔开包或类列

20、表。默认省略,即不引入其他类或包。默认导入的包有java.lang.*;、javax.servlet.*、javax.servlet.jsp.*和javax.servlet.http.*。导入包格式为import= java.io.*,java.util.Hashtable。2.2 JSP的基本语法2.2 JSP的基本语法session:指定所在页面是否使用session对象。默认值为true,即session=true。buffer:指定到客户输出流的缓冲模式。如果为none,则不缓冲;如果指定数值,那么输出就用不小于该值的缓冲区进行缓冲,单位为KB。buffer与autoFlash一起使用

21、,默认不小于8 KB,根据不同的服务器可设置不同大小,如buffer=64kb。2.2 JSP的基本语法autoFlash:如果为true,当缓冲区满时,到客户端输出被刷新;如果为false,当缓冲区满时,出现运行异常,表示缓冲区溢出。默认为true,即autoFlash=:关于JSP的信息,定义一个字符串,可以使用servlet.getServletInfo()获得,默认省略,如info=测试页面。2.2 JSP的基本语法sErrorPage:表明当前页是否为其他页的errorPage目标。如果设置为true,那么可以使用exception对象;如果设置为false,那么不

22、可以使用exception对象。默认为false,如isErrorPage=true。errorPage:定义此页面出现异常时调用的页面。默认忽略,如errorPage=error.jsp。2.2 JSP的基本语法isThreadSafe:用来设置JSP文件是否能多线程使用。如果设置为true,那么一个JSP能够同时处理多个用户的请求;如果设置为false,那么一个JSP只能一次处理一个请求。默认为true,如isThreadSafe=true。contentType:定义JSP字符编码和页面响应的MIME类型。默认值为TYPE=text/html,CHARSET=iso8859-1。例如,c

23、ontentType=text/html;charset=gb2312。注意,如果charset指令没有设置为gb2312或UTF-8,JSP程序中的中文将显示乱码。2.2 JSP的基本语法pageEncoding:JSP的字符编码,默认值为pageEncoding=iso-8859-1。例如,page Encoding=gb2312。isELIgnored:指定EL(表达式语言)是否被忽略。如果为true,则容器忽略$表达式的计算。默认值由web.xml描述文件的版本确定,servlet 2.3以前的版本将忽略,即isELIgnored=true。2.2 JSP的基本语法(2)include

24、指令include指令用来通知容器将当前JSP页面中内嵌的、在指定位置上的资源内容包含。被包含的文件可以被JSP解析,这种解析发生在编译期间。include指令的格式:2.2 JSP的基本语法使用include 指令可以把一个复杂的JSP分成若干简单部分,这样大大提高了JSP的管理效率,当要对页面进行更改时,只需要更改对应的部分即可。例如把页面分成多个区,如图2-1所示。图2-1 include的使用2.2 JSP的基本语法注意 被include包含的文件中最好不要使用、等标签,容易出错。 要避免被包含和包含文件中定义相同的变量和方法。2.2 JSP的基本语法2.2.1 基本语句1条件语句条件

25、语句if语句有三种使用形式:单分支if语句、ifelse语句和多分支if语句。条件语句switch.2循环语句当型循环、dowhile循环、for循环2.2 JSP的基本语法单分支if语句的格式如下:ifelse语句的格式如下:if (表达式) 语句1;if(表达式) 语句1;else 语句2;2.2 JSP的基本语法多分支if语句的格式如下:if(表达式1) 语句1;else if(表达式2) 语句2;else if(表达式3) 语句3; else 语句n;2.2 JSP的基本语法条件语句switch的格式如下:switch(表达式)case 常量表达式1: 语句1; break; case

26、 常量表达式2: 语句2; break; case 常量表达式n: 语句n; break;default: 语句m; break;2.2 JSP的基本语法循环语句当型循环while循环是当型循环,其格式如下:dowhile循环dowhile循环语句的格式如下:while (表达式) 循环体;do 循环体;while(表达式);2.2 JSP的基本语法for循环for循环的格式如下:for(表达式1;表达式2;表达式3) 循环体;2.2 JSP的基本语法2.2.2 数据类型数据的基本类型有以下四种: int长度数据类型:byte(8 bits)、short(16 bits)、int(32 bit

27、s)、long(64 bits)。 i float长度数据类型:单精度(32 bits float)、双精度(64 bits double)。boolean类型变量的取值有:ture、false。 char数据类型:unicode字符(16位)。2.2 JSP的基本语法数据类型间相互转换的代码如表2-1所示。说 明代 码将一个字符串转换成一个Integer对象int i=Integer.valueOf(“123”).intValue()将一个字符串转换成一个Float对象float f=Float.valueOf(“123”).floatValue()将一个字符串转换成一个Boolean对象b

28、oolean b=Boolean.valueOf(“123”).booleanValue()将一个字符串转换成一个Double对象double d=Double.valueOf(“123”).doubleValue()将一个字符串转换成一个Long对象long l=Long.valueOf(“123”).longValue()将一个字符串转换成一个Character对象char=Character.valueOf(“123”).charValue()从低精度向高精度转换,顺序为byte、short、int、long、float、double、char。2.2 JSP的基本语法注意两个char类

29、型运算时,自动转换为int类型;当char与其他类型运算时,也会先自动转换为int型的,再做其他类型的自动转换。例如,将字符串转成整型:public static int toInt(String input)try return Integer.parseInt(input);catch(Exception e) return 0; 2.3 JSP的内置对象 2.3 JSP的内置对象2.3.1 request对象request封装了用户提交给服务器的所有信息,通过request对象可以获取用户提交的信息。用户通常使用HTML中的Form表单向服务器的某个JSP或者Servlet提交信息。例如

30、: 提交内容 2.3 JSP的内置对象注意get()方法和post()方法的主要区别:使用get()方法提交信息会在提交时显示在浏览器的地址栏中;而post()方法提交的信息不会显示在地址栏中。提交内容的方式:文本框、密码框、下拉列表框、单选按钮、多选按钮、文本区域等。2.3 JSP的内置对象1. 获取用户提交信息request对象可以使用getParameter(string s)方法获取该表单通过text提交的信息。例如:request.getParameter(“boy”)。2.3 JSP的内置对象one.jsp代码: request对象使用-one.jsp one.jsp代码:2.3

31、JSP的内置对象 request对象使用-two.jsp 获取文本框提交的信息: two.jsp代码:2.3 JSP的内置对象注意使用request对象获取信息时,要避免使用空对象,否则会出现NullPointerException异常,所以用户可进行如下处理。2.3 JSP的内置对象2. 处理汉字信息当request对象获取客户提交的汉字字符时会出现乱码问题,必须进行特殊处理。首先,将获取的字符串用ISO-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个数组转换为字符串对象即可。例如,将two.jsp改为“解决中文乱码的 two.jsp”,代码如下:2.3 JSP的内置对象r

32、equest对象使用解决中文乱码-two.jsp获取文本框提交的信息: 2.3 JSP的内置对象常用方法:getProtocol():获取客户向服务器提交信息所使用的通信协议,如http/1.1等。getServletPath():获取客户请求的JSP文件的目录。getContentLength():获取客户提交的整个信息的长度。getMethod():获取客户提交信息的方式,如post 或get等。getHeader(String s):获取HTTP 头文件中由参数s指定的头名称的值。一般来说,s参数可取的头名称有:accept、referer、accept-language、content

33、-type、accept-encoding、user-agent、host、content-length、connection、cookie等。例如,s取user-agent将获取客户浏览器的版本号等信息。2.3 JSP的内置对象getHeaderNames():获取头名称的一个枚举。getHeaders(String s):获取头文件中指定头名称的全部值的一个枚举。getRemoteAddr():获取客户的IP 地址。getRemoteHost():获取客户机的名称(如果获取不到,就获取IP 地址)。getServerName():获取服务器的名称。getServerPort():获取服务器

34、的端口号。getParameterNames():获取客户提交的信息体部分中name 参数值的一个枚举。2.3 JSP的内置对象request对象使用:request对象客户使用的协议是: 获取接受客户提交信息的页面: 接受客户提交信息的长度: 客户提交信息的方式: 获取HTTP头文件中User-Agent的值: 2.3 JSP的内置对象获取HTTP头文件中accept的值: 获取HTTP头文件中Host的值: 获取HTTP头文件中accept-encoding的值: 获取客户的IP地址: 获取客户机的名称: 获取服务器的名称: 获取服务器的端口号: three.jsp 诗人李白是中国历史上哪

35、个朝代的人: 宋朝 唐朝 明朝 元朝 小说红楼梦的作者是: 曹雪芹 罗贯中 李白 司马迁 three.jsp代码:four.jsp您得了分four.jsp代码:2.3 JSP的内置对象2.3.2 response对象response对象对客户的请求做出动态响应,向客户端发送数据。在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用response的sendRedirect(URL)方法实现客户的重定向。新建一个文件goto.jsp的代码如下所示。2.3 JSP的内置对象goto.jspPlease select: go to Baidu go to Yahoo go to Su

36、n2.3 JSP的内置对象response对象是一个javax.servlet.http.HttpServletResponse类的子类的对象。response的常用方法如下:addCookie(Cookie cook):添加一个cookie对象,用来保存客户端的用户信息。addheader(String name,String value):添加HTTP文件头信息。constrainsHeader(String name):判断指定名称的HTTP文件头是否已经存在,返回一个布尔值。encodeURL():使用sessionId封装URL。如果没有必要封装URL,则返回原值。2.3 JSP的内

37、置对象flushBuffer():强制把当前缓冲区的内容发送到客户端。getBufferSize():返回缓冲区的大小。getOutputStream():返回到客户端的输出流对象。sendError(int):向客户端发送错误的信息。例如,404是指网页不存在或者请求页面无效。sendRedirect(String url):把响应发送到另一个位置进行处理。setContentType(String contentType):设置响应的MIME类型。setHeader(String name,String value):设置指定名称的HTTP文件头的值。2.3 JSP的内置对象setHead

38、er页面自动跳转的设置代码如下:三秒后跳转!如果没有跳转,请按这里!2.3 JSP的内置对象setHeader禁用页面缓存。在实际的项目开发工程中,往往会用到禁用缓存技术,即如果通过后退按钮回到了某一页,也必须从服务器上重新读取。例如:禁用页面缓存2.3 JSP的内置对象运行修改过的这个例子,就会发现,当用户单击后退按钮回到index.jsp时,页面代码都会被执行一次。2.3 JSP的内置对象2.3.3 pageContext对象pageContext对象是一个页面上下文对象。JSP引入了一个名为pageContext的类,通过它可以访问页面的许多属性。pageContext类拥有getReq

39、uest()、getResponse()、getOut()、getSession()等方法。pageContext变量存储与当前页面相关的pageContext对象的值。如果方法需要访问多个与页面相关的对象,传递pageContext要比传递request、response、out等独立引用更容易(虽然两种方式都能达到相同目的)。2.3 JSP的内置对象2.3.4 session对象session对象是指客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。2.3 JSP的内置对象常用方法:lon

40、g getCreationTime():返回session创建时间。public String getId():返回session创建时JSP引擎为其设置的唯一ID号。long getLastAccessedTime():返回session中客户端最近一次的请求时间。int getMaxInactiveInterval():返回两次请求间隔多长时间此session被取消(单位为hms)。2.3 JSP的内置对象String getValueNames():返回一个包含此session中所有可用属性的数组。void invalidate():取消session,使session不可用。boole

41、an isNew():返回服务器创建的一个session,客户端是否已经加入。void removeValue(String name):删除session中指定的属性。void setMaxInactiveInterval():设置两次请求间隔多长时间此session被取消(单位为ms)。2.3 JSP的内置对象2.3.5 application对象application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器关闭结束。在此期间,此对象将一直存在。在用户的前后连接或不同用户之间的连接中可以对此对象的同一属性进行操作,在任何地方对此对象属性的操作都将影响到其

42、他用户对此对象的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。2.3 JSP的内置对象Object getAttribute(String name):返回给定名的属性值。Enumeration getAttributeNames():返回所有可用属性名的枚举。void setAttribute(String name,Object obj):设定属性的属性值。void removeAttribute(String name):删除一个属性及其属性值。String getServerInfo():返回JSP(Servlet)引擎名及版

43、本号。String getRealPath(String path):返回一个虚拟路径的真实路径。ServletContext getContext(String uripath):返回指定WebApplication的application2.3 JSP的内置对象int getMajorVersion():返回服务器支持的Servlet API的最大版本号。int getMinorVersion():返回服务器支持的Servlet API的最大版本号。String getMimeType(String file):返回指定文件的MIME类型。URL getResource(String pa

44、th):返回指定资源(文件及目录)的URL路径。InputStream getResourceAsStream(String path):返回指定资源的输入流。RequestDispatcher getRequestDispatcher(String uripath):返回指定资源的RequestDispatcher对象。2.3 JSP的内置对象Servlet getServlet(String name):返回指定名的Servlet。Enumeration getServlets():返回所有Servlet的枚举。Enumeration getServletNames():返回所有Servl

45、et名的枚举。void log(String msg):把指定消息写入Servlet的日志文件。void log(Exception exception,String msg):把指定异常的栈轨迹及错误消息写入Servlet的日志文件。void log(String msg,Throwable throwable):把栈轨迹及给出的Throwable异常说明信息写入Servlet的日志文件。2.3 JSP的内置对象2.3.6 out对象out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。常用方法:out.print():输出各种类型数据。out.newLine():输出

46、一个换行符。out.close():关闭流。2.3 JSP的内置对象如下代码是out对象的一个例子。three.jsp现在是小时分秒2.4 JSP技术应用登录功能 2.4 JSP技术应用登录功能 本实例的框架首页是index.jsp,包括顶部的登录栏login.jsp,左侧的菜单栏menu.jsp,右侧的主页main.jsp。第一步:启动MyEclipse,新建一个名为ch2-login的Web Project工程,目录结构图如图2-2所示。图2-2 ch2-login工程目录结构图2.4 JSP技术应用登录功能 第二步:编辑menu.jsp文件,代码如下所示。第三步:编辑main.jsp文件

47、,代码如下所示。 首页 我的日志 关于我 2.4 JSP技术应用登录功能 第四步:编辑login.jsp文件,代码如下所示。%if(LoginAction.equals(request.getParameter(action) String txtUsername=request.getParameter(txtUsername); String txtPassword=request.getParameter(txtPassword); /假设正确的用户名与密码是 admin,1234 /接下来判断用户输入的用户与密码是否正确 if(admin.equals(txtUsername)&123

48、4.equals(txtPassword) session.setAttribute(CurrentUser,txtUsername); response.sendRedirect(index.jsp); else out.print(alert(用户名密码不正确);window.loaction.href (index.jsp););2.4 JSP技术应用登录功能 % 欢迎您: 编辑个人资料 退出登录 登录窗口 2.4 JSP技术应用登录功能 用户名: 密码: 2.4 JSP技术应用登录功能 第五步:编辑index.jsp文件,代码如下所示。 index.jsp 2.4 JSP技术应用登录功

49、能 第六步:新建logout.jsp文件,实现退出。2.4 JSP技术应用登录功能 第七步:部署工程并测试运行实例,如图2-3和图2-4所示。小 结本章主要介绍了JSP内建对象的相关概念,并且为每个内建对象提供了使用实例。JSP中的内建对象有request、response、pageContext、session、application、out、config、page、exception对象。out对象是JSP开发中使用最频繁,也是JSP初学者都需要掌握的内建对象之一,主要作用是输出动态内容。初学者应重点掌握out、request、response、session的使用。本章最后结合一个实际开

50、发中的案例将JSP内建对象的使用进行了详细介绍。习 题配置好J2EE开发环境,新建一个工程,工程名称为Ex2,在此工程的新建一个reg.jsp文件,界面效果如图2-5所示。图2-5 reg.jsp界面图要求:当单击图2-5中的“提交”按钮时,获取表单中的注册信息,并显示出来。3. Servlet技术详解J2EE项目开发与设计学习目标Servlet相关概念介绍Servlet常用的类和接口介绍使用HttpServlet处理客户端请求使用Servlet生成动态图像 本章首先介绍了Servet技术的工作原理,接着介绍了JSP与Servlet之间的关系、Servlet的应用范围及其缺陷、Servlet的

51、生命周期,以及Servlet常用类、接口使用。通过本章的学习,读者能够掌握Servlet编程技术。3.1 Servlet技术简介3.1 Servlet技术简介3.1.1 Servlet的相关概念在网上浏览网页时需要一个Web服务器,浏览网页的过程就是浏览器通过HTTP与Web服务器交互的过程。过去大多是静态网页,因此只须把资源放在Web服务器上即可。随着应用的发展,客户与服务器需要动态的交互,为了实现这一目标,就需要开发一个遵循HTTP的服务器端应用软件,用来处理各种请求。Servlet是一个基于Java技术的Web组件,运行在服务器端,用户利用Servlet可以很轻松地扩展Web服务器的功能

52、,使其满足特定的应用需要。Servlet由Servlet容器管理,Servlet容器也称Servlet引擎,是Servlet的运行环境,为发送的请求和响应提供网络服务。3.1 Servlet技术简介 例如,Tomcat就是一个常用的Servlet容器。接收客户端并请求做出响应的步骤如下:客户端访问Web服务器,发送HTTP请求Web服务器接收到请求后,传递给Servlet容器Servlet容器加载Servlet,产生Servlet实例,并向其传递表示请求和响应的对象Servlet得到客户端的请求信息,并进行相应处理Servlet实例把处理结果发送回客户端,容器负责确保响应正确送出,同时将控制返

53、回给Web服务器,如图3-1所示3.1 Servlet技术简介图3-1 Servlet对客户端提供服务的过程3.1 Servlet技术简介3.1.2 Servlet的生命周期 Servlet部署在容器中(如Tomcat、Jboss等),它的生命周期由容器来管理。Servlet的生命周期概括为以下几个阶段:第一阶段:装载Servlet,此操作一般为动态执行。有些服务器提供了相应的管理功能,可以在启动时就装载Servlet并能够初始化特定的Servlet。第二阶段:创建一个Servlet实例。27-8月-223.1 Servlet技术简介第三阶段:调用Servlet的init()方法。第四阶段:服

54、务,如果容器接收到对此Servlet的请求,那么它将调用Servlet的service()方法。第五阶段:销毁,通过调用Servlet的destory()方法来销毁Servlet。在以上几个阶段中,第三阶段的提供服务是最重要的阶段。27-8月-223.1 Servlet技术简介3.1.3 Servlet的重要函数 HttpServlet是GenericServlet的一个派生类,为基于HTTP的Servlet提供了基本的支持。HttpServlet类包含init()、destory()、Service()等方法。其中,init()和destory()方法是继承的。3.1 Servlet技术简介

55、1. init()方法在Servlet的生命期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()方法。默认的init()方法通常符合要求,但也可以定制init()方法来覆盖它,典型的是管理服务器端资源,如初始化数据库连接等。因此,所有覆盖init()方法的Servlet应调用super.init()以确保仍然执行这些任务。在调用service()方法之前,就确保已完成init()方法。3.1 Servlet技术简介2. Servi

56、ce()方法service()方法是 Servlet 的核心。每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要被调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet 中已存在 service() 方法。默认的服务功能是调用与 HTTP 请求的方法相应的do功能。3.1 Servlet技术简介例如,如果HTTP请求方法为GET,则默认情况下就调用doGet()。Servlet 应该为其支持的HTTP方法覆盖do功能,因为 HttpServlet.serv

57、ice() 方法会检查请求方法是否调用了适当的处理方法,无须覆盖 service() 方法,只需要覆盖相应的 do 方法即可。 Servlet的响应可以是下列几种类型: 一个输出流,浏览器根据它的内容类型(如text/HTML)进行解释。 一个HTTP错误响应, 重定向到另一个URL、Servlet、JSP。3.1 Servlet技术简介3. destory()方法destroy()方法仅执行一次,即在服务器停止且卸载Servlet 时执行该方法,通常将Servlet 作为服务器进程的一部分来关闭。默认的 destroy() 方法通常是符合要求的,但也可以覆盖它,典型的是管理服务器端资源。例如

58、,如果 Servlet 在运行时会累计统计数据,则可以编写一个 destroy() 方法,用于在未装入 Servlet 时将统计数字保存在文件中。 3.1 Servlet技术简介3. destory()方法destroy()方法仅执行一次,即在服务器停止且卸载Servlet 时执行该方法,通常将Servlet 作为服务器进程的一部分来关闭。默认的 destroy() 方法通常是符合要求的,但也可以覆盖它,典型的是管理服务器端资源。例如,如果 Servlet 在运行时会累计统计数据,则可以编写一个 destroy() 方法,用于在未装入 Servlet 时将统计数字保存在文件中。 3.1 Ser

59、vlet技术简介当服务器卸载 Servlet 时,将在所有 service() 方法调用完成后,或在指定的时间间隔过后调用 destroy() 方法。一个Servlet 在运行service() 方法时可能会产生其他线程,因此请确认在调用 destroy() 方法时,这些线程已终止或完成。3.1 Servlet技术简介4. GetServletConfig()方法GetServletConfig()方法返回一个 ServletConfig 对象,该对象用来返回初始化参数和ServletContext。ServletContext 接口提供有关Servlet的环境信息。3.1 Servlet技术

60、简介5. GetServletInfo()方法GetServletInfo()方法是一个可选的方法,它提供有关Servlet 的信息,如作者、版本、版权等。 当服务器调用Servlet 的Service()、doGet()和doPost()方法时,均需要 “请求”和“响应”对象作为参数。“请求”对象提供有关请求的信息,而“响应”对象提供了一个将响应信息返回给浏览器的一个通信途径。3.1 Servlet技术简介javax.servlet 软件包中的相关类为ServletResponse和ServletRequest,而javax.servlet.http 软件包中的相关类为HttpServlet

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论