一、实习目的与任务
实习目的:
1、加强和巩固理论知识,发现问题并运用所学知识分析问题和解决问题的能力。
2.锻炼自己的实习工作能力,适应社会能力和自我管理的能力。
3.了解实习单位的计算机技术的应用情况、需求情况和发展方向及前景。
4.亲身参与项目的实际完成工作,了解计算机专业软件开发的具体流程。
5.通过实习来认识了解自己,发现不足,提前做好自己的职业规划。
实习任务:
使用Java语言结合使用数据库(MySQL)、Dreamweaver、Tomcat完成以下项目:京东商城网上购物系统。
二、实习地点
软帝信息科技有限公司.
软帝(Ruandy)信息科技有限公司WuHan Ruandy Information Science and Technology Co,Ltd.简称软帝(Ruandy),是一个具有鲜明技术特色的专业软件开发及咨询服务的软件企业,是中国软件外包行业的积极倡导者和参与者,并立志为全球客户提供全面的软件开发、测试、维护和认证等专业服务。软帝(Ruandy)主要服务领域为金融、电信、电力、钢铁、电子商务等,我们的质量保证系统能有效为客户提供从项目咨询设计到实施维护的全面服务。软帝(Ruandy)拥有一批专业化的团队和良好的人才梯队,海外归国人才的加盟,使我们迅速拥有进入国际市场的实力。面对软件行业人力资源严重匮乏的现状,软帝(Ruandy)基于雄厚的技术实力,研发了一套适用于企业内部员工的培训体系,使经过培训的员工能快速适应项目变换的需要,时刻掌握行业最新技术动向。软帝(Ruandy)非常注重具有自主知识产权产品的设计和开发工作,在CRM, DRP, ERP, 无线通讯, 嵌入式系统等技术领域都推出了自己的产品,并有着稳定的客户群。软帝(Ruandy)为包括IBM、 Microsoft、HP、NOKIA、MOTOROLA、NEC、Oracle、Cisco、SUN、NEC、SONY、Panasonic、华为、方正、联想、宝信等国内外客户提供了专业化服务。软帝的优质技术服务赢得了客户的信赖。
三、实习内容和要求
在实习期间使用Java语言结合使用数据库(MySQL)、Dreamweaver、Tomcat完成以下项目:京东商城网上购物系统。
在开发过程中以jsp网页为核心。数据库是用的sql server 2005数据库, 用jdbc连接sql server数据库,使用javabean对象存储数据库读取出来的数据,来完成项目中的业务逻辑。在显示层用jsp页面完成数据展示。jsp网页中用到了java代码块与java表达式。对数据库进行循环迭代。数据访问由Dao层来实现,对数据库的操作。通jsp网页调用dao层中的自己定义方法实现对象数据库的增删改查等操作,在jsp网页以javascript技术对数据进行验证,以保证数据的安全和完整性。
这次实习主要是学习Java Web开发方面的相关知识,主要的有JSP、Servlet、HTML,另外还有JDBC,Mysql数据库等等。
Java语言简介
Java语言Java是由Sun微系统公司所发展出来的程序语言,它是一种面向地向的语言,Java也号称是能跨平台使用的语言,这主要是因为Java本身被编译之后,并不是直接产生可执行的代码,而是产生一种中间码叫作 ByteCode,这种代码必需在透过 Java 的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种Java的直译器,就能解读ByteCode也就能执行Java编译过的程序,故与Java程序是在那种平台上被编译的,就完全没有干系了。
Java写出来的程序可分为两类,分别是Java Applet与一般的Application,而Application这一类就与一般的程序如C++的作用是比较类似的,是一个独立可执行的应用程序,像HotJava是一个浏览器,且就是使用Java程序所发展出来的。最常见的Java程序包括应用程序和applets。应用程序是单独的程序,诸如HotJava浏览器软件就是用Java语言编写的。
Applets类似于应用程序,但是它们不能单独运行, Applets可以在支持Java的浏览器中运行。Applet主要是内置于HTML网页中,在浏览时发挥作用。
Java的目标是为了满足在一个充满各式各样不同种机器,不同操作系统平台的网络环境中开发软件。利用Java程序语言,可以进行网页开发,其中包括静态语言开发与动态网页开发,可以在网页中加入各式各样的动态效果,可以放上一段动画,加入声音,也可以建立交互式网页等。
Mysql数据库
Mysql是一种小型的数据库,它与Java的联系十分密切,MySQL是一个小型关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了Mysql作为网站数据库,因此,网页编写大多数都是用Mysql。
Mysql是一个关联数据库,它将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。Mysql的Sql指得是“结构化查询语言”,Sql是用于访问数据库的最常用标准化语言。同时,Mysql软件也是一种“开放源码”的软件,意味着任何人都能使用和改变软件。任何人都能从Internet下载Mysql软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。Mysql软件采用了GPL(GNU通用公共许可证),定义了在不同情况下可以用软件作的事和不可作的事。数据库服务器具有快速、可靠和易于使用。
JDBC数据库连接
Java中的JDBC,JDBC是Java Data Base Connectivity的缩写,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
连接数据库的方法有一个模板,代码如下:
public class DBManager {
private static final String URL="jdbc:mysql://localhost:3306/test";
private static final String USER="root";
private static final String PASSWORD="123";
private static Connection conn=null;
public static Connection getConn(){
try {
if(conn==null){
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(URL,USER,PASSWORD);
} } catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace() ;}
return conn;
}
}
以后运用数据库连接基本上都是用这个模板,方便又有效,而且在其他地方连接数据库时都可以直接对其进行调用。通过JDBC我们可以连接到所用的数据库mysql,可以从数据库中提取数据,也可以将所写数据存入数据库,用JDBC连接数据库都是一个模式,基本上都是按照一个套路在写,运用JDBC以及MyEclipse工具。
Jsp
JSP是Java Server Pages的缩写,它是Java Web开发的基础,需要的页面都是用JSP来建立的,它是一种动态的网页技术,其中,可以显示动态画面以及动画效果,在其中也可以编写Java代码,也可以加入html编写语言,通过form表单中的action属性可以实现页面间的跳转,点击不同的按钮,可以跳转到相应的页面,。
JSP页面通常被编译成为Java Servlets,这是一个标准的Java扩展。页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个Java Servlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应。
我们所做的宿舍信息管理系统也需要用到Mysql数据库和JDBC技术,所做的系统同样可以添加、修改、查询和删除学生信息,不过这些功能是运用不同的页面显示,点击不同的按钮即可跳转到所需的页面,而后获得想要的信息。每个功能都建立一个JSP页面,其中主页面是Index.jsp,在这个页面中有两个链接,分别转到增加信息和浏览信息页面,浏览信息页面中还包括了对信息的修改和删除。
Servlet
Servlet也是Java Web开发中必不可少的部分,Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。Servlet生成响应内容并将其传给Server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法,用的比较普遍的是doPost()方法。
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
Servlet生成响应内容并将其传给Server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法,用的比较普遍的是doPost()方法。举例如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1、获取id
String sid=request.getParameter("id");
int id=Integer.parseInt(sid);
//2、根据id查询到对应的学生信息
StuDAO sdao=new StuDAO();
StuDTO stu=sdao.queryStu(id);
//3、将stu传递到studentModify.jsp页面显示
request.setAttribute("stu",stu);
request.getRequestDispatcher("studentModify.jsp").forward(request,response);
Servlet与JSP差不多,最主要的差别是JSP是实现普通静态HTML和动态HTML混合编码的技术,Servlet则是web页面和服务器之间的连接物,而这基本上没什么区别。
HTML语言
HTML语言也是必不可少的,经常是嵌入在JSP中运用,它是一种静态页面开发技术,其中用的最多的是运用HTML语言建立form表单,其中有行(tr)和列(td),另外它的标签<div>也用的比较多,主要是利用它可以在页面上任意移动,而且它的大小不会改变,还可以隐藏、变透明等等,再有就是其中的JavaScript用的也比较多,主要是写一些function方法,用来限制一些信息;
Html是超文本标记语言,它是一种非严格的标记语言,它是web开发的基础,也是制作网页的基础,纯html的页面是静态的。 Html它由head和body两部分组成,所写的内容一般都是放在body中,其中可以添加Form表单域,其中属性 Action表示提交的动作,也就是提交到那个页面,可表示为Action=“http://www.baidu.com”;Method属性表示提交的方法,一般为设为post;在Form表单域中添加table表,table中的属性只有很多,常用的有width、height、align、colspan等等,当然,有表就会有行和列,其中行用tr表示,列用td表示,行与列的属性值与table差不多。
(1)制作html网页
因为在完成“京东商城网上购物系统”这一项目时需要使用大量的网页,我们需要对网页进行设计使网页看起来比较美观,所以我们首先学习了如何制作和设计网页,如下图所示为我们制作的一个简单的静态网页,里面包含了网页上经常要使用的一些元素,如文字,文本框,下拉框,选项扭,图片等。主要用到CSS即级联样式表,并把它放在div中,使页面中的文字,图片等对象排版更精确,更美观。
图一 设计的网页图
实现页面元素添加的核心代码如下所示:
<body>
<form action="reg.do" method="post" enctype="application/x-www-form-urlencoded">
<font color="red">白菜</font>
</br>文本框:<input text="text" />密码框:<input text="password" />
</br>单选:<input type="radio" name="sex" checked="checked" />男<input type="radio" name="sex" />女 </br>下拉框:<select> <option>中国 </option>
<option>美国</option><option>英国</option>
</select></br>
多选框:<input type="checkbox"/>美术<input type="checkbox" checked="checked"/>音乐<a href="http://www.google.com">谷歌</a></br><textarea rows="10" cols="50"></textarea><br><input type="submit" value="提交">
</br><img alt="" src="image/img1.jpg" width="400px"
height="300px">
</form></body>
下图为我们在网页上添加的图片,共有四张,但是如果全部放在页面上将会占据很大的空间,于是我们在图片上设置了序号,在后台程序代码中将这四张图片设置为循环播放,这样能够使网页看上去比较美观,又有动态的效果。
图二 图片循环播放图
实现图片循环播放的核心代码如下所示:
var onShow = 1;
window.setInterval(function() {
var noneObj = document.getElementById("img" + onShow);
var grayObj = document.getElementById("div" + onShow);
noneObj.style.display = "none";
grayObj.style.backgroundColor="gray";
onShow++;
if (onShow > 4)
onShow = 1;
var blockObj = document.getElementById("img" + onShow);
var greenObj = document.getElementById("div" + onShow);
greenObj.style.backgroundColor="green";
blockObj.style.display = "block";
}, 3000);
function gogogo(num){
var noneObj = document.getElementById("img" + onShow);
var grayObj = document.getElementById("div" + onShow);
noneObj.style.display = "none";
grayObj.style.backgroundColor="gray";
var blockObj = document.getElementById("img" + num);
var greenObj = document.getElementById("div" + num);
greenObj.style.backgroundColor="green";
blockObj.style.display = "block";
onShow = num;
}
(2)注册和登陆
登陆界面如下:
处理登陆界面的servlet是LoginServlet,主要代码如下:
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取请求参数
String loginName=request.getParameter("loginname");
String password=request.getParameter("loginpwd");
//System.out.println(username+","+password);
System.out.println(loginName);
//调用服务层代码
SystemManager m = new SystemManagerImpl();
try {
User user=m.login(loginName, password);
//保存用户信息
//默认参数true 没有则生成session 参数false 不生成session
HttpSession session = request.getSession();
session.setAttribute("user",user);
//跳转
response.sendRedirect("index.jsp");
} catch (UserNotFoundException e) {
// 用户名或密码不正确
String msg = e.getMessage();
String s = "";
if("300".equals(msg)){
s = "密码不正确";
}elseif("404".equals(msg)){
s = "用户名不存在";
}
request.setAttribute("userName", loginName);
request.setAttribute("password", password);
request.setAttribute("msg",s);
request.getRequestDispatcher("login.jsp").forward(request, response);
}catch(DataBaseException e){
//数据库操作失败
}catch(Exception e){
}
在LoginServlet的doPost方法中处理用户登陆的逻辑:首先通过request对象获取客户端发送过来的用户名和密码,然后根据用户名和密码查询数据库中的t_user表,如果匹配成功,则保存用户对象,并跳转到京东商城主界面;否则提示用户名或密码错误并返回登陆界面。
(3)注册界面如下:
处理用户注册的servlet是RegisServlet,主要代码如下:
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取验证码信息
String authCode = request.getParameter("authCode");
String checkCode = (String) request.getSession().getAttribute("checkCode");
System.out.println("RegisterServletdopost()");
//获取前台数据
String username=request.getParameter("username");
String password=request.getParameter("pwd");
String email=request.getParameter("ccc");
//封装user对象
User user=new User();
user.setUsername(username);
user.setPassword(password);
user.setEmail(email);
if(checkCode.equalsIgnoreCase(authCode))
{
//调用Dao层代码,持久化数据
UserDao userDao=new UserDaoImpl();
try{
userDao.addUser(user);
//用户注册成功
request.getRequestDispatcher("login.jsp").forward(request, response);
}
catch(DataBaseException e)
{
//用户注册失败
response.sendRedirect("error.jsp");
}
}else{
//验证码错误
request.setAttribute("user", user);
request.getSession().setAttribute("code","验证码错误");
request.getRequestDispatcher("register.jsp").forward(request, response);
}
}
在RegistServlet类的doPost方法中处理非用户注册新账号,首先通过request对象获取用户名,密码,邮箱等注册的基本信息,然后根据这些信息实例一个用户对象,并通过UserDao对象的addUser方法把这个用户实例添加到数据库中的t_user表。然后跳转到登陆界面。
(4)验证码
这个购物网站还实现了验证码功能,如下图:
实现验证码功能的是ImageServlet类,主要是这个类中的doPost方法,主要代码如下:
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.print("imageserveletdopost()\n");
int width = 80;// 验证码图片宽度
int height = 30;// 验证码图片高度
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_3BYTE_BGR);
Graphics g = image.getGraphics();
Random random = new Random();// 创建一个随机类
g.setColor(getRandColor(200, 250));// 背景颜色要偏淡
g.fillRect(0, 0, width, height);// 画背景
g.setColor(getRandColor(0, 255));// 边框颜色
g.drawRect(0, 0, width - 1, height - 1);// 画边框
g.setColor(getRandColor(160, 200));// 随机产生5条干扰线,使图象中的认证码不易被其它程序探测到
for (int i = 0; i < 8; i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int x1 = random.nextInt(width);
int y1 = random.nextInt(height);
g.drawLine(x, y, x1, y1);
}
g.setColor(getRandColor(160, 200));// 随机产生100点,使图象中的认证码不易被其它程序探测到
for (int i = 0; i < 100; i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
g.drawLine(x, y, x, y);
}
Font font = new Font("Times New Roman", Font.ITALIC, 25); // 创建字体,字体的大小应该根据图片的高度来定。
g.setFont(font);// 设置字体
int length = 4; // 设置默认生成4个验证码
String s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; // 设置备选验证码:包括"a-z"和数字"0-9"
String sRand = "";
// 用随机产生的颜色将验证码绘制到图像中。
// 生成随机颜色(因为是做前景,所以偏深)
// 调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.setColor(new Color(20 + random.nextInt(110),
20 + random.nextInt(110), 20 + random.nextInt(110)));
for (int i = 0; i < length; i++) {
String ch = String.valueOf(s.charAt(random.nextInt(s.length())));
sRand += ch;
//调整图像大小
g.drawString(ch, 12 * i + 12, (random.nextInt(5) - 2) * i + 20);
}
// 将生成的字符串存储在session中
HttpSession session = request.getSession();
session.setAttribute("checkCode", sRand);
g.dispose();// 图像生效
// 禁止图像缓存
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpeg");
// 创建二进制的输出流
ServletOutputStream sos = response.getOutputStream();
// 将图像输出到Servlet输出流中。
ImageIO.write(image, "jpeg", sos);
sos.flush();
sos.close();
}
public Color getRandColor(int lower, int upper) {
Random random = new Random();
if (upper > 255)
upper = 255;
if (upper < 1)
upper = 1;
if (lower < 1)
lower = 1;
if (lower > 255)
lower = 255;
int r = lower + random.nextInt(upper - lower);
int g = lower + random.nextInt(upper - lower);
int b = lower + random.nextInt(upper - lower);
returnnew Color(r, g, b);
}
在这个类的doPost方法中,首先设置验证码图片的高度,宽度,背景,边框,干扰线,随机点,字体等基本属性。然后定义一个字符串String s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",包含所有小写,大写字母和十个数字,用随机实例产生的随机数做下标,从s串中取出4个字符Graphics对象的drawString方法把这个随机产生的字符串画到验证码图片上。
四、实习总结及分析
实习总结:
本次毕业实习主要是接着完成去年生产实习还没有做完的项目“京东商城网上购物系统”,去年我们只完成了很少的一部分功能,这一次,我们将去年完成的那些功能进行完善,并添加一些新的功能。由于时间有限,我们这一次依然没有将“京东商城网上购物系统”这一项目的所有功能都做完,但是我们尽力将我们能够在实习期间完成的功能做好了。
我们将以前完成的用户注册、用户登录、商品展示这些功能进行了完善,使这几个部分的功能更全面,使用起来更方便。然后我们完成了购物车这一部分的一些功能,能够将商品多次添加到自己的购物车中去,并能够在购物车中查看所有添加进去的商品的详细信息,最后能够点击跳转到结算页面,由于时间有限,接下来的功能还没来得及实现。
虽然我们依然没有将“京东商城网上购物系统”这一项目完完全全的做完,但是我们在重新做以前完成的功能时比较熟悉了,对于以前没有弄明白的许多地方也弄明白了,对于整个项目的整体构架,实现途径也更加清楚了。在完成新的功能时又学到了许多知识。通过这次实习我们的动手能力得到了进一步的提高,这对我们以后的学习是非常有意义的。所以实习对于我们来说是非常有意义的,是我们锻炼自己的好机会。
实习分析:
在本次实习的过程中我们依然要用到jsp,html,tomcat,MySQL,Eclipse等工具,以前对与这些工具只是初次接触,还不是很熟悉,通过这一次的实习,我们对这些工具更加熟悉,使用起来也比较熟练。
对于html,我们以前是在设计部分手动添加页面上的元素,这一次,我们学习了在代码部分进行编写代码,编写代码和手动添加得到的结果是一样的,通过编写代码,我们对网页中界面的设计有了进一步的了解,对于页面后台运行的原理也有了进一步的了解。
对于Eclipse编程软件,我在去年的生产实习中也是初次使用,对于里面的一些功能还不是很了解。这一次继续使用它来编写代码,比以前就熟练多了,对于里面的一些比较基础的操作也比较熟悉了。
“熟能生巧”,不管是什么,用得多了,自然就会了,所以我们在平时的学习中对于所学的知识一定要反复的训练,只有这样我们才能够将这个知识点掌握的十分牢固,而且在多次重复的过程中,我们还能够学到许多新的知识。
我们在实习期间所学到的知识对我们以后的学习是非常有帮助的,实习对于我们来说是一段十分宝贵的经历,我们应当珍惜每一次实习的机会。在以后的学习中我们应当像在实习期间一样,多动手,在实践中获取新的知识,锻炼自己的动手能力。
五、实习体会
本次毕业实习我们主要是继续完成去年生产实习没有做完的项目“京东商城网上购物系统”。去年实习时,我们只完成了一部分功能,这次实习我们将这些功能进行进一步的完善,并且继续完成一些还没实现的功能。
在去年的实习过程中由于时间有限,对于JSP、Html,Tomcat服务器以及MySQL和Myeclipse这些工具的使用还不是很熟练,对其中的原理也不是很明白。在这一次的实习中我们仍然要运用这些工具,再一次的使用使我们进一步的掌握这些工具的使用方法,也对其中的原理有了进一步的理解。在去年实习的基础上我们学到了更多的知识,也明白了许多道理。在计算机这一行业,我们需要多动手,自己亲自去操作,只有这样我们才能真正的掌握能够让我们今后可以在这个社会上立足的技能。
实习对于我们来说,是锻炼我们动手能力的一个好机会,在这个过程中,如果我们遇到自己实在是解决不了的问题时,我们可以和同学讨论,可以向老师请教。在相互讨论的过程中我们能够相互学到很多知识,能够学到他人的长处,也能够发现自己的不足之处。在这个过程中,我们不仅学到了许多专业知识,我们的动手能力也得到了提高,能够学会如何将从书本上学到的知识很好的运用到实际操作中去,还能够学到许多在书本上学不到的知识,而且在这个过程中也能够增进同学间的友谊。
在本次毕业实习的过程中,我学到了许多知识,也有许多的感触。在大四我们都需要出去找工作,在参加过的几次面试的过程中,面试官都会问一些专业方面的问题,我发现有很多问题是我平时自己看书的时候总结不出来的,但是在实习期跟着老师做项目时,这些从书本上得不到解答的问题却能够得到很好地解答。这让我明白了,有些东西在书本上是找不到的,只有在实际的操作中才能够找到满意的答案。所以我觉得我们平时一定要多动,多锻炼自己的操作能力,在实际操作的过程中我们能够学到在书本上学不到的知识,能够学到更多有用的知识,这些知识对我们今后的学习是非常有意义的,对我们以后找工作和参加工作都是很有用的,我们应当珍惜这种给我们锻炼动手能力的机会。
我们快要毕业了,能够在这最后的时光里一起讨论一起学习,我觉得是非常美好温馨的时刻,几个月后,大家就各奔东西了,再聚在一起的时间就很少了很难得了,我们应当珍惜现在聚在一起的时光,让它成为我们大学里一段美好的回忆。
六、实习日志
20##年2月24号 星期一 天气 雨
今天是毕业实习的第一天,刘老师组织我们专业所有学生召开了毕业实习动员会。在实习动员会上刘老师首先给我们讲了关于实习的几种情况,我们可以选择自主实习或者参加学校安排的实习,选择自主实习需要办理相应的手续,所有手续办理合格了就可以进行自主实习,参加学校安排的实习则只需要按照学校规定的流程来进行校内实习。
然后刘老师讲了参加校内实习的一些相关事情。参加校内实习和去年参加生产实习一样,在金融港的软帝信息科技有限责任公司实习,由软帝信息科技有限责任公司的讲师带领我们进行学习和做项目,实习内容主要是进行JAVA的实训,学习这方面的知识,在老师的带领下完成相关项目。最后刘老师讲了实习的时间安排,以及在实习期间应该遵守的纪律。
20##年2月26号 星期三 天气 雨
今天是去软帝公司参加毕业实习的第一天,带领我们毕业实习的老师也是我们去年参加生产实习时的指导老师王老师。上午的时候王老师主要给我们讲了JAVA相关的一些知识,讲了B/S与C/S的区别和特点,然后介绍了国内外一些有名的IT公司,主要介绍了它们开发的一些比较好的浏览器,比如IE浏览器,火狐浏览器等。
下午,王老师带领我们制作了一个比较简单的静态网页,实现将网页传送到服务器那,在浏览器中我们能够搜索到该静态网页。通过制作这个静态网页,我们学会了如何制作静态网页和上传自己制作的网页。在今天的实习过程中我们了解到了许多与刘浏览器相关的知识,也学习了一些JAVA语言的知识,我相信在整个毕业实习的过程中我们将会学到很多,也会收获很多。
20##年2月28号 星期五 天气 雨
今天王老师教我们制作并设计静态网页,在我们平常上网是看到的网页都是很漂亮的,每个网页上都有很多的元素。我们今天学习的就是如何在一个html网页中添加各种元素,并且对这些元素进行恰当的安排,使页面看起来比较美观。
首先是在网页上添加文字,文本框,以及选项扭,下拉框,链接等这些在完成某些功能时需要用到的输入文字,选择选项等的进入端口。然后是在网页中添加图片,添加多张图片,在图片下方设置序号,并设置合适的时间,使所有图片能够循环播放。网页制作好了后,可以对网页的背景颜色进行设置。对于网页的设计,可以直接在网页界面进行手动操作,也可以在代码中编写,两种方法得到的结果是一样的,在设计界面中画页面时,在代码部分会显示出相应的代码。
20##年3月3号 星期一 天气 阴
本次毕业实习我们主要要完成的项目是“京东商城网上购物系统”,今天是开始做这个项目的第一天。因为我们去年参加生产实习时的最后几天也是做的这个项目,但是当时时间比较紧,只完成了一部分功能。这次毕业实习,我们接着完成这个项目还没有完成的一些功能。
首先我们是建立京东商城网上购物系统这个项目,由于去年完成了部分功能,所以对于前面已经完成的几项功能我们在老师的带领下很快就完成了,主要包括建立数据库、用户注册、用户登录、展示所有商品,查看单个商品等功能。在接下来的几天,我们会继续完善前面的几项功能,并且要添加更多的功能,比如购物车功能,结算功能等。我们会争取在本次的实习过程中能够实现京东商城购物系统中更多的功能。
20##年3月4号 星期二 天气 阴
我们平时注册账号或者登录某一系统时,通常会在最后有一项是“输入验证码”,验证码是由系统随机给出的,一般是由四个字母或者数字组成的,在验证码的旁边会有一项“看不清,换一张”,点击该项,验证码就会换一张。
今天我们就是完成“验证码”这一功能。以前完成注册这一部分的功能时没有完成验证码这一项,现在将这一部分进行完善。在编写后台程序代码时,设置验证码时,我们设置的是全由英文字母组成,不区分大小写,没有设置数字。在注册时只有输入正确的验证码,才能够注册成功。验证码是随机获取的,系统将二十六个英文字母进行随机的组合,每次注册都会显示一个组合,当验证码界面比较模糊,看不清时,点击“看不清,换一张”,验证码就会换一张。
20##年3月5号 星期三 天气 晴
对于注册和登录这两个页面,我们以前做的是中文显示的,由于网上很多系统是国际化的,可以选择使用哪种语言来显示,我们没有时间添加太多的语言,所以我们就将这方面进行了稍微的完善,我们添加了用英文来显示的功能,在页面的右上角有一个选项“English”点击该项,页面上的文字将会换成用英文来显示。添加该项功能,主要是为了让系统能够国际化,因为不同的国家有各自不同的语言,所以一个系统只有可以用多种语言来显示才会使更多的人能够使用它。
这几天我们主要是将以前完成的一些功能进行了完善,使其使用起来更加的方便,整个系统更加的完美。其实在这些方面还有很多地方可以进行完善,但是实习的时间有限,只能够完善这些,后面还需要完成一些还没实现的功能。
20##年3月6号 星期四 天气 晴
今天我们需要完成一项新的功能,将商品进行分页。我们以前完成的是将所有的商品都展示出来,这样所有的商品都放在同一页。如果商品数量比较大的话,这样就不太方便查看商品,所以我们需要添加一个分页的功能。
我们可以自己设置页数,首先设置好每一页显示多少件商品,所有商品除以每页件数,就能显示出有多少页。在每一页的下方会显示页数,我们可以选择查看哪一页。这样查看商品就比较方便,也比较清晰。对于该部分我觉得还可以进一步的完善,还可以设置“上一页”、“下一页”、“跳页”、“首页”、“末页”等跳页键,点击任何一项,都能够跳到指定的页面。这样在商品比较多的时候,就能够更加方便的浏览商品。如果时间允许,我觉得可以将这方面进行完善。
20##年3月7号 星期五 天气 阴
今天我们开始完成在整个购物系统中比较难的一部分,购物车部分,在这一部分要完成的内容比较多,首先要完成添加商品的功能,点击添加商品能够显示添加成功。对同一件商品进行多次添加,要能够实现累计的功能,每添加一次,在购物车中商品的购买数量就得增加一次。点击我的购物车,页面要跳到显示我的购物车里的内容的页面,在该页面里显示的是之前添加到购物车内所有商品的详细信息。然后点击结算项,页面将跳转填写结算信息的页面。
今天我们只完成了购物车这一部分中比较小的一部分,我们能够将商品进行添加,会显示“商品添加成功”,运行程序也能够正确的显示添加的数量。但是页面还不能够跳到我的购物车的页面内,这一部分还需要在以后的时间里继续完成。
20##年3月8号 星期六 天气 晴
今天放假,虽然没有去软帝公司实习,但是我在学校也在完成与实习项目相关的内容。我将前几天所做的内容复习了一遍。我将在实习实验室做的项目拷回来,在自己的电脑上导入到eclipse中去,将自己这些天所做的内容整理了一遍,并且将所有的代码认真地看了一遍,因为在实习实验室跟着老师做项目时,有时为了跟上老师的节奏,很多地方还不太懂,但是在代码很多地方老师都做了注释,当时也跟着老师一起对这些代码做了注释。所以我结合这些注释一起看代码,一些当时没有弄明白的地方现在也弄明白了。
通过今天的整理我对整个项目的构架以及其中的一些原理有了更清晰的认识,也有不少的收获。我觉得我们应当多看看以前学过的东西,从中我们能够学到一些当时没有学到东西。
20##年3月10号 星期一 天气 晴
今天我们继续完成京东商城购物系统中购物车这一部分的功能,由于网上购物系统中购物车这一部分比较复杂,涉及的内容比较多,要处理大量的数据,所以完成这部分的功能要花费较多的时间。
我们在所有的商品中选择一件商品,要将它添加到购物车中去,我们点击购物车旁边的添加按钮,会弹出一个窗口显示“商品添加成功”,这一功能昨天已经完成,今天主要完成的功能是,点击进入我的购物车,页面能够跳到显示购物车内商品的页面,在该页面里能够看到之前添加到购物车内的所有商品的价格、简介、购买的数量等详细信息,我们对某一商品每点击一次添加,在购物车内该商品的购买数量就增加一件。由于时间有限,在购物车内的删除等功能还没有实现。
20##年3月11号 星期二 天气 阴
今天我们主要是完成购物车内“结算”这一功能。之前我们完成了在购物车内添加商品的功能,添加完成后,点击结算功能按钮,页面将跳转到结算页面,在该页面将会显示一些文本框,需要填写购物相关的一些信息,比如使用什么方式付款,账号,密码等。由于今天是完成项目的最后一天,明天就是项目验收的时间,所以对于结算这一部分的功能就只做到跳转到该页面这一步。后面的功能没有时间去完成了。
虽然我们依然没有将京东商城购物系统这一项目完完全全的做完,但是在去年的基础上我们又实现了一些比较复杂的功能,从中也学到了许多知识,也有许多的收获。在以后的学习中,如果有时间,我会继续完成没有完成的部分,争取能够自己将京东商城购物系统这一项目做完。
20##年3月12号 星期三 天气 多云
今天是我们参加毕业实习的最后一天,我们在实习期间的项目基本上已经做完了,京东商城网上购物系统的大部分功能已经实现,上午老师首先让我们自己将各自的项目调试查看一下,等调试好,没有什么问题后,再开始进行实习答辩。在答辩的过程中,每个人将自己所做的项目给大家演示一遍,简单的介绍一下自己主要实现了哪些功能。
答辩结束后,整个毕业实习基本上就结束了,剩下的主要是写实习报告了。在这三个星期的毕业实习中我们有许多收获,学到了一些知识,也明白了一些道理。有些事情只有自己亲自动手去做了,去思考了,才会真正的有所收获。我们马上就要毕业了,我觉得我们在这次实习的过程中学到的和感悟到的将会对我们今后的学习和工作有很大的帮助。