用Eclipse开发java web应用程序

上传人:y****n 文档编号:252946281 上传时间:2024-11-26 格式:PPT 页数:36 大小:272.50KB
返回 下载 相关 举报
用Eclipse开发java web应用程序_第1页
第1页 / 共36页
用Eclipse开发java web应用程序_第2页
第2页 / 共36页
用Eclipse开发java web应用程序_第3页
第3页 / 共36页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第2讲,基于Servlet+JavaBean+Jsp开发应用的过程,第2讲,基于Servlet+JavaBean+Jsp开发应用的过程,本讲主要介绍主流的java web编程技术、设计模式和框架,以及如何利用Eclipese开发Web应用程序。,要点:,1、Java Web编程的主要组件技术;,2、MVC设计模式;,3、用Eclipse构建一个基于MVC模式的Java Web的应用程序。,目的,:,掌握如何用Eclipse构建一个基于MVC模式的Java WEB的应用程序。,2.1 java web 编程的主要组件技术,Html,jsp,Servlet,Javabean,Jdbc,Xml,Tomcat,MySQL,2.2 MVC设计模式,今天,我们见到的绝大部分应用,都是基于B/S(浏览器/服务器)架构的,其中的服务器就是Web服务器。可见,Web应用是目前广泛使用的应用模式。,Web程序开发方法的发展,:,JSP的Model 1,JSP的Model 2,MVC,1 Model 1和Model 2,对于Java的动态Web编程技术而言,则经历了,Model 1和Model 2,时代。,Model 1:,Model 1就是JSP大行其道的时代,在Model 1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。,Model 2:,Model 2下JSP不再承担控制器的责任,它仅仅是表现层角色,仅仅用于将结果呈现给用户,JSP页面的请求与Servlet(控制器)交互,而Servlet负责与后台的JavaBean通信。,在Model 2模式下,模型(Model)由JavaBean 充当,视图(View)由JSP页面充当,而控制器(Controller)则由Servlet充当。,Model 1的程序流程:,特点:,由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作,Model 2的程序流程,:,基本上是MVC结构,特点:,Model 2下JSP不再承担控制器的责任,它仅仅是表现层角色,仅仅用于将结果呈现给用户,JSP页面的请求与Servlet(控制器)交互,而Servlet负责与后台的JavaBean通信。 在Model 2模式下,模型(Model)由JavaBean 充当,视图(View)由JSP页面充当,而控制器(Controller)则由Servlet充当。,2,Model 1和Model 2的比较,对于非常小型的Web站点,如果后期的更新、维护工作不是特别大,可以使用Model 1的模式来开发应用,而不是使用Model 2的模式。,虽然Model 2提供了更好的可扩展性及可维护性,但,增加了前期开发成本,。从某种程度上讲,Model 2为了降低系统后期维护的复杂度,却导致前期开发的更高复杂度。,3,MVC思想,MVC并不是Java语言所特有的设计思想,也并不是Web应用所特有的思想,它是所有面向对象程序设计语言都应该遵守的规范。,MVC思想将一个应用分成三个基本部分:Model(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。,MVC,MVC:,M(model)是指数据模型,,V(View)是指用户界面,,C(Control),则是控制器。,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。,模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器3者之间的关系和各自的主要功能。,MVC的组成部分,视图(View),代表用户交互界面,对于Web应用来说就是HTML界面。,模型(Model):,就是业务流程/状态的处理以及业务规则的制定。,控制(Controller):,可以理解为一个分发器,他来决定选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求,控制层并不做任何的数据处理。,MVC带来的好处,MVC从根本上强制性的将它们分开,最大程度上实现了程序代码与网页的分离。,数据和业务规则从表示层分开,所以可以最大化的重用代码。,MVC的特点,MVC特点:,多个视图可以对应一个模型。按,MVC,设计模式,一个模型对应多个视图,可以减少代码的复制及代码的维护量,一旦模型发生改变,也易于维护。,模型返回的数据与显示逻辑分离。模型数据可以应用任何的显示技术,例如,使用,JSP,页面、,Velocity,模板或者直接产生,Excel,文档等。,应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性。,控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。因此,控制层可以说是包含了用户请求权限的概念。,MVC,更符合软件工程化管理的精神。不同的层各司其职,每一层的组件具有相同的特征,有利于通过工程化和工具化产生管理程序代码。,4,常用的MVC框架,Struts:,-包括struts1和struts2两个。,JSF:,JSF是一个标准 ,目前,JSF是作为JEE 5.0的一个组成部分,与JEE 5.0一起发布,JSF的行为方法在POJO中实现,JSF的Managed Bean无需继承任何特别的类。因此,无需在表单和模型对象之间实现多余的控制器层。JSF中没有控制器对象,控制器行为通过模型对象实现。,JSF的事件框架可以细化到表单中每个字段。JSF依然是基于JSP/Servlet的,仍然是JSP/Servlet架构,因而学习曲线相对简单,2.3 用Eclipse构建一个基于MVC模式的Java Web应用程序,题目要求:,(1)技术要求,:,按照MVC设计模式,利用JSP、Servlet及JavaBean构建一个简单的登录系统。,(2)系统功能要求:,当用户在登录页面上填写用户名和密码并提交后,系统检查该用户是否已经注册,若注册,系统进入主页面,否则,进入注册页面。系统的工作流程见下图。,(2),控制器-1,LoginServlet,(1),登录页面,Login.jsp,(5),数据组件,user,doa,db_op,(6),数据库MySQL,进行验证,不符合格式,返回注册页面,重新注册,并提示出错情况,注册成功,进入登录页面,未注册,登录系统的工作流程,(3),提示:登录成功,Main.jsp,(过20秒后再自动,进入注册页面,),(4),进入,注册页面,Register.jsp,(7),控制器-2,RegisterServlet,(8),提示:注册失败,Register_err.jsp,(,过20秒后再自动,进入注册页面,),(9),注册成功,Register_succ.jsp,(,过20秒后再自动,进入注册页面,),已注册,或者,密码错误,(10),进入主页面,Main2.jsp,构建系统的处理步骤,(1)数据库设计:,构建数据库表T_UserInfo,(2),在Eclipse中创建一个项目,:Login_Proj,(3),构建视图组件,:登录页面(login.jsp)、主页面(main.jsp)、注册页面(register.jsp),注册失败(Register_err.jsp),注册成功(Register_succ.jsp),(4)构建控制层组件:,一个servlet(LoginServlet.java)-实现登录的控制,一个,servlet(,RegisterServlet.Java,)-,实现注册的验证控制,(5),构建业务逻辑层组件(模型组件),:,一个JavaBean:,user,doa,db_op,(6),部署该程序到服务器Tomcat中,,然后运行。,(1)数据库设计:构建数据库表T_UserInfo,利用MySQL数据库,,创建数据库:,user,创建表及其结构:,T_UserInfo,字段名,字段类型,字段描述,userName,文本(20),用户名,主键,password,文本(10),密码,数据表结构T_UserInfo,注意,该数据库所存放的位置,(2)在Eclipse中创建一个项目:Login_Proj,按Eclipse建立工程的提示,建立,Web工程,,工程的名称为:,Login_Proj,。,(3)构建视图组件:- 登录页面(login.jsp),选中工程“,Login_Proj,”,,,击右键,选“新建”,,按,Eclipse,的提示,建立,jsp,,名称为:,Login,。,修改默认,jsp,内容,达到我们所要求的编码,。,login.jsp的代码,登录页面,用户名: ,密 ,(3)构建视图组件- 主页面(main.jsp),选中工程“,Login_Proj,”,,,击右键,选“新建”,,按,Eclipse,的提示,建立,jsp,,名称为:,main.jsp,。,修改默认,jsp,内容,达到我们所要求的编码,。,main.jsp代码,主页面,你成功登录,20秒后自动进入主页面!,类似可以建立其它的页面:,系统页面,main2.jsp,注册页面,register.jsp,注册失败提示页面,Register_err.jsp,注册成功提示页面,Register_succ.jsp,构建控制层组件(,第,4,步,),建立数据,JavaBean,用户(,user,);,建立连接数据库的,JavaBean,(,doa,),建立实现对用户数据库进行操作的,java,类,-,db_op.java,4.1,建立数据JavaBean用户(user),package,JavaBean;,public,class,use,r ,private,String username;,private,String password;,public,String getUsername() ,return,username;,public,void,setUsername(String username) ,this,.username = username;,public,String getPassword() ,return,password;,public,void,setPassword(String password) ,this,.password = password;,4.2,建立连接数据库的JavaBean(doa),package,JavaBean;,public,class,doa ,private,String db_username;,private,String db_password;,private,String db_driver;,private,String db_connection;,public,String getDb_username() ,return,db_username;,public,void,setDb_username(String db_username) ,this,.db_username = db_username;,public,String getDb_password() ,return,db_password;,public,void,setDb_password(String db_password) ,this,.db_password = db_password;,public,String getDb_driver() ,return,db_driver;,public,void,setDb_driver(String db_driver) ,this,.db_driver = db_driver;,public,String getDb_connection() ,return,db_connection;,public,void,setDb_connection(String db_connection) ,this,.db_connection = db_connection;,4.3,在JavaBean(doa)的基础上,建立实现对用户数据库进行操作的java类-,db_op.java,public class db_op ,public Connection db_getConnection(),Connection conn=null;,String db_username=null; String db_password=null;,String db_driver=null; String db_connection=null;,Properties pro = new Properties();,File file = new File(H:web_15Login_Projsrcdb.properties);,try ,pro.load(new FileInputStream(file);, catch (Exception e) e.printStackTrace(); ,db_username=pro.getProperty(db_username,);,db_password=pro.getProperty(db_password,);,db_driver=pro.getProperty(db_driver,db_driver);,db_connection=pro.getProperty(db_connection,db_connection);,try,Class.,forName,(db_driver).newInstance();,conn=DriverManager.,getConnection,(db_connection, db_username,db_password);,return conn;,catch(Exception e) System.,out,.println(e); return null; ,实现数据库的连接,public,boolean,select_1(user u) /查询用户是否已经注册,Connection conn=,null,; ResultSet rs=,null,;,Statement ps=,null,;,String xm=u.getUsername(); String pass=u.getPassword();,conn=db_getConnection();,String s1=select * from T_userInfo where username=+xm+ and password=+pass+;,try,ps=conn.createStatement();,rs=ps.executeQuery(s1);,if,(rs.next(),rs.close();,ps.close();,conn.close();,return,true,;,else,rs.close();,ps.close();,conn.close();,return,false,;,catch,(SQLException e),return,false,;,public,boolean,select_2(String u) ,/在注册时,查询是否有重名的用户已经注册,Connection conn=,null,;ResultSet rs=,null,;,Statement ps=,null,;,conn=db_getConnection();,String s1=select * from T_userInfo where username=+u+ ;,try,ps=conn.createStatement(); rs=ps.executeQuery(s1);,if,(rs.next(),rs.close(); ps.close(); conn.close();,return,true,;,else,rs.close(); ps.close(); conn.close();,return,false,;,catch,(SQLException e),return,false,;,public,void,append(user u),/注册时,添加注册用户信息,Connection conn=,null,;,Statement ps=,null,;,conn=db_getConnection();,String xm=u.getUsername();,String pass=u.getPassword();,String s1=insert into T_userInfo(username,password) values(+xm+,+pass+) ;,try,ps=conn.createStatement();,ps.executeUpdate(s1);,ps.close();,conn.close();,catch,(SQLException e),System.,out,.println(e);,(5)构建控制层组件(,第5步,):,5.1 一个servlet(LoginServlet.java),-实现登录的控制,5.2,一个servlet(RegisterServlet.Java,),实现注册的验证控制,5.3 web.xml配置文件的,解读,5.2,构建控制层组件:一个servlet(registerServlet.java,public,void,doGet(HttpServletRequest request, HttpServletResponse response),throws,ServletException, IOException ,String xm=(String)request.getParameter(username);,String mm=(String)request.getParameter(password);,String mm2=(String)request.getParameter(repassword);,String type_err=; db_op b=,new,db_op();,if,(b.select_2(xm),type_err=xm+:该用户已经注册!;,HttpSession s=request.getSession(,true,); s.setAttribute(type_err,type_err);,response.sendRedirect(Register_err.jsp);,else,if,(!mm.equals(mm2) ,type_err=两次密码不一致错!;,HttpSession s=request.getSession(,true,); s.setAttribute(type_err,type_err);,response.sendRedirect(Register_err.jsp);,else, HttpSession s=request.getSession(,true,);,s.setAttribute(username,xm); s.setAttribute(password,mm);,user u=,new,user();u.setUsername(xm);u.setPassword(mm);,db_op d=,new,db_op(); d.append(u);,response.sendRedirect(Register_succ.jsp);,5.1,构建控制层组件:一个servlet(LoginServlet.java),public,void,doGet(HttpServletRequest request, HttpServletResponse response),throws,ServletException, IOException ,user u=,new,user(); String xm=; String ps=;,xm=request.getParameter(username);,ps=request.getParameter(password);,u.setUsername(xm);,u.setPassword(ps);,HttpSession s=request.getSession(,true,);,s.setAttribute(username,xm);,db_op d=,new,db_op();,boolean,tf=d.select_1(u);,if,(tf),response.sendRedirect(main2.jsp);,else,response.sendRedirect(register2.jsp);,5.3 web.xml配置文件的,解读,和,配置,提示:,必须要学会,自己修改,和,配置,,这对于我们了解servlet的工作原理和实用有着重要的作用。,Java Web应用通过一个基于XML的发布描述符文件来配置其发布信息,这个文件名为web.xml,它存放于WEB-INF子目录下。在web.xml文件中可主要包含如下配置信息:,(1)Servlet的定义。,(2)Servlet的初始化参数。,(3)Servlet以及JSP的映射。,(4)Filter的定义。,(5)安全域配置参数。,(6)welcome文件清单。,(7)资源引用。,(8)环境变量的定义。,(6)部署该程序到服务器Tomcat中,然后运行,另外,必须对系统进行,测试和调试,总结,该程序的设计关键:,(1)了解系统流程,给出系统分析,并给出图形描述;,(2)数据库模型的设计:,为了使对数据库的操作,具有通用性,采用属性文件,存放数据库连接的有关信息,通过对数据文件的读,获取该信息,实现连接;,(3)网页之间是如何传递信息的?,(4)jsp网页与servlet之间是如何传递信息的:,信息由jsp,servlet如何实现;,信息由,servlet,jsp,如何实现;,(5)应该自己逐步设计,绝不能找一个类似的程序修该一下。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!