基于StrutsHiberbate项目创建过程.doc_第1页
基于StrutsHiberbate项目创建过程.doc_第2页
基于StrutsHiberbate项目创建过程.doc_第3页
基于StrutsHiberbate项目创建过程.doc_第4页
基于StrutsHiberbate项目创建过程.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

基于Struts+Hibernater的项目开发流程1.打开Myeclipse,如图所示:22. 给项目添加组件和jar包。33创建包44 创建类55配置Struts-config.xml65.1 65.2.Hibernate.cfg.xml配置Hibernate的文件。75.3 Hibernate.hbm.xml数据映射文件(手写创建过程)106程序开发生命周期。111. 打开Myeclipse,如图所示:点击filenew选中web project 点击NEXT,也可以双击web project.进入项目创建页面,如图:请选择Java EE 5.0。在Project Name 后输入项目名字WEBproject。然后点Finish。项目创建完成。2. 给项目添加组件和jar包。一个是手动添加jar包。主要是添加连接数据库的jar包。我们用的数据库是SqlServer2005,他的JAR包主要有三个,名字分别是:mssqlserver.jar,msbase.jar,msutil.jar;将这三个jar包copy到 workspaceWEBprojectWebRootWEB-INFlib文件夹中。然后在Myeclipse中右击项目名选择 Refresh进行刷新。打开Referenced Libraries下拉列表。查看是否添加成功。成功后的视图是:出现该COPY的三个JAR包。另一个是添加Struts和Hibernate组件。步骤:鼠标右击项目名出现如下视图:选择要添加的组件。一个是添加Struts组件,点击Add Struts Capabilities后出现的页面如下:不用改任何东西,直接点击Finish。有的时候为了以后项目名字的统一,需要将com.yourcompany.struts中的yourcompany改成别的名字,具体由以后项目决定,这里我们是默认不要改动。另一个组件JAR包是Hibernate 包。和添加Struts组件过程类似,现在选择的是Add Hibernate Capabilities, 然后出现的页面如图所示:什么都不用管,点击Next。出现如下所示:然后将这个沟去掉。出现如下界面:然后点NEXT出现如下视图:图中的DAO是存放HibernateSessionFactotry类的包。刚开始进入该页面,Java package后的文本框是空的,如果一开始在项目中创建了DAO包,可以直接点Browse,进行导入,如果没有创建,点击New来进行创建。然后点击Finish。出现如下视图:点击New来创建DB Driver,出现如下视图:然后在图中空白处填写内容。我填写的内容是:Driver name:conn-sqlserverConnectionURL:jdbc:microsoft:sqlserver:/localhost:1433;databasename=db_JSDQ其中db_JSDQ是数据库名。User name:saPassword:saUsername 和password都是连接Sqlserver2005的用户名和密码,根据自己所设定的值来写。该空白地方主要是获取数据库驱动的,集体操作是:点击Add JARs出现如下视图:找到当前项目所在的文件夹,然后找到lib文件夹,其过程是项目名-WebRoot-WEB-INFlib选中一个jar包,例如msbase.jar点击打开。然后依次将其他的两个jar包也导入进项目,出项如下界面然后点Test Driver按钮,输入开始写的密码。我写的密码是sa。然后显示的界面是该界面说明你已经成功连接数据库了。点击OK,直接点击Finish。这样所有的JAR包添加已经完成了。添加完组件后项目下出现这些文件Struts1.2 Libraries和Hibernate3.1Core Libraries是通过Myeclipse添加进去的。3创建包步骤:右击SRCnew选择package在NAME中添加包名。一般包名的写法是根据反域名写法,也就是说是跟网络地址URL写法是相反的。例如:.反过来就是com.newseasoft.www。基于Struts+Hibernate的项目一般包括这几个包。一个是action包 ,其作用是:实现应用程序的事务逻辑,负责处理请求。一个是form包,其作用是:封装表单数据,表单数据复位和表单数据验证。一个是DAO包(数据访问),其作用是:对数据库数据进行处理,相当于数据库的业务处理。一个是filter包(数据过滤或者是IP地址过滤)或者listener包(监听).还可以创建tools工具包或者是test测试包。如图所示:每个包中有相应的类。4 创建类同理,右击包名newclass 在name后填写类名。例如填写LoginAction类名书写要求首字母大写,例如TestJava。点击finish完成。5配置与实现5.1.Hibernate.cfg.xml数据映射文件。(自动创建过程)前提是你已经在SQLSERVER中将表都创建好了。例如我先创建了个数据库叫db_JSDQ,然后创建了个表叫t_emp;我创建了两个列名。一个是f_username,一个是f_password;创建表后,在Myeclipse中点击这个图标选择如下图所示:出现如下图所示的界面:右击conn-sqlserver选择Open connection。输入密码sa。连接成功出现如下图所示界面:如下图所示的依次打开树形表:右击t_emp如图所示;点击出现如图所示界面然后点击Browse选择项目名下的src点击OK。再点击Java package后的Browse,将DAO包选中点击OK。点击下面的复选框,主要点击五处,如图所示:点击Finish。完成后在DAO包中将出现如下情况:我们看下Temp.hbm.xml的代码情况:5.2 Hibernate.hbm.xml数据映射文件(手写创建过程)Hibernate.hbm.xml文件的创建。手写创建过程:右击DAO包new在General中选择Filenext给该文件创建名字。例如TEmp.hbm.xml打开Hibernate.cfg.xml文件复制表头信息。放入到TEmp.hbm.xml文件中;只需改动三处。例如:将configuration改成mapping.其中Configuration改成Mapping;这里面的内容和数据库中表的内容是一一对应的。Name=username中的username 是和javabean中的属性username对应的。两者必须相同。Column=”f_username”这个是和数据库表中的列名对应。两者也是必须相同。type=”java.lang.String” 这是设定数据类型。中一般写的都是数据库表中的primarykey.写完这些还要在DAO包中创建TEmpDAO.java类和Temp.java类。这两个类是需要在手动情况下写入的。自动下是自动生成的。DAO包的TempDAO.java类,其代码如下:package DAO;import java.util.HashMap;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;public class TempDAO/连接数据库。验证登陆SuppressWarnings(unchecked)public HashMap loginEmp()HashMap hm = new HashMap();Configuration config = new Configuration().configure();SessionFactory sf = config.buildSessionFactory();/打开SESSIONSession session = sf.openSession();/打开事务Transaction ts = session.beginTransaction();/创建查询对象String sql=from EmployeeInfo;/读取查询结果List list = session.createQuery(sql).list();for(int i=1;ilist.size();i+)EmployeeInfo emp = new EmployeeInfo();emp = (EmployeeInfo) list.get(i);Integer username = emp.getUsername();String password = emp.getPassword();hm.put(username,username.toString();hm.put(password,password);System.out.println(从数据库中读取的数据是:+emp);mit();session.close();return hm;/连接数据库。实现员工注册信息;public void regEmp(EmployeeInfo emp)Configuration config = new Configuration().configure();SessionFactory sf = config.buildSessionFactory();Session session = sf.openSession();Transaction ts = session.beginTransaction();session.save(emp);mit();session.close();其次是DAO包中的Temp.java类。代码如下:package DAO;/* * TEmp entity. * * author MyEclipse Persistence Tools */public class TEmp implements java.io.Serializable / Fields/* * */private static final long serialVersionUID = 1L;private Integer FUsername;private String FPassword;/ Constructors/* default constructor */public TEmp() /* full constructor */public TEmp(Integer FUsername, String FPassword) this.FUsername = FUsername;this.FPassword = FPassword;/ Property accessorspublic Integer getFUsername() return this.FUsername;public void setFUsername(Integer FUsername) this.FUsername = FUsername;public String getFPassword() return this.FPassword;public void setFPassword(String FPassword) this.FPassword = FPassword;5.3 其他代码action包中的LoginAction.java代码:package action;import java.util.HashMap;import java.util.Iterator;import java.util.Set;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionError;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import DAO.EmpDAO;import form.LoginForm;public class LoginAction extends Actionpublic ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)ActionErrors errors = new ActionErrors();/从页面介绍数据。String username = (String)(LoginForm)form).getUsername();String password = (String)(LoginForm)form).getPassword();System.out.println(用户在界面输入的用户名是:+username);System.out.println(用户在界面输入的用户密码是:+password);/对数据进行验证和处理。EmpDAO ed = new EmpDAO();HashMap hm = ed.loginEmp();Set keyset = hm.keySet();Iterator it = keyset.iterator();while(it.hasNext()System.out.println(hm.get(username);String name = (String)hm.get(username);System.out.println(username from hashmap!+name);System.out.println(hm.get(password);String pw = (String) hm.get(password);if(!username.equals(name)errors.add(username,new ActionError(login.usernameerror);saveErrors(request,errors);return mapping.findForward(error);if(!password.equals(pw)errors.add(password,new ActionError(login.passworderror);saveErrors(request,errors);return mapping.findForward(error);/if(!username.equals(admin)/errors.add(username,new ActionError(login.usernameerror);/saveErrors(request,errors);/页面跳转/return mapping.findForward(error);/if(!password.equals(123)/errors.add(password,new ActionError(login.passworderror);/saveErrors(request,errors);/return mapping.findForward(error);/删除formbean;System.out.println(数据通信成功!);request.removeAttribute(mapping.getAttribute();return mapping.findForward(success);action中的RegEmpAction.java代码:package action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction;import DAO.EmpDAO;import DAO.EmployeeInfo;import form.RegForm;public class RegEmpAction extends Actionpublic ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)System.out.println(regEmp begin);RegForm regForm = (RegForm) form;Integer username = regForm.getUsername();String password = regForm.getPassword();EmployeeInfo emp = new EmployeeInfo();emp.setUsername(username);emp.setPassword(password);EmpDAO dao = new EmpDAO();dao.regEmp(emp);return mapping.findForward(regsuccess);5.4 JSP页面如上图所示,是创建JSP页面的界面。其过程是:右击WebRoot选择NEWJSP,如图所示:点击创建JSP页面按钮。出现如下视图:在File Name后输入欲创建的JSP页面。我创建了login.jsp regemp.jsp success.jsp 这个四个页面。每个页面的代码是:login.jsp的代码是: My JSP login.jsp starting page !- var timerIDfunction showtime () var now = new Date();var hours = now.getHours();var minutes = now.getMinutes();var seconds = now.getSeconds()var timeValue = +(hours = 12) ? 下午 : 上午 )timeValue += (hours 12) ? hours -12 :hours)timeValue += (minutes 10) ? :0 : :) + minutestimeValue += (seconds 10) ? :0 : :) + secondsdocument.getElementById(timeContainer).value = timeValue;timerID = setTimeout(showtime(),1000); 用户登陆界面 用户编号: 用户密码:            确定       取消 未注册?点击这里注册 regemp.jsp中的代码是: 用户注册页面 !- 12) ? hours - 12 : hours) timeValue += (minutes 10) ? :0 : :) + minutes timeValue += (seconds = 12) ? P.M. : A.M. document.clock.face.value = timeValue timerID = setTimeout(showtime(),1000) timerRunning = true- /显示提示信息;function showDivMessage(divId,message)var oDiv = document.getElementById(divId);oDiv.innerText = message;/消除提示信息;function clearDivMessage(divId)var oDiv = document.getElementById(divId);oDiv.innerText = ;/显示用户输入姓名提示信息;function nameDivMessage()var divName = document.getElementById(textname).value;var regName = /u4e00-u9fa52,4/gi;if(!regName.test(divName)showDivMessage(divName,用户名格式应为3-5位字符);/显示用户输入密码提示信息;function passwordDivMessage()var di

温馨提示

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

评论

0/150

提交评论