Java项目实训大纲.docx
- 文档编号:8015677
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:35
- 大小:197.58KB
Java项目实训大纲.docx
《Java项目实训大纲.docx》由会员分享,可在线阅读,更多相关《Java项目实训大纲.docx(35页珍藏版)》请在冰豆网上搜索。
Java项目实训大纲
项目开发实训大纲
一、性质和目的
本实训是中创班Java方向的实践性环节。
通过本次实训,可以系统掌握Java语言程序设计、数据库原理级应用、Struts2企业级应用、Spring和Hibernate开源框架的使用,并锻炼学生的实践动手能力。
整个实训要求及环境,全面模拟企业实际开发环境以及项目管理规范和流程,使学生在实训中掌握企业开发的实际运作流程,提高学生进入企业的适应能力。
二、实训基本要求
(1)掌握Java编程基本知识的实际运用;
(2)掌握MySQL数据库的设计与操作,备份与恢复;
(3)掌握Struts2的数据类型转换、数据校验、国际化、OGNL表达式、拦截器、文件上传与下载以及Struts2集成Spring等;
(4)掌握SpringIOC的配置与运用、HibernateORM的配置与运用;
将上述知识运用到具体项目中,以学生熟悉的“学生选课系统”为实训项目,由学生自己理解需求,业务逻辑,完成系统的需求分析、概要设计、详细设计、编码、测试等工作,并提交需求分析报告、系统可运行代码以及数据库设计备份文件(.sql文件)并由此评定成绩。
三、实训内容与学时分配(90学时)
1、Java程序设计、数据库原理与应用基本知识由学生自己复习;
2、Struts2基本知识
2.1Struts2入门(HelloSomeone)
(1)新建一个WebProject项目Struts2Demo,J2EE规范采用JavaEE5.0其目录结构如下:
(2)修改web.xml文件
将原来的web.xml文件内容清空,将下载到的Struts-2.1.6-all.zip解压,在app目录下找到struts2-blank-2.1.6.war,解压该文件,将其WEB-INF目录下的web.xml文件内容复制到Strust2Demo的web.xml中,内容如下:
xmlversion="1.0"encoding="UTF-8"?
>
xsi="http: //www.w3.org/2001/XMLSchema-instance"xsi: schemaLocation=" (3)导入struts2支持所需要的包 将struts2-blank-2.1.6.war中的WEB-INF/lib目录下的所有Jar文件,复制到Struts2Demo相应文件夹下。 如上图所示,其计9个文件。 (4)新建struts.xml文件 在Struts2Demo的src文件夹下,新建一个struts.xml文件,并将struts2-blank-2.1.6.war中的WEB-INF/classes目录下的struts.xml文件的内容全部复制到新建的struts.xml文件中,并修改,修改后内容如下: xmlversion="1.0"encoding="UTF-8"? > DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" "http: //struts.apache.org/dtds/struts-2.0.dtd"> (5)将Struts2Demo布置到Tomcat服务器上,启动服务器,应能正常启动。 (6)在Struts2Demo的index.jsp中的
注意:
此
(7)编写HelloAction.java文件
在项目的src目录下,新建一个com.nanshan.action包,在该包在新建一个HelloAction类文件,继承ActionSupport类,并写入以下代码:
packagecom.nanshan.actioni;
importcom.opensymphony.xwork2.ActionSupport;
publicclassHelloActionextendsActionSupport{
privateStringuserName;
@Override
publicStringexecute()throwsException{
userName="Hello"+userName;
returnSUCCESS;
}
//getter,setter……
}
(8)编写输出页面
在项目的Web目录下新建一个welcome.jsp页面,写入以下内容:
propertyvalue="userName"/> 注意: 此页面的 propertyvalue="userName"/>value值与HelloAction.java中的属性名称一致。 (9)修改struts.xml文件 修改后的内容如下: 注意: action的name属性名称必须与请求页面index.jsp中的 (10)运行程序 将项目布置到Tomcat并启动服务器,在浏览器地址内输入: http: //localhost: 8080/Struts2Demo/index.jsp,并显示如下页面。 输入姓名,单击提交按钮,会得到如下结果。 注意: 该项目不能支持中文。 2.2数据类型转换 (1)写一个JSP页面 textfieldname="point"key="Point"> textfield> textfieldname="userName"key="UserName"> textfield> textfieldname="birthDay"key="BirthDay"> textfield> textfieldname="age"key="Age"> textfield> submitkey="Submit"> submit> point为Point类类型,age为整数类型,userName为字符串类型,birthDay为Java日期类型。 (2)在src目录下新建一个包: com.nanshan.pojo,在该包在新建一个类Point.java,作为自定义类型,内容如下: packagecom.nanshan.pojo; publicclassPoint{ privateintx,y; //getter,setter…… } (3)编写Action代码 packagecom.nanshan.action; importjava.util.Date; importcom.nanshan.pojo.Point; importcom.opensymphony.xwork2.ActionSupport; publicclassConvertActionextendsActionSupport{ privatePointpoint; privateStringuserName; privateintage; privateDatebirthDay; @Override publicStringexecute()throwsException{ returnSUCCESS; } //getters,setters…… } (4)写一个转换类 在src目录下新建一个包: com.nanshan.logic,在其中新建一个类Converter.java,此类要继承StrutsTypeConverter类,重写它的convertFromString()和convertToString()抽象方法,内容如下: packagecom.nanshan.logic; importjava.util.Map; importorg.apache.struts2.util.StrutsTypeConverter; importcom.nanshan.pojo.Point; publicclassConverterextendsStrutsTypeConverter{ @Override publicObjectconvertFromString(Mapmap,String[]src,ClasstoType){ Pointpoint=newPoint(); String[]srcStr=src[0].split(","); point.setX(Integer.valueOf(srcStr[0])); point.setY(Integer.valueOf(srcStr[1])); returnpoint; } @Override publicStringconvertToString(Mapmap,Objectsrc){ Pointpoint=(Point)src; StringBuildersb=newStringBuilder(); sb.append("[("+point.getX()+","+point.getY()+")]"); returnsb.toString(); } } (5)指定转换文件 ①局部类型转换 在ConvertAction所在包下,新建一个ConverAction-conversion.properties(内容: 类名-conversion.properties)文件,内容如下: point=com.nanshan.logic.Converter 注意: properties文件的命名规则: Action类名-conversion.properties,位置与Action在同一个包下。 ②全局类型转换 在src目录下新建一个xwork-conversion.properties文件,内容如下: com.nanshan.pojo.Point=com.nanshan.logic.Converter 注意: 此properties文件命名固定,不能更改,位置也不能更改。 注意: 局部类型和全局类型转换属性文件只有一个即可,若两个都存在,则先调用局部类型转换文件,再调用全局类型转换文件。 (6)配置struts.xml文件 增加一个 (7)在项目的Web目录下,新建一个convertResult.jsp,内容如下: propertyvalue="point"/> propertyvalue="userName"/> propertyvalue="age"/> propertyvalue="birthDay"/> (8)运行程序 重新布置项目,并重启服务器。 输入页面如下: 结果输出如下: 注意: 以下几处属性应该匹配,即必须一致,否则程序不能正确(成功)运行。 ①JSP页面中的属性必须与所请求的Action中的属性名一致; ② (9)批量数据类型转换(转换成List) JSP页面代码如下: formaction="convert.action"> textfieldname="point"key="Point"> textfield> textfieldname="point"key="Point1"> textfield> textfieldname="userName"key="UserName"> textfield> textfieldname="birthDay"key="BirthDay"> textfield> textfieldname="age"key="Age"> textfield> submitvalue="Submit"> submit> form> Converter.java转换类改写如下: publicclassConverterextendsStrutsTypeConverter{ @Override publicObjectconvertFromString(Mapmap,String[]src,ClasstoType) { List Pointp=null; for(Stringstr: src){ p=newPoint(); String[]tStr=str.split(","); p.setX(Integer.valueOf(tStr[0])); p.setY(Integer.valueOf(tStr[1])); point.add(p); } returnpoint; } @Override publicStringconvertToString(Mapmap,Objectsrc){ List StringBuildersb=newStringBuilder(); sb.append("["); for(Pointp: point){ sb.append("("+p.getX()+","+p.getY()+")"); } sb.append("]"); returnsb.toString(); } } ConvertAction.java只把point属性由Point类型更改为List 转换属性配置文件,在此情况下只能用局部类型转换,即ConvertAction-conversion.properties文件,不作任何修改,即可。 运行程序: 结果如下: 2.3数据校验 2.3.1编写validate()方法 在ConvertAction.java中重载父类的validate()方法,内容如下: publicvoidvalidate(){ if(null==userName||"".equals(userName)){ this.addFieldError("userName","用户名必须填写"); } } 注意: addFieldError()方法中的第1个参数为与请求该Action的JSp中对应的标签名字,即标签的name属性值。 如userName,有 textfieldname="userName"key="UserName"> textfield>与之对应。 重新布置,并重启服务器,运行结果如下: 结果为: 注意: 由于要校验的ConvertAction中含有自定义类型转换,所以即使在Point,Point1两处文本框输入是正确的前提下,仍提示有错误出现,这是因为Struts2在进行类型转换时,遇到List 这说明Struts2是把所有数据校验都完成(即把相关Action中的属性都验证一遍)以后,才会调用我们自定义的转换函数。 若在这种情况下(即要验证的Action中含有自定义转换类型,比如我们的point属性),必须在自定义类型转换函数中加入判断语句: publicObjectconvertFromString(Mapmap,String[]src,ClasstoType) { if(src==null){ return""; } //具体转换部分 returnpoint; } @Override publicStringconvertToString(Mapmap,Objectsrc){ if(null==src){ returnnull; } //具体转换部分 returnsb.toString(); } 否则提示以下错误,这是由于struts2.1.6的bug所致! typeExceptionreport message descriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest. exception org.apache.jasper.JasperException: Class: ponents.template.TemplateEngineManager File: TemplateEngineManager.java Method: getTemplateEngine Line: 102-org/apache/struts2/components/template/TemplateEngineManager.java: 102: -1 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java: 541) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java: 435) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java: 320) 2.3.2编写xml验证文件 验证文件的命名规则: 类名-validation.xml,位置必须与要验证的Action在同一个包下。 ConvertAction-validation.xml验证文件内容如下: xmlversion="1.0"encoding="UTF-8"? > DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator1.0.2//EN""
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 项目 大纲
![提示](https://static.bdocx.com/images/bang_tan.gif)