版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JSP+JavaBean+Servlet技术,动态网页设计,第8章 JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,第8章 JSP+JavaBean+Servlet技术,本章主要内容: Servlet引入 Servlet与JSP开发实例 JSP+JavaBean+servlet开发技术,JSP+JavaBean+Servlet技术,(纯jsp技术+javaBean)开发 学生成绩管理系统系统,8.1 Servlet的引入,JSP+JavaBean+Servlet技术,开发模式的改进-model2(基于MVC的框架),MVC是一种通过3个不同部分构造一
2、个软件或组件的理想办法:,模型(Model):一个或多个JavaBean对象,用于表示业务数据和业务逻辑。若表示业务数据,JavaBean主要提供简单的setXXX()方法和getXXX()方法,在这些方法中不涉及对数据的具体处理细节。 视图(View):一个或多个JSP页面,为模型提供数据显示,JSP页面主要使用 HTML标记和JavaBean标记来显示数据。 控制器(Controller):一个或多个Servlet对象,根据用户请求,调用相应的模型组件进行处理,然后调用相应的视图显示模型返回的数据。,JSP+JavaBean+Servlet技术,一个基于MVC的应用程序对用户请求的处理过程
3、:,(1)终端用户通过应用程序发出了一个请求,该请求被转发给控制器。 (2)控制器收到该请求后,检查该请求然后决定用什么样的业务逻辑来处理该请求,这时控制器会将该请求转发给一个相应的业务组件去处理。 (3)模型中包含处理该用户请求的所有业务组件,并且也执行用户所需要的全部数据存取。代表终端用户查询检索出的任何数据都被打包返回给控制器。 (4)控制器接收从模型返回的数据,并选择显示这些数据的相应的视图,然后将视图返回给用户。 MVC模式适合大型项目的开发,是组件式的开发,但开发起来相对Model1复杂,步骤较多。,JSP+JavaBean+Servlet技术,Model2开发模型的程序流程,浏览
4、器,Servlet (控制器),JavaBean (模型),数据库,Web服务器,请求,响应,老板,仓库管理员 工人,仓库,JSP (视图),销售员,JSP+JavaBean+Servlet技术,调用,(jsp+javaBean+servlet)开发 学生成绩管理系统系统,adminlogin.jsp 登录页面,页面显示,登录请求,登录失败,验证成功,student数据库,操作数据库,AdminBeancl.java 验证业务逻辑,AdminBean.java 表示admin表,DBconn.java 得到数据库连接,调用,ScoresBeancl.java 验证业务逻辑,ScoresBean
5、.java 表示scores表,界面层,模型(逻辑)层,ScoresServlet.java 数据库操作,LoginCheckServlet.java,调用,JSP+JavaBean+Servlet技术,8.2 JSP与Servlet结合开发实例,JSP负责处理页面,而Servlet适宜处理逻辑,所以常用JSP+Servlet来开发应用。 这就涉及到JSP和Servlet相互调用、相互传递数据的问题。,JSP+JavaBean+Servlet技术,8.2.1 JSP访问Servlet通过表单,通过FORM表单的action属性访问Servlet是最常用的方式 下面例子中,JSP页面inputn
6、ame.jsp通过表单向名为Count.java的Servlet提交姓名,Servlet接受用户输入并向客户问好。,JSP+JavaBean+Servlet技术, 输入姓名: ,inputname.jsp源码,JSP+JavaBean+Servlet技术,import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Count extends HttpServlet public void init(ServletConfig config) throws ServletException
7、 super.init(config); public void service(HttpServletRequest request,HttpServletResponse response) throws IOException /获得一个向客户发送数据的输出流: PrintWriter out=response.getWriter(); response.setContentType(text/html;charset=GB2312);/设置响应的MIME类型。 out.println( ); request.setCharacterEncoding(gbk); String name=
8、request.getParameter(“username); /获取客户提交的信息。 out.print(+hello+name); out.println( ); ,Count.java源码,JSP+JavaBean+Servlet技术,8.2.2 JSP访问Servlet通过超链接,对于上一节的例子,可以换一种方式向Servlet提交数据,在inputname.jsp中用超链接代替表单并传递姓名。,inputname1.jsp 加载Servlet并传姓名王红 ,request.getParameter(“number);,JSP+JavaBean+Servlet技术,8.2.3 MVC
9、的实例,【例】MVC的实现。 本节采用JSPServletJavaBean技术开发一个体重指数测量程序。 程序包含4个文件,分别是: view_Table.jsp controller_Servlet.java model_Bean.java view_Result.jsp,JSP+JavaBean+Servlet技术,Model2开发模型的程序流程,浏览器,Servlet (控制器),JavaBean (模型),Web服务器,请求,响应,JSP (视图),view_Table.jsp,view_Result.jsp,model_Bean.java,controller_Servlet.jav
10、a,JSP+JavaBean+Servlet技术,对身高和体重数据的处理计算是在模型层实现的,其中运用的业务规则是世界卫生组织拟定的体重状况的判断标准。 体重指数(BMI)的计算公式是: 体重指数(BMI)=体重(kg)/身高(米)的平方 世界卫生组织拟定的BMI指数与体重状况的对应关系是: BMI在18.525 体重在正常范围 BMI大于25小于30 体重状况为超重 BMI大于30 体重状况为较肥胖 BMI小于18.5 体重状况为偏瘦,JSP+JavaBean+Servlet技术,(1)Model层的实现,Model(模型)层是软件中的核心模块,负责实现软件所有的业务逻辑,所有的数据处理都是
11、在这里进行的。 Model层用JavaBean来实现。 新建一个类model_Bean,文件名为model_Bean.java,目录名为WEB-INF/src,存放在mvc_Test包中。,JSP+JavaBean+Servlet技术,Model_Bean.java文件源代码如下: package mvc_Test; public class model_Bean /构造函数 public model_Bean() /私有成员 private String result; private String bmi; /体重指数 /公有成员 public void setBmi(String w,S
12、tring h) /BMI体重指数 double wt=Double.parseDouble(w); /将字符串类型的体重数据转换成double类型 double ht=Double.parseDouble(h); /将字符串类型的身高数据转换成double类型 double bmit=wt/(ht*ht); /按给定公式计算BMI体重指数,JSP+JavaBean+Servlet技术,bmit*=10; int bmitt=(int)bmit; bmit=(double)bmitt/10; bmi=String.valueOf(bmit); /通过在浮点型和整型之间,先后进行相互的强制转换,
13、使BMI指数只保留一位小数。 public String getBmi() return bmi; public void setResult(String bmi) /根据BMI指数大小判定体型 double bmit=Double.parseDouble(bmi); if(bmit18.5 ,JSP+JavaBean+Servlet技术,else if(bmit25 /将处理结果返回控制层组件controller_Servlet 模型层负责对其接收的身高和体重数据进行处理,这些数据是视图层以表单的方式采集而来的,接下来将给出视图层的代码。,JSP+JavaBean+Servlet技术,(2
14、)View层的实现 View(视图)层提供了一个表单以采集用户的身高和体重数据。 view_Table.jsp文件源代码如下: 世界卫生组织标准体重测定 看看您的体重状态如何 ,JSP+JavaBean+Servlet技术, import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import mvc_Test.model_Bean;,JSP+JavaBean+Servlet技术,public class controller_Servlet extends HttpServlet public void d
15、oGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException /抛出接受请求的过程中的异常信息 doPost(request,response); public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException /抛出发送信息的过程中异常信息 String weight=request.getParame
16、ter(weight);/获取表单中体重的字符串信息 String height=request.getParameter(height);/获取表单中身高的字符串信息 model_Bean Pro =new model_Bean(); /建立一个model_Bean的实例Pro,JSP+JavaBean+Servlet技术,Pro.setBmi(weight,height); String BMI=Pro.getBmi(); Pro.setResult(BMI); String result=Pro.getResult(); /通过建立一个model_Bean的实例Pro,调用模型层组件mo
17、del_Bean处理身高和体重信息 response.setContentType(text/html; charset=gb2312);/指定以中文字符集显示返回信息 request.setAttribute(result,result); request.setAttribute(BMI,BMI); /使用RequestDispatcher 转发至显示视图页面/view_Result.jsp RequestDispatcher requestDispatcher=request.getRequestDispatcher(/view_Result.jsp);/获得 RequestDispat
18、cher对象 requestDispatcher.forward(request,response);/转发 ,JSP+JavaBean+Servlet技术,显示测试结果的页面view_Result.jsp文件源代码如下: ); out.println(); out.println(); out.println(您的BMI体重指数为: + + BMI + ); out.println(result); out.println(); %,JSP+JavaBean+Servlet技术,说明:编译controller_Servlet.java文件时,需要将Tomcat安装目录下的commonlib目
19、录下的servlet-api.jar,添加到JDK安装目录下的jdk1.6.0jrelibext目录下面,否则会编译失败。 然后新建一个配置文件web.xml,放在目录WEB-INF下。视图组件view_Table.jsp需要配置文件提供路径才能找到控制组件controller_Servlet.java,这些需要在web.xml中配置。,JSP+JavaBean+Servlet技术,web.xml源代码如下: control mvc_Test.controller_Servlet control /controller_Servlet ,JSP+JavaBean+Servlet技术,在表单中输
20、入数据,单击提交按钮,运行结果如图所示。,JSP+JavaBean+Servlet技术,8.2.4 改写学生成绩管理系统,方法1:JSP+Servlet 方法2:JSP+JavaBean+Servlet,JSP+JavaBean+Servlet技术,adminlogin.jsp 登录页面,登录请求,登录失败,验证成功,student数据库 admin表,操作数据库,LoginCheckServlet1.java,用户登录模块的改进 -方法一:(JSP+Servlet),JSP+JavaBean+Servlet技术,LoginCheckServlet1.java,JSP+JavaBean+Ser
21、vlet技术,LoginCheckServlet1.java,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,adminlogin.jsp 登录页面,登录请求,登录失败,验证成功,student数据库 admin表,操作数据库,AdminBeancl.java 验证业务逻辑,AdminBean.java 表示admin表,DBconn.java 得到数据库连接,调用,L
22、oginCheckServlet.java,用户登录模块的改进 -方法二(JSP+Servlet+JavaBean),JSP+JavaBean+Servlet技术,LoginCheckServlet.java,JSP+JavaBean+Servlet技术,LoginCheckServlet.java,JSP+JavaBean+Servlet技术,LoginCheckServlet.java,更快的跳转方法(转发):request.getRequestDispatcher(“welcome.jsp”).forward(request , response);,JSP+JavaBean+Servl
23、et技术,adminlogin.jsp 登录页面,JSP+JavaBean+Servlet技术,welcome.jsp 页面中,显示所有 成绩超链接,单击发送请求,动态生成新页面,输入出结果,student数据库 scores表,操作数据库,ShowScoresServlet.java,显示所有学生成绩信息模块的改进 -方法一:(JSP+Servlet),JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,ShowScoresServlet.java,JSP+JavaBean+Servlet技术,ShowScoresServlet.java,JSP+Ja
24、vaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,JSP+JavaBean+Servlet技术,显示所有学生成绩信息,welcome.jsp 页面中,显示所有 成绩超链接,JSP+JavaBean+Servlet技术,welcome.jsp 页面中,显示所有 成绩超链接,单击发送请求,将查询结
25、果返回,student数据库 scores表,操作数据库,ShowScoresServlet2.java,显示所有学生成绩信息模块的改进 -方法二:(JSP+Servlet+JavaBean),DBconn.java 得到数据库连接,ScoresDeal.java 查询业务逻辑,ScoresBean.java 表示scores表,showselect.jsp 页面中,显示所有 成绩信息,JSP+JavaBean+Servlet技术,显示socres表中信息使用ArrayList对象准备数据,student,rs,连接,1.若返回的是ResultSet,则在使用该ResultSet时,不能关闭与
26、之相关的资源,造成资源浪费 2.若返回的是ResultSet,则只能用rs.getInt()/rs.getString()来读取结果,代码可读性差,维护不便,JSP+JavaBean+Servlet技术,显示socres表中信息使用ArrayList原因说明,student,rs,连接,ScoresBean.java 表示scores表,则其一个实例就表示表中的一行数据,Scorebean ub,ArrayList scorea1,Scorebean ub,JSP+JavaBean+Servlet技术,ScoresDeal.java 验证业务逻辑,JSP+JavaBean+Servlet技术,
27、ScoresDeal.java 验证业务逻辑,JSP+JavaBean+Servlet技术,ScoresDeal.java 验证业务逻辑,JSP+JavaBean+Servlet技术,ShowScoresServlet2.java,JSP+JavaBean+Servlet技术,ShowScoresServlet2.java,JSP+JavaBean+Servlet技术,ShowScoresServlet2.java,JSP+JavaBean+Servlet技术,ShowScoresServlet2.java,JSP+JavaBean+Servlet技术,showselect.jsp 页面中,显示所有 成绩信息,JSP+JavaBean+Servlet技术,showselect.jsp 页面中,显示所有 成绩信息,JSP+JavaBean+Servlet技术,showselect.jsp 页面中,显示所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国油石磨头市场调查研究报告
- 2025年中国无油润油压缩机市场调查研究报告
- 2025年中国人造玛瑙卫生洁具市场调查研究报告
- 护理健康政策与改革
- 管路护理中的心理支持
- 异位妊娠护理中的健康教育
- 护理讲师信息化教学工具应用
- 护理案例分析课件
- 左心衰常用护理技术操作
- 2026-2032年中国成人拉拉裤行业市场全景分析及产业需求研判报告
- 2025年1月浙江省普通高中学业水平考试思想政治试卷(含答案详解)
- DB50∕T 1886-2025 特殊健康状态儿童预防接种服务规范
- 职称英语考试理工类(C级)试题及答案
- 雨污水管道施工应急预案
- DB37∕T 4393-2021 政务信息化项目 验收材料编制指南
- 2025年生态环境监测详细作业指导书(水和废水第3部分)
- 2025年新版二建继续教育(市政公用工程)题库(有答案)
- T-ZZB 3168-2023 人造板饰面用印刷装饰纸
- 上海民间收藏管理办法
- 天津市河西区2024-2025学年七年级下学期期末考试英语试卷(原卷版)
- 2024-2025学年广东省深圳市南山区五年级(下)期末数学试卷
评论
0/150
提交评论