版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、科技丈禽JAVAEE框架开发技术实验报告学院:计算机科学与技术学院专业及班级:学号:软件工程1202班1208010212黄子斌2015 年 12目录-头S struts寺冬研H9佥 313233 3431. Web.xml文件的酉己32. struts.xml 文件配置4/ctIn白、)丁从! 扌彳彳:丿zf11)1. 实验类型62. 实验目的63. 实验要求64. 实验容61. hibernate.cfg.xml 文件配置62. 实体类和映射文件73. 运行结果10实验三SSM整合实验101. 实验类型102. 实验目的103. 实验要求104. 实验容101. applicationCo
2、ntext.xml文件配置102. struts.xml 文件配置123. 工程代码结构分析124. 运行结果13实验总结14实验一 struts基础实验1. 实验类型验证型2. 实验目的掌握Struts2开发环境的搭建;理解Struts 2工作流程;掌握Struts 2的web.xml文件的 配置;掌握config_browser插件的使用。3. 实验要求搭建Struts 2的开发环境;实现用户登录;使用Iog4j输出调试信息。4. 实验容1. Web.xml文件的配在该文件中主要配置默认启动的jsp界面,还有filter过滤器。使用Apache的StrutsPrep areAndExecu
3、teFilter 类进行拦截。javawebl6ValidateDemo/display namei ndex.jsp struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /*2. struts.xml文件配置对 action 的拦截及使用 com.javaweb.action.RegisterAction 处理。 octi on n ame=,register class=.javaweb.actio n. RegisterAction”!-定义处理结果与视图资源之间的关系-
4、/result.jsp/register2.jsp3. Action的实现主要核心处理功能。package .javaweb.action;导入关键类public class RegisterAction extends ActionSupportprivate String user name;private String password;private String repassword;实现getter和setter以及构造器部分略public void validate() 判断用户名是否输入,如果输入了再判断格式是否正确if(username 二二 null 11 ,.equals
5、(username) this.addFieldError(username,用户名必须输入); else if ( !Pattern.matches(,w6,20,/ username.trim() this.addFieldErrorCusername,用户名必须是字母和数字,长度为6到20之间 );判断密码是否输入,如呆输入了再判断格式是否正确if( password = null 11 H,.equals(password)this.addFieldError(,password,7,密码必须输入);else if( !Pattern.matches(w6,20, password.t
6、rim() this.addFieldEiror(”password,密码必须是字母和数字,长度为6到20之间”);判断确认密码是否输入,如果输入了再判断格式是否正确if(repassword = null 11 .equals(repassword) this.addFieldError(repassword,确认密码必须输入);else if( !Pattern.matches(w6,20, repassword.trim() this.addFieldError(repasswordz确认密码必须是字母和数字,长度为6到20 之间“);判断确认密码和密码是否相同if(password !
7、= null & repassword != null & ! repassword.equals(password) this.addFieldError(repasswordz确认密码和密码必须相同“);判断年龄是否合法if(age 130) this.addFieldEiror(” age, ” 请输入有效的年龄);判断出生日期是否合法Calendar start = Calendar.getlnstance();Calendar end = Calendar.getlnstance();start.set(1900,1,1);end.set(2010,1,1);if(birth !=
8、null & ( birth.after(end.getTime() 11 birth.before(start.getTime() this.addFieldError(,birth7,请输入有效的出生日期”);判断地址是否合法if(email != null & !.equals(email) & email !=&!Pattern.matches(a-zA-Za-zA-Z0-9._-*(a-zA-Z0-9-_+-)+( |gov| net |.cn | eduW.cn),email)this.addFieldErrorCemail/请输入正确的地址”);public String exe
9、cuted throws Exception return SUCCESS;注册页面出生日朗: 邮箱地址:4. 运行结果Hhibernate.sourceforge, net/hibernate-c on figurati on-3.0.dtdxhibernate-configuration jdbc:mysql:/localhost/javaweb mysql.jdbc.Driver rootaclmin!-数据库方言- org.hibernate.dialect.MySQLDialect !-指定映射文件-实体类和映射文件1. 实体类productpackage .javaweb.chl7
10、.hibernate;public class Product 产品IDprivate String id;产品名称 private String name;产品价格private double price;对每一个属性设置getter和setter方法略。2. 映射文件 Product.hbm.xml !-id元素用来定义主键标识,并指定主键生成策略3. 创建数据库操作在CreateDB.java文件是创建数据库的主入I丨。 import org.hibernate.toolhbm2ddlSchemaExport; public class CreateDB public static vo
11、id main(String args) 读取配置文件hibernate.cfg.xmlCon figuration cfg = new Configuratio n().configure();创建 SchemaExport 实例SchemaExport sExport = new SchemaExport(cfg); 创建数据库表sExport.create(true, true);4. Product的增删査这个自定义实现一个操作操作的工具类。public class HibernateUtil private static SessionFactory factory;staticf/
12、读取配置文件 hibernate.cfg.xmlCon figuration cfg = new Configuratio n().configure();创建 SessionFactoryfactory = cfg.buildSessio nF actory();获得 SessionFactory 实例public static SessionFactory getSessionFactory()return factory;获得Session实例public static Session getSession() return factory.openSession();关闭指定Sessi
13、onpublic static void closeSession(Session session) 讦(session != null) if(session.isOpen() sessio n.close(); 增加product的操作public class InsertProduct public static void main(String args) 创建 SessionSession session = Hibernatelltil.getSession();开启事务session.begi nTran sactio n();实例化一个ProductProduct produc
14、t = new Product();product.setld(,05112341);product. setName(” 冰箱 product.setPrice(1250.00);session.save(product);保存数据sessio n.getTra nsactio n()commit(); 事务提交ibernatelltil.closeSessio n(session);查询所有信息public class QueryAII Product public static void main(String args) Session session = Hibernatelltil
15、.getSession();Product p = null;String hql = HFROM Product as pro;/ 使用 HQL 查询Query q = session.createQuery(hql);/ 通过 Query 方法查询List list = q.list();查询结果保存到list中Iterator iter = list.iterator();/遍历是否存在该id的产品,如果存在则进行输出 while(iter.hasNext() p = (Product) iter.next();System.out.println(,id:H + p.getld() +
16、 H name:11 + p.getName() + price: + p.getPrice(); / 关闭 sessionibernatelltil.closeSessio n(session); 其他的删除和修改类似。3.运行结果完成插入删除后的结果。SQL输出 统计表select * from factory9 g M厶1辜|IDJjME1 0511234冰箱图2-1实验三SSM整合实验1. 实验类型验证类型2. 实验目的掌握ssh的整合过程,能够使用ssh创建。3. 实验要求1. 使用hibernate实现数据库表的插入和查询2. 用 Struts 2 实现 REST API3. 使用
17、Spring实现service的注入。4. 实验容1. applicationContext.xml 文件配置 .mysql.jdbc.Driverjdbc:mysql:/localhost/javaweb rootadmin!一 定义 SessionFactory 一prop key=Mhibernate.dialect”org.hibernate.dialect. MySQLDialectfalseproperty name=mappingResources”/javaweb/po/User.hbm.xml!一 定义 hibernateTemplate!-配置DAO组件-2. struts
18、.xml文件配置 !- Action必须放在指定的包名空间中!-定义处理结果与视图资源之间的关系-/showAll.jsp!-定义处理结果与视图资源之间的关系-/showAll.action octi on n ame=,addH class=,addAction!-定义处理结果与视图资源之间的关系-/showAll.action/add.jsp/add.jspocti on n ame二update” class=,updateAction,!-定义处理结果与视图资源之间的关系-/showAll.action/update.jsp/update.jspocti on n ame=,showU
19、ser, class=showUserAction,!-定义处理结果与视图资源之间的关系-/showllser.jsp3. 工程代码结构分析1. .javaweb.po 层业务实体类都放在该包里面。比如用户的类和映射文件都放在这里。2. .javaweb.dao该包底下是数据库操作数据库的接I I,以及对接II的实现类都在这里。比如:增删改查等。UserDao接I I中定义各种操作方法,在UserDaoIml中提供了对这些方法的实现。/添加用户public void save(User user) this.getHibernateTemplate().save(user);3. .javaw
20、eb.acti on具体的action都在这个包卞面。Action的操作是调用service层的方法处理事件。 代码:public String execute() throws Exception 将接受的参数设置到User实例中User user = new User();user.setUser namefuser name);user.setPassword(password);user.setAge(age);user.setBirth(birth);user.setEmail(email);调用业务逻辑组件保存该产品if(userService.addllser(user)retu
21、rn SUCCESS;elseaddActionError(添加用户失败!);return ERROR;4. .javaweb.service对Dao层的封装,可以直接对实体操作,也提供了一个接I的一个接I】的实现类。该层 的方法调用Dao层的方法。/添加用户public boolean addUser(User user) 判断是否存在相同ID的用户if (userDAO.queryBylD(user.getld() = null) 如果不存在,而调用DAO组件进行保存userDAO.save(user); else return false;return true;4.运行结果 1 Ioc
22、alhost:8080/ch21 口裁 Cq臣度 启已访问最參火血官方站点LJ嶄手上路當用网址園爰海宝(原海宝特卖)添加用户密码;用户名: Xs用户列表曲 co m.javaweb.actio n Jj Add Actio n.java JJ Del eteActi on .java J ShowAllAction.java jj Sh owUserAction.java j UpdateAction.java曲 Add Actio n-val id ati on.xml Upd ateActio n-val id ati on.xr 曲 com.javaweb.dao U UserDAO.java UserDAOImpLjava 田
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ISO 12176-52021 塑料管和配件.聚乙烯系统熔焊设备.第5部分聚乙烯管道系统用元件的二维数据编码和数据交换格式标准立项发展报告
- 2024年安阳九龙山职业学院单招综合素质考试模拟试卷及参考答案详解【达标题】
- 2026年甘肃省甘南州单招综合素质考试题库附答案详解【培优A卷】
- 2026年宣城职业技术学院高职单招职业技能考试模拟试卷附答案详解【巩固】
- 2026年嘉兴大学附属医院公开招聘编外合同制人员2人考试备考题库及答案详解
- 2026年四川宜宾翠屏职业学院高职单招职业技能考试题库带答案详解(B卷)
- 2026汕头大学医学院第二附属医院(第三批)招聘工作人员8人考试备考题库及答案详解
- 2027年渌水职业学院单招职业技能考试题库及答案详解【典优】
- 2024年湖南永州零陵职业学院单招综合素质考试模拟试卷带答案详解(达标题)
- 2025年郴州新能源职业学院高职单招职业技能考试题库及参考答案详解(达标题)
- 网络舆情应对及处置
- DB43-T 1267-2023机动车检验机构建设和运行管理规范
- 英语学习之EMAIL写作培训课件
- 二手房交易管理系统数据库概论课题设计
- 2015年版干部履历表
- NB/T 10756-2021煤矿在用无轨胶轮车安全检测检验规范
- GB/T 3498-2008润滑脂宽温度范围滴点测定法
- GB/T 21152-2018土方机械轮式或高速橡胶履带式机器制动系统的性能要求和试验方法
- GB/T 20492-2006锌-5%铝-混合稀土合金镀层钢丝、钢绞线
- 落地双排扣件式钢管外脚手架工程专项施工方案完整
- 慢性骨髓炎的分类和治疗策略培训课件
评论
0/150
提交评论