1、Java_Web应用开发技术与案例教程课件第6-7章第第6章章 Servlet技术技术教学内容教学内容 Servlet技术概述技术概述 Servlet常用对象及其方法常用对象及其方法 综合案例综合案例基于基于Jsp+Servlet的用户登录验证的用户登录验证 在在Servlet中使用中使用JavaBean Jsp与与Servlet的数据共享的数据共享 Jsp与与Servlet的关联关系的关联关系 综合案例综合案例基于基于JSP+Servlet+JavaBean实现复数运算实现复数运算 综合案例综合案例基于基于Jsp+Servlet+JavaBean实现用户注册、登录验证实现用户注册、登录验证教
2、学目标教学目标 掌握掌握Servlet的设计以及与其他技术的整合应用。的设计以及与其他技术的整合应用。第第1节节 Servlet技术概述技术概述 Servlet是用是用Java语言编写的服务器端程序,是由服务器端调用和执行的、按照语言编写的服务器端程序,是由服务器端调用和执行的、按照Servlet自身规范编写的自身规范编写的Java类。类。Servlet可以处理客户端传来的可以处理客户端传来的HTTP请求请求,并返回一个,并返回一个响应响应。所以,设计所以,设计Servlet,就是设计一个,就是设计一个Java类,该类具有对客户端传来的类,该类具有对客户端传来的HTTP请求进行请求进行处理,并
3、返回一个响应的处理,并返回一个响应的方法方法。即:即:有如下两个方法有如下两个方法:public void doPost(HttpServletRequest request,HttpServletResponse response)public void doGet(HttpServletRequest request,HttpServletResponse response)设计设计Servlet要在要在Servlet框架约束下进行,并遵守其中所要求的规则。框架约束下进行,并遵守其中所要求的规则。Servlet框架是由框架是由javax.servlet和和javax.servlet.htt
4、p两个两个Java包组成包组成,它们提供了设计它们提供了设计Servlet所需要的相关的接口和类所需要的相关的接口和类。1、Servlet编程所涉及到的有关接口与类编程所涉及到的有关接口与类功能功能类和接口类和接口Servlet实现实现javax.servlet.Servlet,javax.servlet.SingleThreadModel javax.servlet.GenericServlet,javax.servlet.http.HttpServletServlet配置配置javax.servlet.ServletConfigServlet异常异常javax.servlet.Servle
5、tException,javax.servlet.UnavailableException请求和响应请求和响应javax.servlet.ServletRequest,javax.servlet.ServletResponsejavax.servlet.ServletInputStream,javax.servlet.ServletOutputStreamjavax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse会话跟踪会话跟踪javax.servlet.http.HttpSession,javax.
6、servlet.http.HttpSessionBindingListenerjavax.servlet.http.HttpSessionBindingEventServlet上下文上下文javax.servlet.ServletContextServlet协作协作javax.servlet.RequestDispatcher其他其他javax.servlet.http.Cookie,javax.servlet.http.HttpUtils2、Servlet的创建的创建 在在Servlet框架中,框架中,Servlet有着完备的规范,有着完备的规范,开发设计一个开发设计一个Servlet就是开
7、发一个遵守规范中所规就是开发一个遵守规范中所规定的各种特征的定的各种特征的Java类。类。Servlet的规范由的规范由接口接口javax.servlet.Servlet给出给出,并且由该接口给出了一并且由该接口给出了一实现类:实现类:javax.servlet.GenericServlet 又进一步又进一步给出了给出了javax.servlet.http.HttpServlet子类子类。所以,设计所以,设计Servlet,可有三种方法实现:,可有三种方法实现:(1)实现)实现Servlet接口,创建接口,创建Servlet 创建一个创建一个Servlet类,必须直接或者间接实现类,必须直接或
8、者间接实现javax.servlet.Servlet接口。接口。(2)继承)继承GenericServlet,创建,创建Servlet GenericServlet是是Servlet接口的直接实现类。接口的直接实现类。(3)继承)继承HttpServlet,创建,创建Servlet 在开发在开发Servlet时,通常采用继承时,通常采用继承“HttpServlet”子类实现。子类实现。本教材中(我们的教学中),所有的本教材中(我们的教学中),所有的Servlet都是采用这种方式创建。都是采用这种方式创建。演示演示给出给出Servlet的创建过程演示的创建过程演示,使用第,使用第3种方式创建种方
9、式创建3、Servlet的的基本结构基本结构与配置方式与配置方式 Servlet基本结构基本结构 一个一个Servlet由于遵循所要求的规范,其结构是固定的,由于遵循所要求的规范,其结构是固定的,Servlet程序的基本结构:程序的基本结构:package;/自定义的自定义的Servlet存放包名称存放包名称 import;/需要导入的有关的类和包需要导入的有关的类和包 WebServlet(description=描述信息描述信息,urlPatterns=/映射映射url配置值配置值)public class Servlet类名称类名称 extends HttpServlet public
10、void doGet(HttpServletRequest request,HttpServletResponse response)/要实现的代码要实现的代码 public void doPost(HttpServletRequest request,HttpServletResponse response)/要实现的代码要实现的代码 说明:说明:(1)Servlet类需要继承类类需要继承类HttpServlet (2)Servlet的父类的父类HttpServlet中包含了中包含了2个重要方法,根据需要重写它们:个重要方法,根据需要重写它们:doGet():当请求类型是:当请求类型是“ge
11、t”时,调用该方法。时,调用该方法。doPost():当请求类型是:当请求类型是“post”时,调用该方法。时,调用该方法。3、Servlet的基本结构与的基本结构与配置方式配置方式 Servlet配置方式配置方式 Servlet需要配置,只有配置后才可以使用。需要配置,只有配置后才可以使用。所谓配置就是将所创建的所谓配置就是将所创建的Servle类映射为一个可以直接访问的类映射为一个可以直接访问的URL地址。地址。配置配置Servlet有两种方式:有两种方式:在在Web配置文件配置文件web.xml配置配置称为称为“配置文件配置配置文件配置”,直接在直接在Servlet程序源代码中采用注释配
12、置程序源代码中采用注释配置称为称为“注解配置注解配置”。基于注解配置格式:基于注解配置格式:package;/自定义的自定义的Servlet存放包名称存放包名称 import;/需要导入的有关的类和包需要导入的有关的类和包 WebServlet(description=描述信息描述信息,urlPatterns=/映射映射url配置值配置值 )public class Servlet类名称类名称 extends HttpServlet 对于采用配置文件配置,我们稍后给出。对于采用配置文件配置,我们稍后给出。4、Servlet创建案例创建案例1基于注解配置实现基于注解配置实现(在源代码中配置在源代
13、码中配置)Servlet建立步骤建立步骤:Step1:建立:建立Web工程工程Step2:建立:建立Servlet,并基于注解方式给出配置并基于注解方式给出配置在项目在项目src下创建。下创建。重写重写Servlet的的doGet或或doPost方法。方法。Step3:部署并运行:部署并运行Servlet(可直接运行,可以其他程序调用执行,(可直接运行,可以其他程序调用执行,jsp调用、还可以调用、还可以超链接执行)超链接执行)案例案例【例例6-1】首先创建一个】首先创建一个Web工程,其工程名为:工程,其工程名为:servletTest,然后再创建一个,然后再创建一个Servlet:Hell
14、oWorld.java,其功能是采用网页的方式显示,其功能是采用网页的方式显示“Hello World!”假设访问该假设访问该Servlet的访问地址为:的访问地址为:“127.0.0.1:8080/servletTest/aaa/a3”,注意,在源代码中给出的配置注意,在源代码中给出的配置信息信息。源代码源代码给出设计演示给出设计演示4、Servlet创建案例创建案例2基于配置文件实现(基于配置文件实现(不再使用不再使用)Servlet建立步骤建立步骤:Step1:建立:建立Web工程(工程(一定要选中创建一定要选中创建web.xml选项选项)Step2:建立:建立Servlet在项目在项目
15、src下创建。下创建。重写重写Servlet的的doGet或或doPost方法。方法。修改修改web.xml配置文件,注册所设计的配置文件,注册所设计的Servlet。Step3:部署并运行:部署并运行Servlet案例案例 【例【例6-1】首先创建一个】首先创建一个Web工程,其工程名为:工程,其工程名为:servletTest2,然后再创建一个,然后再创建一个Servlet:HelloWorld.java,其功能是采用网页的方式显示,其功能是采用网页的方式显示“Hello World!”假设访问该假设访问该Servlet的访问地址为:的访问地址为:“127.0.0.1:8080/servl
16、etTest2/aaa/a3”,注意,在源代码中给出的配置注意,在源代码中给出的配置信息信息。源代码源代码web.xml配置信息配置信息给出设计演示给出设计演示5、关于、关于Servlet注解配置注解配置的的有关问题有关问题 采用注释配置采用注释配置Servlet,是在,是在Servlet类定义的上方直接使用注释类定义的上方直接使用注释“WebServlet”将一将一个类声明为个类声明为Servlet。该注解常用配置属性见下表所示。属性该注解常用配置属性见下表所示。属性value或者或者urlPatterns是必需的,但二者不能共是必需的,但二者不能共存,如果同时指定,通常是忽略存,如果同时指
17、定,通常是忽略value的取值属性,其它属性均为可选属性。的取值属性,其它属性均为可选属性。属性名属性名类型类型描述描述asyncSupportedboolean声明声明Servlet是否支持异步操作模式是否支持异步操作模式descriptionStringServlet的描述信息的描述信息displayNameStringServlet的显示名称的显示名称initParamsWeb initParamsServlet的初始化参数的初始化参数nameStringServlet的名称的名称urlPatternsString配置配置Servlet的访问的访问URL,可以同时配置多个不同的,可以同时
18、配置多个不同的URLvalueString配置配置Servlet的访问的访问URL,可以同时配置多个不同的,可以同时配置多个不同的URL注释配置格式示例:注释配置格式示例:WebServlet(displayName=This is Login Action,/描述描述 name=LoginAction,/Servlet名称名称 urlPatterns=/请求请求url,可以配置多个,用逗号间隔,可以配置多个,用逗号间隔 /servlet/studentLoginAction,/test/teacherLoginAction,)public class 类名称类名称 extends HttpS
19、ervlet/类实现代码类实现代码在在Eclipse中,默认的配置格式为:中,默认的配置格式为:WebServlet(/AA)public class AA extends HttpServlet WebServlet(/访问访问url)等价于等价于 WebServlet(urlPatterns=/访问访问url)给出修改配置的演示给出修改配置的演示再给出多个配置设置的演示与运行演示再给出多个配置设置的演示与运行演示第第2节节 Servlet常用接口、类及其方法常用接口、类及其方法JSP内置对象Servlet类或接口outjavax.servlet.http.HttpServletRespon
20、se例如:得到PrintWriter类并创建Servlet的out对象PrintWriter out1=response.getWriter();requestjavax.servlet.http.HttpServletRequestresponsejavax.servlet.http.HttpServletResponsesessionjavax.servlet.http.HttpSessionapplicationjavax.servlet.ServletContextconfigjavax.servlet.ServletConfigexceptionjavax.servlet.Servl
21、etException JSP内置对象与内置对象与Servlet类(接口)的关系类(接口)的关系1javax.servlet.http.HttpServletRequest 类类HttpServletRequest的对象对应的对象对应JSP的的request对象,对象,常用方法:常用方法:void setCharacterEncoding():设置请求信息字符编码,常用于解决设置请求信息字符编码,常用于解决post方式下参数值汉字乱码问题。方式下参数值汉字乱码问题。String getParameter(String paraName):获取单个参数值。:获取单个参数值。String getP
22、arameterValues(String paraName):获取同名的参数的多个值。获取同名的参数的多个值。Object getAttribute(String attributeName):获取获取request范围内属性的值。范围内属性的值。void setAttribute(String attributeName,Object object):设置设置request范围内属性的值。范围内属性的值。void removeAttribute(String attributeName):删除删除request范围内的属性。范围内的属性。2javax.servlet.http.HttpSe
23、rvletResponse 类类HttpServletResponse对象对应对象对应JSP的的response对象,对象,常用方法:常用方法:void response.setContentType(String contentType):设置响应信息类型。设置响应信息类型。PrintWriter response.getWriter():获得获得out对象。对象。void sendRedirect(String url):重定向。重定向。void setHeader(String headerName,String headerValue)设置设置http头信息值。头信息值。3javax.
24、servlet.http.HttpSession 类类HttpSession的对象对应的对象对应JSP的的session对象,但在对象,但在Servlet中,该对象需要由中,该对象需要由request.getSession()方法获得。方法获得。常用方法常用方法:HttpSession request.getSession():获取:获取session对象。对象。long getCreationTime():获得:获得session创建时间。创建时间。String getId():获得:获得session id。void setMaxInactiveInterval():设置最大:设置最大se
25、ssion不活动间隔不活动间隔(失效时间失效时间),以秒为单位。,以秒为单位。boolean isNew():判断是否是新的会话,是返回:判断是否是新的会话,是返回true,不是返回,不是返回false。void invalidate():清除:清除session对象,使对象,使session失效。失效。object getAttribute(String attributeName):获取:获取session范围内属性的值。范围内属性的值。void setAttribute(String attributeName,Object object):设置:设置session范围内属性的值。范围内
26、属性的值。void removeAttribute(String attributeName):删除:删除session范围内的属性。范围内的属性。4.javax.servlet.ServletContext 类类ServletContext的对象对应的对象对应JSP的的application对象,但在对象,但在Servlet中,该对象需要由中,该对象需要由this.getServletContext()方法获得。方法获得。常用方法:常用方法:ServletContext this.getServletContext():获得获得ServletContext对象。对象。object getAt
27、tribute(String attributeName):获取应用范围内属性的值。获取应用范围内属性的值。void setAttribute(String attributeName,Object object):设置应用范围内属性的值。设置应用范围内属性的值。void removeAttribute(String attributeName):删除应用范围内的属性。删除应用范围内的属性。第第3节节 综合案例综合案例基于基于Jsp+Servlet的用户登录验证的用户登录验证【例【例6-2】实现一个简单的用户登录验证程序,如果用户名是实现一个简单的用户登录验证程序,如果用户名是abc,密码是,
28、密码是123,则显示,则显示欢迎用户的信息,否则显示欢迎用户的信息,否则显示“用户名或密码不正确用户名或密码不正确”。【分析】【分析】该案例采用该案例采用JSP页面只完成提交信息和验证结果的显示,而验证过程由页面只完成提交信息和验证结果的显示,而验证过程由Servlet完成完成,这些组件通过,这些组件通过request(或(或HttpServletRequest)对象实现数据共享。)对象实现数据共享。由提交页面将数据传递给由提交页面将数据传递给Servlet,而,而Servlet获取数据并实现验证,根据验证结果,获取数据并实现验证,根据验证结果,转向显示验证结果的页面。转向显示验证结果的页面。
29、【设计】【设计】根据分析,该系统需要设计根据分析,该系统需要设计3个组件个组件构成(采用注解配置方式配置构成(采用注解配置方式配置Servlet)。(1)登录表单页面:)登录表单页面:login.jsp。(2)处理登录请求并实现验证的)处理登录请求并实现验证的Servlet:LoginCheckServlet.java。(3)显示提示的页面:)显示提示的页面:info.jsp。假设,组件之间共享数据的参数为:假设,组件之间共享数据的参数为:username(用户名称)和(用户名称)和userpwd(密码)。(密码)。【实现】【实现】(1)登录页面登录页面login.jsp(2)处理登录的处理登
30、录的Servlet:LoginCheckServlet.java(3)显示结果的页面显示结果的页面Info.jsp【运行运行】程序执行程序执行回顾上次课介绍的内容1、如何创建Servlet?一般在创建时,直接采用注解方式,配置servlet_形成访问地址,利用该地址,对servlet 运行2、重写 doGet(参数:请求,相应参数)doPost(参数)3、部署4、运行利用该地址,对servlet 运行5、给出了设计案例6、到底如何使用servlet_采用MVC模式2个案例第第4节节 Jsp与与Servlet的关联关系的关联关系 JSP和和Servlet都是在服务器端执行的组件,两者之间可以互相
31、调用都是在服务器端执行的组件,两者之间可以互相调用。JSP可以调用可以调用Servlet,Servlet也可以调用也可以调用JSP;同时,一个;同时,一个JSP可以调用另一个可以调用另一个JSP,一个一个Servle也可以调用另一个也可以调用另一个Servlet。但它们的调用格式是不同的。但它们的调用格式是不同的。JSP页面调用页面调用ServletServlet跳转到跳转到JSP页面页面Servlet调用另一个调用另一个ServletJSP跳转到另一个跳转到另一个JSP可以超链接调用可以超链接调用JSP,或者,或者Serevlet1、JSP页面调用页面调用Servlet在在JSP页面中,通常
32、通过提交表单和超链接两种方式访问页面中,通常通过提交表单和超链接两种方式访问Servlet。(1)通过表单提交调用)通过表单提交调用Servlet 在在JSP页面中设计表单,将表单提交给一个页面中设计表单,将表单提交给一个Servlet去处理,其调用格式:去处理,其调用格式:提示:这里的访问地址是配置的地址。提示:这里的访问地址是配置的地址。(2)通过超链接调用)通过超链接调用Servlet 在在JSP网页中,也可以采用超链接调用网页中,也可以采用超链接调用Servlet,并且也可以给,并且也可以给Servlet传递参数,其调传递参数,其调用格式:用格式:提示信息提示信息或或 提示信息提示信息
33、2.Servlet跳转到跳转到JSP页面页面Servlet调用调用JSP,由两种方式:,由两种方式:转向转向和和重定向重定向。转向:转向:是在一个是在一个Web工程内部,各组件之间的调用,在调用时,工程内部,各组件之间的调用,在调用时,request对象中的信息不丢对象中的信息不丢失(失(request对象不消亡),进入另一个组件后,对象不消亡),进入另一个组件后,request对象中的数据可以在新组件中对象中的数据可以在新组件中继续使用。继续使用。RequestDispatcher rd=request.getRequestDispatcher(jsp网页网页)rd.forward(requ
34、est,response);重定向:重定向:可以在一个可以在一个Web工程内部,各组件之间实现调用,也可以直接跳转到其他工程内部,各组件之间实现调用,也可以直接跳转到其他Web工程工程的的JSP页面。并且,在跳转到新组件后,重新创建页面。并且,在跳转到新组件后,重新创建request对象。对象。response.sendRedirect(JSP网页地址网页地址);3.Servlet调用另一个调用另一个Servlet 一个一个Servle调用另一个调用另一个Servlet,其调用格式同,其调用格式同Servlet调用调用JSP,只是将,只是将JSP网页地网页地址更换为址更换为Servlet映射地
35、址即可。映射地址即可。4、JSP跳转到另一个跳转到另一个JSP 一个一个JSP跳转到另一个跳转到另一个JSP,其跳转方法在地,其跳转方法在地3章中已经详细介绍,请参考第章中已经详细介绍,请参考第3章章中的有关内容。中的有关内容。各组件(各组件(JSP之间、之间、Servlet之间、之间、JSP与与Servlet之间)之间的如何关联?之间)之间的如何关联?设计不同的组件,然后将很多不同组件关联在一起。设计不同的组件,然后将很多不同组件关联在一起。形成形成web程序程序这就这就是是web程序的设计思想和设计方法:程序的设计思想和设计方法:必须有想法!必须有想法!不同的组件,完成不同的功能不同的组件
36、,完成不同的功能分工协作!分工协作!JSP_输入数据和显示数据(至少输入数据和显示数据(至少2个网页)个网页)视图视图VJavaBean完成业务处理模型(算法)完成业务处理模型(算法)_MServlet实现具体的工作(需要数据实现具体的工作(需要数据jsp提供,调用算法提供,调用算法Javabena方法方法,显示结果,显示结果转移到显示网页转移到显示网页jsp)_CMVC_分工协作分工协作 第第5节节 MVC开发模式与应用案例开发模式与应用案例 在开发一个在开发一个Web应用程序时,通常需要同时使用这应用程序时,通常需要同时使用这3种技术,并分别承担不同的职责种技术,并分别承担不同的职责。JS
37、P一般用来编写用户界面层的信息显示,充当视图层的角色(简称为一般用来编写用户界面层的信息显示,充当视图层的角色(简称为V););Servlet主要用来扮演任务的执行者,一般充当着控制层的角色主要用来扮演任务的执行者,一般充当着控制层的角色(简称为简称为C);JavaBean主要实现业务逻辑的处理,充当模型层的角色主要实现业务逻辑的处理,充当模型层的角色(简称为简称为M)。实现了不同组件的功能分工协作,将一个系统的功能分为实现了不同组件的功能分工协作,将一个系统的功能分为3种不同类型的组件,这种种不同类型的组件,这种模式常称为模式常称为MVC模式。模式。本节给出两个设计案例,整合应用本节给出两个
38、设计案例,整合应用JSP、JavaBean、Servlet三种技术。三种技术。【例【例6-3】设计程序完成复数运算,用户在页面上输入两个复数的实部和虚部,并选】设计程序完成复数运算,用户在页面上输入两个复数的实部和虚部,并选择运算类型,程序完成复数的指定运算。运行界面如图所示。择运算类型,程序完成复数的指定运算。运行界面如图所示。第第5节节 MVC开发模式与应用案例开发模式与应用案例【分析】【分析】该案例使用该案例使用JSP、Servlet、JavaBean三种技术集成,实现系统的设计,三种技术集成,实现系统的设计,JSP主要完成信息的提交和显示;主要完成信息的提交和显示;Servlet主要完
39、成对请求数据的获取与处理;主要完成对请求数据的获取与处理;JavaBean主要用于业务处理并实现数据的存储。主要用于业务处理并实现数据的存储。【设计】【设计】关键是理解数据处理与传递(传给谁?)关键是理解数据处理与传递(传给谁?)4个组件个组件 该程序需要设计:该程序需要设计:(1)输入表单页面输入表单页面input.jsp:将该页面的请求参数信息,传给将该页面的请求参数信息,传给Servlet。(2)接收运算请求的接收运算请求的Servlet,CaculateServlet.java:该:该Servlet接受接受input.jsp的请求信的请求信息,并创建息,并创建JavaBean对象实例,
40、然后调用对象实例,然后调用JavaBean的业务处理方法,完成业务处理,的业务处理方法,完成业务处理,形成新的结果,并将结果在形成新的结果,并将结果在request范围内实现属性数据共享,然后转向输出信息页面范围内实现属性数据共享,然后转向输出信息页面output.jsp。(3)封装复数运算的封装复数运算的JavaBean,Complex.java:该:该JavaBean有有2个属性,并有完成加个属性,并有完成加、减、乘、除的、减、乘、除的4种业务方法。种业务方法。(4)显示结果的页面显示结果的页面output.jsp:接受:接受Servlet传递的共享数据,并显示。传递的共享数据,并显示。【
41、实现】【实现】(1)首先编写复数类首先编写复数类JavaBean:Complex.java 计算模型(公式)计算模型(公式)不需要实际数据(变量不需要实际数据(变量-属性)属性)(2)提交信息的页面提交信息的页面input.jsp,在该页面内需要提交,在该页面内需要提交5个参数个参数(3)实现控制的实现控制的Servlet:CaculateServlet.java(4)显示计算结果的页面:)显示计算结果的页面:output.jsp【运行运行】执行程序执行程序 【例【例6-4】基于基于JSP+Servlet+JavaBean实现用户注册实现用户注册与登录功能。与登录功能。实现一个简单的用户注册。
42、通过注册页面提交注册信息,若数据库中已经存在该实现一个简单的用户注册。通过注册页面提交注册信息,若数据库中已经存在该用户名,给出提出,重新进入注册页面,当与数据库中已有的用户不重复时,写入数用户名,给出提出,重新进入注册页面,当与数据库中已有的用户不重复时,写入数据库(实现注册)。据库(实现注册)。同时,实现用户的登录。同时,实现用户的登录。假设,要注册的用户信息,只有用户名和密码。假设,要注册的用户信息,只有用户名和密码。分析与设计:分析与设计:两个模块:注册、登录两个模块:注册、登录每个功能每个功能 MVC:主页面主页面显示登录、注册两个选项显示登录、注册两个选项 公共模型:用户模型(包括
43、哪些方法)公共模型:用户模型(包括哪些方法)注册:至少注册:至少5个(输入、写入数据库个(输入、写入数据库-Servlet、提示成功、不成功)、提示成功、不成功)登录:至少登录:至少5个(输入、查询验证数据库个(输入、查询验证数据库-Servlet、提示成功、不成功)、提示成功、不成功)第第5节节 MVC开发模式与应用案例开发模式与应用案例【分析分析】假设操作的数据库名是假设操作的数据库名是java_web_ch06_db,数据表是,数据表是user_b,其中的字段:,其中的字段:id(主键(主键,整型,自动增加该字段)、,整型,自动增加该字段)、username(用户名,字符串类型)、(用户
44、名,字符串类型)、userpassword(密码(密码、字符串类型)。、字符串类型)。由于要对数据库访问,所以需要设计连接数据库的工具类由于要对数据库访问,所以需要设计连接数据库的工具类JdbcUtil.java以及访问以及访问数据库的数据库的DAO类(该设计思想在第类(该设计思想在第5章中已经介绍)章中已经介绍)UserDao.java,该类封装的基,该类封装的基本操作是记录的添加、查询全部。本操作是记录的添加、查询全部。该案例采用该案例采用JSP页面只完成提交注册信息(页面只完成提交注册信息(a.jsp)和验证结果的显示()和验证结果的显示(b.jsp),),而验证过程由而验证过程由Ser
45、vlet(YanZheng.java)调用模型类)调用模型类User.java完成,这些组件通过完成,这些组件通过JSP的内置对象的内置对象request(或(或HttpServletRequest创建的对象)实现数据共享。创建的对象)实现数据共享。由提交页面将数据传递给由提交页面将数据传递给Servlet,而,而Servlet获取数据并实现验证,根据验证结果,转获取数据并实现验证,根据验证结果,转向显示验证结果的页面。向显示验证结果的页面。【设计设计】该案例需要设计以下组件:该案例需要设计以下组件:(1)数据库)数据库java_web_ch06_db及其数据库表及其数据库表user_b。(2
46、)建立一个获取连接和释放资源的工具类)建立一个获取连接和释放资源的工具类JdbcUtil.java。(3)建立类)建立类User.java实现记录信息对象化,体现面向对象程序设计思想,基于对象实现实现记录信息对象化,体现面向对象程序设计思想,基于对象实现对数据表信息的操作。对数据表信息的操作。(4)在上面步骤的基础上建立类)在上面步骤的基础上建立类UserDao.java封装基本的数据库操作:封装基本的数据库操作:向数据库中添加用户记录的方法:向数据库中添加用户记录的方法:public void add(User user)查询全部用户的方法:查询全部用户的方法:public List Que
47、ryAll()(5)提交注册信息页面)提交注册信息页面a.jsp。(6)成功注册结果的显示页面)成功注册结果的显示页面b.jsp(7)验证要注册的信息与数据库已有的用户是否存在冲突的)验证要注册的信息与数据库已有的用户是否存在冲突的Servlet类类YanZheng.java。对于登录功能,其实现过程类似!对于登录功能,其实现过程类似!【实现】本章小结本章小结 介绍了介绍了Java Web程序重要组件程序重要组件Servlet的设计与使用。介绍了的设计与使用。介绍了Servlet的工作原理的工作原理、编程接口、基本结构、信息配置及部署和运行等知识;、编程接口、基本结构、信息配置及部署和运行等知
48、识;最后阐述了最后阐述了JSP与与Servlet、以及、以及Servlet和和JavaBean的关系并通过两个实例说明它们的关系并通过两个实例说明它们如何结合起来使用如何结合起来使用。第第6章章实验与作业实验与作业1.设计一个Web应用程序,当用户在提交页面上输入圆的半径,提交后显示出圆的周长和面积。要求:(1)使用Servlet,获取提交的信息,并计算求值,求值后跳转到显示结果页面。(2)使用例5-1的JavaBean类,并由Servlet,获取提交的信息,并计算求值,求值后跳转到显示结果页面。2设计一个注册页面register.jsp,用户填写的信息包括:姓名、性别、出生年月、民族、个人介
49、绍等,用户点击注册后将注册信息通过output.jsp显示出来。要求,使用Servlet获取提交的信息,然后跳转到显示结果页面。第第7章章 Java Web常用开发模式与案例常用开发模式与案例教学目的:教学目的:JavaWeb应用程序是由多个组件构成的,每种组件都分别承担不同的任务。应用程序是由多个组件构成的,每种组件都分别承担不同的任务。通过本章的学习,应达到如下目标:通过本章的学习,应达到如下目标:(1)熟悉并掌握在开发)熟悉并掌握在开发web应用程序时,根据项目的实际需要,选择相应的组件,构建该项目的应应用程序时,根据项目的实际需要,选择相应的组件,构建该项目的应用框架,并实现不同组件之
50、间的数据传递。用框架,并实现不同组件之间的数据传递。(2)对于一个)对于一个Web应用项目一般采用软件工程的思想方法开发,熟悉并掌握软件项目开发的分析、应用项目一般采用软件工程的思想方法开发,熟悉并掌握软件项目开发的分析、设计、实现、测试等相关的开发过程。设计、实现、测试等相关的开发过程。教学内容:教学内容:掌握不同的开发方案:掌握不同的开发方案:n单纯的单纯的JSP页面编程(只使用页面编程(只使用JSP技术、技术、HTML、CSS、JavaScript)nJSP+JavaBean设计模式设计模式:nJSP+Servlet设计模式设计模式nJSP+Servlet+JavaBean设计模式设计模