javaEE实验报告.docx
- 文档编号:29543719
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:18
- 大小:220.22KB
javaEE实验报告.docx
《javaEE实验报告.docx》由会员分享,可在线阅读,更多相关《javaEE实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
javaEE实验报告
科技大学
《JAVAEE框架开发技术》
实验报告
学院:
计算机科学与技术学院
专业及班级:
软件工程1202班
学号:
1208010212
:
_黄子斌
2015年12
实验一struts基础实验
1.实验类型
验证型
2.实验目的
掌握Struts2开发环境的搭建;理解Struts2工作流程;掌握Struts2的web.xml文件的配置;掌握config_browser插件的使用。
3.实验要求
搭建Struts2的开发环境;实现用户登录;使用log4j输出调试信息。
4.实验容
1.Web.xml文件的配
在该文件中主要配置默认启动的jsp界面,还有filter过滤器。
使用Apache的StrutsPrep
areAndExecuteFilter类进行拦截。
xmlversion="1.0"encoding="UTF-8"?
>
xsi=".w3.org/2001/XMLSchema-instance"xmlns="java.sun./xml/ns/javaee"xsi: schemaLocation="java.sun./xml/ns/javaeejava.sun./xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0"> 2.struts.xml文件配置 对action的拦截及使用com.javaweb.action.RegisterAction处理。 xmlversion="1.0"encoding="UTF-8"? > DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN" "struts.apache.org/dtds/struts-2.3.dtd"> --定义register的Action,其实现类为com.javaweb.action.RegisterAction--> --定义处理结果与视图资源之间的关系--> 3.Action的实现 主要核心处理功能。 package.javaweb.action; //导入关键类 publicclassRegisterActionextendsActionSupport{ privateStringusername; privateStringpassword; privateStringrepassword; //实现getter和setter以及构造器部分略 publicvoidvalidate(){ //判断用户名是否输入,如果输入了再判断格式是否正确 if(username==null||"".equals(username)){ this.addFieldError("username","用户名必须输入"); }elseif(! Pattern.matches("\\w{6,20}",username.trim())){ this.addFieldError("username","用户名必须是字母和数字,长度为6到20之间"); } //判断密码是否输入,如果输入了再判断格式是否正确 if(password==null||"".equals(password)){ this.addFieldError("password","密码必须输入"); }elseif(! Pattern.matches("\\w{6,20}",password.trim())){ this.addFieldError("password","密码必须是字母和数字,长度为6到20之间"); } //判断确认密码是否输入,如果输入了再判断格式是否正确 if(repassword==null||"".equals(repassword)){ this.addFieldError("repassword","确认密码必须输入"); }elseif(! Pattern.matches("\\w{6,20}",repassword.trim())){ this.addFieldError("repassword","确认密码必须是字母和数字,长度为6到20之间"); } //判断确认密码和密码是否相同 if(password! =null&&repassword! =null&&! repassword.equals(password)){ this.addFieldError("repassword","确认密码和密码必须相同"); } //判断年龄是否合法 if(age<0||age>130){ this.addFieldError("age","请输入有效的年龄"); } //判断出生日期是否合法 Calendarstart=Calendar.getInstance(); Calendarend=Calendar.getInstance(); start.set(1900,1,1); end.set(2010,1,1); if(birth! =null&&(birth.after(end.getTime())||birth.before(start.getTime()))){ this.addFieldError("birth","请输入有效的出生日期"); } //判断地址是否合法 if(email! =null&&! "".equals(email)&&email! =""&&! Pattern.matches("[a-zA-Z][a-zA-Z0-9._-]*([a-zA-Z0-9-_]+\\.)+(|gov|net|\\.cn|edu\\.cn)",email)){ this.addFieldError("email","请输入正确的地址"); } } publicStringexecute()throwsException{ returnSUCCESS; 图1-1 } } 4.运行结果 图1-2 图1-2 实验二持久化层hibernate 1.实验类型 验证类型 2.实验目的 掌握hibernate访问数据库,以及对数据库进行操作。 3.实验要求 1.实现对product表的插入查询 2.编写product表的操作的junit的测试 4.实验容 1.hibernate.cfg.xml文件配置 该文件是hibernate最重要的一个配置文件。 在这里配置了连接数据库的信息,比如数据库连接字符串,驱动,用户名,用户密码还有数据库方言等等。 还有指定映射文件。 DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN" " --数据库连接URL--> jdbc: mysql: //localhost/javaweb --数据库连接驱动--> --数据库用户名--> --数据库用户密码--> --数据库方言--> --指定映射文件--> 2.实体类和映射文件 1.实体类product package.javaweb.ch17.hibernate; publicclassProduct{ //产品ID privateStringid; //产品名称 privateStringname; //产品价格 privatedoubleprice; //对每一个属性设置getter和setter方法略。 } 2.映射文件Product.hbm.xml xmlversion="1.0"? > DOCTYPEhibernate-mappingPUBLIC "-//Hibernate/HibernateMappingDTD3.0//EN" " --每个class对应一个持久化对象--> --id元素用来定义主键标识,并指定主键生成策略--> --定义其他属性--> 3.创建数据库操作 在CreateDB.java文件是创建数据库的主入口。 importorg.hibernate.tool.hbm2ddl.SchemaExport; publicclassCreateDB{ publicstaticvoidmain(String[]args){ //读取配置文件hibernate.cfg.xml Configurationcfg=newConfiguration().configure(); //创建SchemaExport实例 SchemaExportsExport=newSchemaExport(cfg); //创建数据库表 sExport.create(true,true); } } 4.Product的增删查 这个自定义实现一个操作操作的工具类。 publicclassHibernateUtil{ privatestaticSessionFactoryfactory; static{ //读取配置文件hibernate.cfg.xml Configurationcfg=newConfiguration().configure(); //创建SessionFactory factory=cfg.buildSessionFactory(); } //获得SessionFactory实例 publicstaticSessionFactorygetSessionFactory(){ returnfactory; } //获得Session实例 publicstaticSessiongetSession(){ returnfactory.openSession(); } //关闭指定Session publicstaticvoidcloseSession(Sessionsession){ if(session! =null){ if(session.isOpen()){ session.close(); }}} } 增加product的操作 publicclassInsertProduct{ publicstaticvoidmain(String[]args){ //创建Session Sessionsession=HibernateUtil.getSession(); //开启事务 session.beginTransaction(); //实例化一个Product Productproduct=newProduct(); product.setId("0511234"); product.setName("冰箱"); product.setPrice(1250.00); session.save(product);//保存数据 session.getTransaction().commit();//事务提交 ibernateUtil.closeSession(session); } } 查询所有信息 publicclassQueryAllProduct{ publicstaticvoidmain(String[]args){ Sessionsession=HibernateUtil.getSession(); Productp=null; Stringhql="FROMProductaspro";//使用HQL查询 Queryq=session.createQuery(hql);//通过Query方法查询 Listlist=q.list();//查询结果保存到list中 Iteratoriter=list.iterator();//遍历是否存在该id的产品,如果存在则进行输出 while(iter.hasNext()){ p=(Product)iter.next(); System.out.println("id: "+p.getId()+"name: "+p.getName()+"price: "+p.getPrice()); } //关闭session ibernateUtil.closeSession(session);} } 其他的删除和修改类似。 3.运行结果 完成插入删除后的结果。 图2-1 实验三SSM整合实验 1.实验类型 验证类型 2.实验目的 掌握ssh的整合过程,能够使用ssh创建。 3.实验要求 1.使用hibernate实现数据库表的插入和查询 2.用Struts2实现RESTAPI 3.使用Spring实现service的注入。 4.实验容 1.applicationContext.xml文件配置 xmlversion="1.0"encoding="UTF-8"? > --定义数据源Bean--> mysql: //localhost/javaweb --定义SessionFactory--> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> org.hibernate.dialect.MySQLDialect --定义hibernateTemplate--> --配置DAO组件--> 2.struts.xml文件配置 xmlversion="1.0"encoding="UTF-8"? > ….. --struts为配置文件根元素--> --Action必须放在指定的包名空间中--> --定义处理结果与视图资源之间的关系--> --定义处理结果与视图资源之间的关系--> --定义处理结果与视图资源之间的关系--> --定义处理结果与视图资源之间的关系-->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaEE 实验 报告