实习报告

实习报告
实习报告

洛阳理工学院

毕业实习报告

系别

专业

班级

学号

姓名

指导教师

完成日期____

实习单位:

达内科技有限公司,由美国国际数据集团IDG投资,由来自SUN、IBM、亚信、华为、东软、用友等国际知名IT公司的技术骨干、海外留学生和加拿大专业技术人员创办,直接引进北美IT技术,结合中国IT企业的现状,定制化培养高端IT人才。致力于为中高端IT企业培训并输送基于Unix/Linux平台、Oracle大型关系数据库、IP网络协议、Web和企业级应用的中高级软件人才。

6年运营,达内在多伦多、北京、上海、广州、大连、深圳、南京、武汉、杭州、成都、苏州、太原、西安等13个城市,建设17个分中心,拥有近20000平米培训场地,几千名学员同时在校学习。自2002年进入中国以来,已经为IBM、微软、摩托罗拉、华为、Yahoo、NEC、用友、神州数码、联想、亚信、中国电信、中国银行、花旗银行等中外知名IT公司培养输送数近万名中高级软件人才。

基于成熟、规范的IT人才培训体系和储备过万的专业开发工程师人才库,达内面向国际、国内中高端IT公司提供人才推荐、人才外包、校园招聘、定单培训等多项IT人才服务。

第一周:

3月1日-3月2日

刚进入企业中的前几天,所有的一切都是新鲜的和不适应的。首先要适应企业的工作流程,上下班签到,还要向组长报告今天所完成的任务。第一天要安装企业开发所用的开发工具和开发环境,ecilpse,mysql,jdk,monggodb,vpn,git 等大量的开发工具和环境的安装很是耗时和费力。当然,组长会分配一个比你早来几天刚刚做过这些的来指导你,安装时自己的事,但是如果那里出现了问题就可以去问他,因为他也是刚经历过这悲惨的事情,安装环境真的是一个很糟糕的事情。你所遇到的问题大部分他都遇到过,所以解决起来也很快,当然也有没遇到过的问题,这时候网络就发挥了重点的作用,在网络上大量无用的信息中筛选符合自己问题的解决办法,是一个让人崩溃的实习,实验各种感觉还行的办法,有事直接就可以,有时要时好几次。

每天组长都会给每个实习的人下一些任务,由于是实习,要求没有正式员工严格,但是大部分都会遵守,安装好了开发环境和工具,接下来就是尝试些代码了,企业里为了搞效率,都会使用框架来开发项目,例如流行的S2Sh框架,其实是Struts2、Spring、hibernate三者的结合,还有国内开发的jfinal框架等。首先就是学习Struts2框架:Struts2的快发团队有Struts和Webwork两个团队组成,其核心内容是Webwork。Struts2的环境搭建:需要在web项目的lib目录下复制Struts2的jar包,配置web.xml文件,在src目录下创建struts.xml文件。

在web.xml中配置Struts2,是使用,配置的,以过滤器的形式来配置Struts2,让它拦截所有的请求。配置Struts2的运行环境是出现了很多的问题,主要是jar包的问题,什么版本兼容问题什么的,还有jar冲突等问题非常的多。网络真是解决问题的好帮手,总能找到合适的方法来解决问题。

Struts.xml中主要配置开发时的action和配置拦截器都需要在Struts.xml中进行配置。有时开发是会把Struts.xml分解成多个配置文件,然后在struts.xml中用include手动导入各个配置文件。在配置好Struts2的运行环境后,时间就到了下班时候,报告任务的时候,才发现这几天基本上什么都没做。

3月3日-3月4日

组长下了任务,使用Struts2完成一个实例,前台传递数据,在action中获取并在控制台输出出来。要学会页面的跳转,以及使用何种方式来进行。在前几天配置好Struts2的运行环境后,接下来就是使用了。Struts2定义的action要继承Action接口来规范开发,不过Struts2提供了一个默认的Action,”ActionSupport”,它提供许多默认的方法,开发中一般通过继承ActionSupport类并重写execute()方法,来处理view层的请求。需要在Struts.xml 中配置action。

在Struts2.xml中配置使用的action,name是该action的访问名,class则是action 的在项目中的路径。Result是execute方法返回的String是应该跳转到那个页面。

< acction name=”login” class=”com.LoginAction” methord=”login”>

/index.jsp

/login.jsp

除此之外有时需要将不同请求交给同同一个action的不同方法去处理,这时就需要使用动态方法调用去处理。例如要调用login的login方法处理登录请求,则需要在form中按照action!mothod书写action的逻辑地址。

..........

除了以上方法,还有另外两种方法:在Struts.xml中制定action的method属性和使用通配符处。也可以用同一个action来定义几个不同的逻辑action,使用met后人的属性来指定访问的方法。还有就是使用通配符定义一系列action,并指定了method的属性为{0},意思是匹配Action前面的*的内容。如/loginAction,则mothod=”login”。

要想跳转到index.jsp页面,可以在result的属性中指定action的结果类型,如果是disparchger,表示请求转发,将携带action的处理结果到index.jsp上,如果使用了redirect,就表示重定向,回事请求参数丢失。

做完任务就是提交代码,由于是实例,直接发给组长就行,不用git来提交到代码库里面了,之后就是签退下班。

第二周:

3月7日-3月8日

由于组长审核了代码,说我们的代码太乱,行号什么的都没有,类的命名也不规范,行首的距离也不合格,类的声明什么的都不行。让我们去看Google的代码书写规范,用一整天的时间仔细阅读了规范,有写是要记住的。该规范的内容包括一些切实可行的硬性规定。该规范主要分为6大部分:源文件基本规范、源文件结构、代码格式、命名、编程实践和Javadoc。源文件基本规范说明文件名、文件编码、空格和特殊字符等规范要求。源文件结构说明许可信息、package和import声明、类成员顺序等规范要求。代码格式用于说明源代码中大括号、缩进、换行、空格、括号、枚举、数组、switch语句、注解、注释和修饰符等格式要求。命名说明了标识符(包、类、方法、常量、属性、局部变量和类变量)的命名规范和驼峰大小写定义。编程实践说明@Override、异常、静态成员和终结器的用法。Javadoc说明哪些地方需要Javadoc,以及它的格式要求。看完Google的规范后,修改自己的代码,然后下组之间的成员来相互审查对方的代码格式,找出对方格式的错误,并进行修改。

学习过Google的编码规范,使用Struts2做一个登录注册的案例,登录注册和数据库相关,所以需要在MySQL中建一个数据库,命名为text,添加一个user 表,在user表中添加字段,这样数据库就建好了。然后就是在ecilpse中新建一个web项目,为项目添加Struts2支持,进过上周的学习,这就很简单了,然后就是在项目的lib目录下添加MySQL的数据库驱动,使用c3p0数据库连接池技术,连接数据库。数据库的驱动c3p0-0.9.1.2.jar 、mysql-connector-java-5.1.18-bin.jar 支持数据库连接,在c3p0.xml中配置数据库的基本信息,然后创建一个text类测试连接是否能获取到。当然这之间也会有错误被报出,由于有了Java就基本的web开发流程,数据库的连接还是很简单的。然后就是写一个login.jsp页面,和register.jsp页面,字段名和数据库的user表的字段名相同。在web项目下的src 目录下建一个包,存放action,创建一个LoginAction,在创建一个RegisterAction,来接收前端页面传递的信息,并进行页面的跳转。

3月9日-3月11日

在完成了简单的登录注册案例后,需要更加深入的学习Struts2,如何对Struts2接收到的数据进行转换,是后台处理数据的关键。它拥有内建的类型转换器,基本的String,int,boolean等Java基本类型的装换,不需要开发人员进行装换。有事需要用到有些特殊的类型,内建的转换器不能装换,就需要自定义一个装换器,来实现类型的转换。自定义的转换器需要继承DefaultTypeConverter类或者StrutsTypeConverter类。

在我改造登录注册案例时,出现了类型转换出错,这时需要在Struts.xml文件中配置input对应的逻辑视图。定义的一个拦截器需要继承AbstractInterceptor类或者实现Interceptor接口,重写intercept()方法实现自定义拦截器,并给ActionContext放入自定义的错误信息,通过Struts2的显示错误标签读取自定义的提示信息,其标签是:.

在组长的要求下要对提交的数据进行校验,数据校验分为客户端的校验和服务器端的校验,客户端的校验一般是利用JavaScript的完成的。在Struts2中验证数据,可以重写actionSupport的validata方法,把验证逻辑写在方法里面。我还尝试了另外一种方法来校验数据,通过配置文件来进行数据的校验,以“LoginAction-validation.xml”来命名配置文件,在配置文件中以 ....... 标签中书写各个参数的校验。在配置文件中,校验用户名不能为空,用到了required,这时必填校验,当然密码不为空是相同的。参考Struts2的API,发现Type的取值可以有多中:必填(required)整数(int)日期(date)邮箱(email)网站(url)字符串长度(Stringlength)正则(regex)

在页面上用到了Struts2的标签库,需要在页面上导入标签库才能使用,导入的代码<%@taglib prefix="s" uri="/struts-tags" %>,Struts2的标签库和jstl的标签库大同小异,使用很方便,使用标签库,可以在页面上减少书写Java代码,常用的.表示数据格式转换异常,可能是在登录或者注册时没有按照要求来进行数据的输入,从而导致了数据不能转换。把代码发给同组的同时,相互进行代码审查,并修改不当的地方。

第三周:

3月14日-3月15日

在组长的要求下了解Ajax技术,Ajax就是在浏览器与web服务器之间使用异步数据传输,可以使网页从服务器请求少量的信息,而不是整个页面,减缓服务器的压力。它是基于JavaScript、xml、HTML、css等技术,因此aJax应用程序独立于浏览器和平台。它的核心技术是早已存在的XMLHttpRequest对象,这个对象允许浏览器与服务器进行通信,也是这份对象提供了异步通信。

在看企业级的项目的时候,我发现了他们项目中使用了大量的ajax技术来加载数据,ajax与JavaScript结合使用,使得前台的数据动态变化的效率非常高。

Struts2技术之后,学习hibernate技术。组长让我们使用hibernate来修改登录注册案例,来减少持久层的代码量。我需要为项目添加hibernate支持,手动添加需要导入hibernate的核心jar包,当然,MySQL的驱动jar也少不了,然后就是建立一个hibernate.cfg.xml文件,在该文件中配置MySQL的驱动和URL,用户名密码等。在user的类的统一目录下,建立一个user.hbm.xml文件,配置实体类user 到数据库表user的映射。配置完成后就可以在dao目录下重新建立一个LoginDao 类,在类里面书写登录注册的数据库交互方法AddUser(user)和get(user),使用session的add方法和get方法甚至不用谢任何的代码。这样登录注册案例就更完善了一点。

做完案例,组长要求使用hibernate做复杂的查询,这是只用get方方法是不能完成的。根据API的描述,使用session创造出一个Query对象,定义一个String 类型的hql语句,使用query的方法去查询更加复杂的查询语句。Query的list方法不但可以查询出结果,而且直接封装在list结合中,不用再次封装就可以直接使用,在前台显示数据是可以直接返回list,用或者遍历list 结合从而显示数据,极大的简化了持久层代码的代码量。分页查询,需要设置query 的setFirstResult,表示从第几个开始查询,setMaxResult,表示每页有几个记录项,通过list方法可以查出这从开始位置到最大个数的记录,从而实现分页。在他们真实的项目中,都做一个分页工具类来封装分页函数。

3月16-3月18

这几天的任务是学习spring,主要重点是IOC和AOP。

Spring重点是依赖注入/控制反转。首先我要添加Spring的支持,在lib下添加Spring的主要jar包,配置一个applicationContext.xml文件,在这个文件中配置要穿件的实例LoginAction和registerAction主要是在标签中配置的,在测试类中使用ApplicationContext context = new ClassPathXmlApplicationContext (“ApplicationContext.xml”);来加载Spring的配置文件,使用getBean方法来获取先要注入的实例。

Spring的就是面向切面编程,例如把记录日志当中一个方面,项目中许多操作都需要记录日志,需要在项目的src下添加log4j.properties文件完成日志记录。在applicationComtext.xml中配置一个代理类ProxyFactoryBean的实例,把实现的接口,切入的目标类以及通知配置在里面,在测试类中使用代理id创建目标实例,从而可以执行输出日志。

在此期间,前端组的组长找我们组长帮忙,组长让我去。其实没什么大事,就是做一个静态页面,HTML格式,没技术含量,就是数据比较多。有几百行的数据吧,他嫌麻烦,就找人帮忙做,组长就把这当做一个任务,一天的时间为期,我本以为很简单,只是往上写数据而已,我做起来的时候才发先,更本不是那么回事,这几百行数据,存放在excel表格里,需要先把页面格式的框架写好,在往上复制数据,在固定的位置复制固定的数据,而且还有注意字体的格式是否合适,调整页面的框架等,复制数据的时候看到数据白花花的一片,眼睛都看花了,还要小心不能把数据写错行,页面的其他css样式什么的不需要改,可是就数据这填写我就快要眼瞎了,哎!本来以为前端听轻松的,就这一下,就感觉到没有什么工作是轻松的,看似高大上的工作,也都是重复性的动作罢了。

在第二天中午我发个前端组长后,他看过后让我有修改了几个地方,页面的的样式我改了几次都没改好,他就让别人去改了。之后告诉我是怎么改的,让我以后遇到同样的问题可以自己解决。

实习总结:毕业实习应该算是大学了最后的一次实习了。通过这次实习主要是为了在毕业前通过毕业实习,使学生走向社会,了解社会对本专业人才的需求,接触与本专业相关的实际工作,锻炼学生综合运用专业知识和专业技能独立分析、解决实际问题的实践能力,培养学生爱岗守纪的工作作风,锻炼和提高学生的交流沟通能力,为学生毕业后走上工作岗位奠定基础。在实习的同时,要求学生收集毕业设计资料,为进行毕业设计(论文)打下基础。

实习的主要目的是了解企业中的工作流程,以及工作中需要哪些专业技能,结合学校学习的专业知识快速掌握公司所需要的其他技能,如框架,数据库等,也能够享受的企业的专业岗前培训,规范代码编写的格式。以Google代码规范来说,这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则,我们才认为它符合Google的Java编程风格。为了加强团队合作,必须要是代码的可读性要好,代码规范就解决了这样的一个问题,是代码在各个同事之间可读,就像我们的组长说的“让代码看起来就是一个人写的,任何人都可以轻易读懂你写的代码”。Google的代码规范基本上从各个方面做了要求,该规范主要分为6大部分:源文件基本规范、源文件结构、代码格式、命名、编程实践和Javadoc。源文件基本规范说明文件名、文件编码、空格和特殊字符等规范要求。源文件结构说明许可信息、package和import声明、类成员顺序等规范要求。代码格式用于说明源代码中大括号、缩进、换行、空格、括号、枚举、数组、switch语句、注解、注释和修饰符等格式要求。命名说明了标识符(包、类、方法、常量、属性、局部变量和类变量)的命名规范和驼峰大小写定义。编程实践说明@Override、异常、静态成员和终结器的用法。Javadoc说明哪些地方需要Javadoc,以及它的格式要求。

通过实习,我也了解到公司的一些规章制度,和日常的工作流程。上班打卡、下班签退、请假要提前等。在规定的时间做该做的事,这就是一个公司的流程。由于许多问题是刚入职的新人不能解决的,所有请教老人是必不可少的,新同事之间的交流和沟通很重要,有时为了完成一个项目功能,需要好几个人讨论交流,交流各自的想法和解决问题的办法。例如在解决一个在页面分页排序问题时,有

人想到了再客户端页面上实现,有的则在数据库查询中实现。经过谈论选择了再数据查询时对查出的数据进行排序。处了工作上的事情,在闲暇的时候与同事交流,增进同事之间的和谐性,可以营造出造了良好的人际氛围,是自己在工作中更加的顺利,有问题也能更快的解决问题。

在工作中,也会遇到格式各样的问题,有时一个问题一天甚至更久都解决不了,这样工作进度就会被放慢。遇到问题除了去问又能力的人之外,也应该自己试着去解决问题,毕竟网络这么发达,基本上遇到的问题都能在网络上找到解决问题的方式,只是有些方式在现有的知识和经验下,不能够理解和使用这种解决办法。Web项目容易出问题的就是控制台爆出的各种异常,尝试解决异常其实就是在积累工作经验。有时各种各样的异常会把人搞的烦躁和不安,解决了一个发现还有一个,大部分异常是解决主要的,其他就没了,是一个问题导致的。也有是不同的问题导致的。例如在配置Struts2的运行环境的时候,把从Struts2官网上下载的Struts2的jar包全导入到项目中,启动tomcat时,报出了Unable to loadconfiguration.-action-file:/F:/apache-tomcat-7.0.27/webapps/CRM/WE B-INF/classes/struts-consumer.xml:9:44。进过在互联网上查找,发现是版本声明不同,而且只运行一个Struts2,并不需要导入所有的包,只需要把几个核心的jar包导入即可。在配置Struts.xml时,也是不断的有错误出现。不断的异常被控制台报出,情绪相当的糟糕,大学学了四年,却连一个新接触的框架的基础配置都搞不定,甚至以为我不适合做这种需要耐心和细心的变成工作。然而出现错误是很正常的现象。如果一个人编写代码从头到尾一个错误也没有,那网络上也不会有那么多的解决问题方案了,所谓的高手、大牛,都是在一次次错误中积累经验,积累解决办法才慢慢的成为了行业的大牛的,没成为高手只能是名你的错误经验不够,还是解决错误太少了。编程是一个枯燥无味的过程,但是要是不心细,很有可能你会发现你的各种配置都没问题,但是该有的效果却没有实现,这是最让人崩溃的地方。例如,在使用拦截器的时候,在Struts.xml中配置好了在action中也使用了,但是就是没有效果,检查了一遍又一遍,没错啊!呵呵,如果仔细去看代码,你可能就会发现,你的某个主要方法名拼写错了.....。这种

错误有时会耽误你集合小时,因为个人习惯,拼写错误是最不容易检查出来的。

这次实习,我不仅仅是完成学校要求的实习,而且最为主要的是获得了一些不错的工作经历,而且学习了再课堂上无法学到的一些现在流行的开发框架,以及数据库的远程连接,代码的规范编程,还有就是代码的管理。Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。通过它可以从服务器上克隆完整的项目,做完的的功能也可以添加的服务器的代码库中,最主要的是如果你不小心造成了大的破坏,还可以把项目回退到破坏前的状态,这也是一个工作技能。实习锻炼了我综合运用专业知识和专业技能独立分析、解决实际问题的实践能力,培养我们爱岗守纪的良好工作作风,锻炼和提高我们的交流沟通能力,为我们毕业后走上工作岗位奠定坚实的基础。

洛阳理工学院计算机与信息工程学院毕业生实习单位鉴定表

相关文档
最新文档