• 小学
  • 初中
  • 高中
  • 小升初
  • 中考
  • 高考
  • 英语
  • 考研
  • 四六级
  • 单元
  • 节日
  • 母爱
  • 诚信
  • 父爱
  • 环保
  • 家庭
  • 感动
  • 成长
  • 感恩
  • 梦想
  • 爱国
  • 写景
  • 写人
  • 叙事
  • 状物
  • 议论
  • 说明
  • 抒情
  • 观后感
  • 诗歌
  • 读后感
  • 想象
  • 素材
  • 名言
  • 段落
  • 哲理
  • 诗词
  • 成语
  • 赏析
  • 基础
  • 演练
  • 教学
  • 当前位置: 天一资源网 > wechat网页版登陆 正文

    网页登陆界面论

    时间:2020-08-21 08:51:58 来源:天一资源网 本文已影响 天一资源网手机站

      武汉工程大学

     计算机科学与工程学院

     毕业实习报告

     专 业

     软件工程

     班 级

     01

     学 号

     1005100120

     学 生 姓 名

     王冠豪

     指 导 教 师

     牛志梅(讲师)

     实 习 时 间

     2013~2014学年第2学期

     2014.2.24至2014.3.14

     实 习 成 绩

     武汉工程大学计算机科学与工程学院 制

     说明:

     1、 实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实习答辩、实习成绩评定、给出实习评语等工作。

     2、 实习报告由武汉工程大学计算机科学与工程学院提供基本格式(适用于学院各专业),各专业教研室和指导教师可根据本专业特点及实习内容做适当的调整,学生须按指导教师下达的实习报告格式认真进行填写。

     3、 实习成绩由指导教师根据学生的实习情况给出各项分值及总评成绩。

     4、 指导教师评语一栏由实习指导教师(校内教师)就学生在整个实习期间的表现给出客观、全面的评价,包括实习期间的表现、实习报告的质量、实习答辩的情况等。

     5、 学生必须参加实习答辩,凡不参加实习答辩者,实习成绩一律按不及格处理。实习答辩小组应由2人及以上教师组成,其中校内指导教师必须参加,否则视作无效答辩。

     6、 实习报告正文字数应不少于5000字,实习日记字数不少于300字/天。

     7、 实习报告正文中实习目的与任务、实习地点、实习内容和要求等项,可由指导教师统一给出(自主实习除外)。学生自主实习的,可根据实习的情况自行填写以上内容。

     8、 自主实习的学生还应提供由实习单位出具的实习鉴定表(复印件),与实习报告一起装订,作为参加实习答辩和评定成绩的依据。

     毕业实习成绩评定表

     学生姓名: 王冠豪 学号: 1005100120 班级: 01

     类别

     总分值

     各项分值

     评分标准

     实际得分

     总得分

     备注

     实习表现

     30

     10

     按时参加实习活动,无旷课、迟到、早退等情况。

     10

     遵守实习单位纪律和安排,无违反实习单位规定的情况;听从指导教师的安排,参加各项活动,无不服从教师管理的现象。

     10

     按期圆满完成规定的任务,工作量饱满;能运用所学知识和技能去发现与解决实际问题,工作中有创新意识。

     实习报告

     40

     15

     实习报告文字通顺,内容翔实,论述充分、完整,结构严谨合理。能运用所学专业知识对问题加以分析。

     15

     正确处理相关的数据,分析处理科学;具有收集、加工各种信息及获得新知识的能力。

     5

     实习报告字数符合相关要求,实习报告工整规范,整齐划一。

     5

     实习日记(笔记)次数及内容符合要求。

     实习答辩

     30

     15

     在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。

     15

     在规定时间内能准确、完整、流利地回答教师所提出的问题。

     总评成绩: 分

     补充说明:

      指导教师: (签字)

     日 期: 年 月 日

     毕业实习答辩记录表

     学生姓名: 王冠豪 学号: 100510020 班级: 01

     答辩地点:

     答辩内容记录:

     答辩成绩

     总分值

     各项分值

     评分标准

     实际得分

     总得分

     备注

     30

     15

     在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。

     15

     在规定时间内能准确、完整、流利地回答教师所提出的问题。

     答辩小组成员(签字):

      年 月 日

     指导教师评语

     指导教师: (签字)

     日 期: 年 月 日

     一、实习目的与任务

     IT行业已经渗透到各行各业,非IT业的IT人才需求也稳步增加,为解决企业IT人才需求瓶颈,满足IT企业特别是跨国公司对.NET高级软件人才的需要。针对各类专、本科院校的一些基础扎实,有一定编程经验(能力)的大学生,本次实习在达内软件有限公司协助下制定此提高班实习计划。通过严格按照项目的真实开发流程设计,让大学生在企业中经历体会,提高整体把握项目技能,掌握最新流行技术。

     本计划以“服务社会、服务企业、服务大学生”为基本理念,结合大学相关专业学生的课程设计,实现企校合作,共同指导课程设计,以期实现学生走出教室,走向社会,通过实际的软件项目实习,让学生既完成了学科教学要求又使学生了解了企业,熟悉了培训平台。

     二、实习地点

     达内软件有限公司(武汉光谷龙安港汇城)。

     三、实习内容和要求

     3.1.实习内容:

     本项目来自互联网房产交易网站开发理念,在系统中完整的展现商业应用需求需要的业务实体,业务流程。相关互联网应用成功成熟系统可参照亿房网,搜房网。随着人们对于网络的使用越来越多,本次毕业实习本着提高我们的动手实践能力为目标,顺应时代潮流,做一个web项目的开发,增加我们对于互联网的了解,同时熟悉一些开发环境和开发工具。由于是第一次做web项目,所以从servlet开始,模仿一些网站的首页,做一个用户注册登录的效果,同时做一个图片文件的上传。

     3.1.1 环境搭建

     在开始开发之前,首先要搭建好开发环境,这次选用的是Myeclipse+Mysql+Tomcat,Myeclipse可以建立web项目,编写后台功能和前台页面,Mysql负责数据的存储,Tomcat服务器负责浏览器提出的请求,然后交给后台处理。在这其中数据库的连接是一个非常重要的步骤。在项目中将与数据库连接相关的类放在util包中。主要是加载驱动,然后创建连接。在开发环境都准备好了之后,就可以开始开发了。本次项目实现的功能主要有注册,登录,图片上传等。

     3.1.2注册模块

     在设计用户注册页面时,首先需要设计具体的注册填写项目,包括各种必填项目,选填项目等。设计项目时不能盲目设计,而应参考一些规范:

     设计项目应目的明确

      设计注册填写项目时,应有明确目的。每一个需要用户填写的内容,都应该是网站经营者需要获得的信息,而不是无聊的玩笑。

     设计项目应精简易填

      网站的注册项目应该通俗易懂。网站所需要面对的并不只是局限于专业用户。过于艰深的词汇可能造成用户误解,以致注册无法进行。因此,能使用中文时尽量使用中文,能使用简单词汇,尽量少使用术语。

     注册功能主要是要和数据库进行交互,使用的Mysql数据库。在插入数据之前首先要从页面上获得数据。该功能用jsp实现,即用一个表单将信息传到后台,然后进行验证。当然在这之前,要通过xml配置文件,选择正确的servlet。xml中的内容如下:

     <servlet>

     <servlet-name>friend</servlet-name>

     <servlet-class>service.FriendServlet</servlet-class>

     </servlet>

     <servlet-mapping>

     <servlet-name>friend</servlet-name>

     <url-pattern>*.do</url-pattern>

     </servlet-mapping>

     首先通过*.do找到请求,然后根据这个名字找到friend中的FriendServlet,让他去执行具体的后台处理。在后台我们通过if语句来处理不同的请求。注册功能的实现如下:

     //处理注册事务

     //1.获取从页面传过来的数据

     User user =new User();

      user.setUserName(request.getParameter("username"));

     //判断用户名是否被占用

     boolean registed = userDao.findByUserName(user.getUserName());

     if(registed){

     //不能注册,提示用户已经被注册,跳转到注册界

     request.setAttribute("username_error", "用户名已经被注册"); RequestDispatcher rd=request.getRequestDispatcher("regist.jsp");

     rd.forward(request, response);

      return ;

     }

     //判断密码

     String pwd = request.getParameter("pwd");

     user.setPwd(pwd);

     if(pwd.equals("")){

      //提示密码不能为空

     request.setAttribute("pwd_error", "密码不能为空");

     RequestDispatcher rd = request.getRequestDispatcher("regist.jsp");

      rd.forward(request, response);

      return;

     }

     //判断年龄(自己编写)

     Pattern p= Ppile("\\d{1,3}");

     String age = request.getParameter("age");

     Matcher m = p.matcher(age);

     boolean agechecked = m.matches();

     System.out.println(agechecked);

     if(!agechecked){

     request.setAttribute("age_error","请输入1-3位数字");

     RequestDispatcher rd = request.getRequestDispatcher("regist.jsp");

      rd.forward(request, response);

      return;

     

     }else{

      user.setAge(Integer.parseInt(age));

     }

     String checkcode =request.getParameter("checkCode");

     session = request.getSession();

     if(!session.getAttribute("number").equals(checkcode))

     {

     request.setAttribute("checkcode_error", "验证码输入有误,请重新有误");

     RequestDispatcher rd = request.getRequestDispatcher("regist.jsp");

      rd.forward(request, response);

      return ;

     }

     user.setName(request.getParameter("name"));

     System.out.println(request.getParameter("username")+",,,,"+user.getUserName());

     user.setGendar(Integer.parseInt(request.getParameter("gendar"));

     user.setPhone(request.getParameter("phone"));

     //把数据插入到数据库

     userDao.save(user);

     response.sendRedirect("login.jsp");

     在登录界面中做了一些验证,当然又涉及到与数据的交互,比如说通过用户名查询该用户名是否被注册过,用到了userDao中的findByUsername函数,该函数主要是通过执行SQL语句来查询数据库中是否有同用户名的人。用到的对象初始化如下:

     Connection conn = null;

     PreparedStatement statement = null;

     ResultSet rs = null;

     conn = DBUtil.getConnection();

     然后执行SQL语句,返回boolean类型。

     在注册功能中还有一个就是验证码的功能,为了这个功能,专门做了一个servlet,叫做CheckCodeServlet,这个servlet也一样的需要在xml文件中进行配置,代码如下:

     <servlet>

      <servlet-name>checkCode</servlet-name>

      <servlet-class>service.CheckCodeServlet</servlet-class>

      </servlet>

      <servlet-mapping>

      <servlet-name>checkCode</servlet-name>

      <url-pattern>/checkCode</url-pattern>

     </servlet-mapping>

     实际上这里的功能实现原理,和上一个是一样的,只是写法不一样罢了,特别是在url-pattern中,用了一种新的写法,而不是*.do,这种方式就只能获取到form表单中src="checkCode"的请求了。

     由于画验证码是一个新的功能,以前没有接触过,所以此出列出CheckCodeServlet的主要代码如下:

     public class CheckCodeServlet extends HttpServlet{

     

      HttpSession session =null;

      @Override

     protected void service(HttpServletRequest req, HttpServletResponse resp)

      throws ServletException, IOException {

      //1.设置content-type 消息头,告诉浏览器,返回数据类型

      resp.setContentType("image/jpeg");

      //2.图片的内存映像

      BufferedImage image = new BufferedImage(80, 30,BufferedImage.TYPE_INT_RGB);

      //3,。获取画笔

      Graphics g = image.getGraphics();

      //4.画背景颜色

      Random r = new Random();

      g.setColor(new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255)));

      g.fillRect(0, 0, 80, 30);

      //5.画数字(字母)

      String number = r.nextInt(99999)+"";

      System.out.println(number);

      session = req.getSession();

      session.setAttribute("number", number);

      g.setColor(Color.white);

      g.drawString(number, 5, 15);

      //6.画干扰线

      g.setColor(Color.black);

      for(int i= 0 ;i<5;i++){

     g.drawLine(r.nextInt(50), r.nextInt(20), r.nextInt(60), r.nextInt(20));

     

      }

      //7.压缩成jpg格式

     JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(resp.getOutputStream());

      encoder.encode(image);

     

      }

     

     }

     这样一个注册模块就基本实现了,而且功能还很完善,各种检查,例如空检查、用户名已经存在,密码检查等。

     3.1.3登录模块

     设计合理的用户界面,编制程序,实现如下功能:

     1、建立一随机文件,顺序文件或者数据库表文件,建立用户档案,预先存储一些用户的基本信息(用户名, 密码,姓名等);

     2、当输入“用户名”和“密码”并选择“登录”后,单击“确定”按钮,则在数据文件中去查找该用户名和密码是否均为正确。若用户名和密码正确,则在对话框中提示“合法用户!”,否则提示“不是合法用户或密码错误!” ,给用户提供3次输入的机会,超过3次则程序退出或进入一死循环程序执行。

     我们处理的主要是表单中的内容,具体html方面,并不是这次项目关注的重点,其中form表单中的代码如下:

     <form action="login.do" method="post">

     <table cellpadding="0" cellspacing="0" border="0"

      class="form_table" width="647" height="100">

      <tr>

      <td valign="middle" align="right">

      用户名:

      </td>

      <td valign="middle" align="left">

      <input type="text" class="inputgri" name="username" />

      </td>

     </tr>

     <tr>

      <td valign="middle" align="right">

      密 码:

      </td>

      <td valign="middle" align="left">

      <input type="password" class="inputgri" name="pwd" />

      </td>

     </tr>

     </table>

     <p>

     <input type="submit" class="button" value="提交 &raquo;" />

     </p>

     <div class = "error">

     <%String error = (String)request.getAttribute("error");%>

      <% if(error == null){%>

      <% error = "";%>

      <% }%>

     <h4 style="color:red"><%=error %></h4>

     </div>

     </form>

     在其中通过post方式提交了login.do的请求。然后还有处理登录出错的java代码,通过request内置对象来实现界面和后台的交互,如他的getAttribute函数,就是获得后台传过来的信息。当然后台首先是获得他提出的请求,然后做出相应的处理,在FriendServlet类中处理代码如下:

     if("/login".equals(action)){//处理登录事物

      String username = request.getParameter("username");

      String pwd = request.getParameter("pwd");

      User user = userDao.findByUsernameAndPwd(username,pwd);

      if(user == null){

     request.setAttribute("error","username or password wrong");

      //转发

      RequestDispatcher rd =

     request.getRequestDispatcher("Login.jsp");

      rd.forward(request,response);

      }

      else{//登录成功,设置sessiom

      session = request.getSession();

      session.setAttribute("username",user.getUsername());

      //登录跳转到列表显示界面,重定向

      response.sendRedirect("list.do");

      }

     }

     值得注意的是,在区分不同的处理过程时,是通过request.getRequestURL()的路径来区分的。登录时,首先获得用户名和密码,然后调用findByUsernameAndPwd函数,在数据库中查询是否有这个用户,如果没有用户,则采用转发的方式页面返回登录界面,并显示出错信息,这个是在jsp页面中完成的。如果登录成功,那么就通过request内置对象获得一个会话,采用重定向的方式将页面跳转到用户列表页面中。这里采用两种不同的页面跳转方式。

     在用户列表中,是通过一个table实现用户信息的显示的,采用了for循环的方式。这其中要用到容器,即一个装着用户的容器List<User>,然后通过findByAll函数实现显示。函数实现如下:

      public List<User> findAll(){

      Connection conn = null;

      PreparedStatement statement = null;

      ResultSet rs = null;

      List<User> users = new ArrayList<User>();

      String sql = "select * from friend_user";

      conn = DBUtil.getConnection();

      try {

      statement = conn.prepareStatement(sql);

      rs = statement.executeQuery();

      while(rs.next()){

      User user = new User();

      user.setId(rs.getInt("id"));

      user.setUsername(rs.getString("username"));

      user.setPwd(rs.getString("password"));

      user.setName(rs.getString("name"));

      user.setAge(rs.getInt("age"));

      user.setGendar(rs.getInt("gendar"));

      user.setPhone(rs.getString("phone"));

      users.add(user);

      }

      } catch (SQLException e) {

      e.printStackTrace();

      }

      return users;

     }

     该函数主要是在进行一些数据库的操作,用到了Connection, PreparedStatement, ResultSet对象,一个负责连接,一个负责执行SQL语句,一个负责返回操作结果。这样就获得了所有的user,然后后台将这些信息传到前台,在网页中显示出来。总体来说,登录模块具有两个功能,一个是验证,判断是否是注册用户,另一个是将所有用户信息以列表的形式显示出来。虽然在网页设计方面还有不足,比如所有用户都在一个table中,当用户数量增加时,网页也变大,不太美观。不过主要的信息传递和工作原理还是充分反映在了项目之中。

     3.1.4用户详细信息

     在这个模块之中主要是显示单个用户的详细信息。对与登录用户,可以上传自己的照片,查看别人的信息,但是不能上传照片。主要是实现图片上传。图片上传时,首先要判断是不是登陆者。然后获得一些参数,交给后台处理。页面中的代码实现如下:

     <%//判断上传图片的人是不是登录者

      String username = (String)session.getAttribute("username");

      if(username.equals(user.getUsername())){%>

      <h1>

      上传图片:

      </h1>

      <form action="loadPic.do?id=<%=user.getId() %>" method="post"

      enctype="multipart/form-data">

      文件路径:

      <input type="file" name="file1" />

      <input type="submit" value="提交" />

      </form>

     <%} %>

     文件上传,实际上是将文件上传到了Tomcat服务器,我们可以在tomcat的安装包中看到用户上传的图片。当然这些工作都是在servlet中完成的。相应的代码如下:

     else if("/loadPic".equals(action)){//上传图片

      //获取用户id

      int id = Integer.parseInt(request.getParameter("id"));

      //上传图片(加载上传文件的jar包)

      //1.给要上传的图片在服务器配置空间

      DiskFileItemFactory dfif = new DiskFileItemFactory();

      //2.文件上传工具类

      ServletFileUpload upload = new ServletFileUpload(dfif);

      upload.setHeaderEncoding("utf-8");

      try {

      List list = upload.parseRequest(request);

      for(int i = 0;i < list.size();i++){

      FileItem item = (FileItem)list.get(i);

      String filename = item.getName();

      System.out.println("上传文件时输出的Name:"+filename);

      StringBuffer sb = new StringBuffer(filename);

      //文件名

      filename = sb.substring(sb.lastIndexOf("\\")+1);

      //获取保存文件的路径

     String pathTom = this.getServletContext().getRealPath("upload");

      System.out.println(pathTom);

      //创建用户的文件夹

      String pathUser = pathTom +"/" +"pic_"+id;

      File file = new File(pathUser);

      file.mkdir();

      //写文件

      file = new File(pathUser,filename);

      try {

      item.write(file);

      //把文件写到数据库

      Pic pic = new Pic();

      pic.setPicName(filename);

      pic.setUserId(id);

      picdao.sava(pic);

      response.sendRedirect("detail.do?id="+id);

     

      } catch (Exception e) {

      e.printStackTrace();

      }

      }

      } catch (FileUploadException e) {

      e.printStackTrace();

      }

     }

     上传的文件是根据用户的id来判断的,为每个用户建立一个文件夹,来保存他的图片,即每个用户可以上传多张图片。我们在打开用户详细信息时,如果用户有照片,那么就需要把它显示出来,在页面中的代码如下:

     <%//获取图片

      List<Pic> picList = (List)request.getAttribute("picList");

      for(int i = 0;i < picList.size();i++){

      Pic pic = picList.get(i); %>

     <img src="upload/pic_<%=user.getId() %>/<%=pic.getPicName() %>" width="300" height="200" />

     <%} %>

     这样上传显示用户的详细信息的模块基本上就完成了,这其中也涉及到数据库的操作,实际上和前面显示用户列表的操作是差不多的,都需要几个对象,然后对数据库进行操作。整个详细设计也就基本完成了,虽然功能不是那么的完善,但是也是熟悉了servlet的基本原理,以及一些html,jsp的知识。

     3.2实习要求:

     对系统开发及软件工程思想有实践的体验和理解。巩固已经初步掌握的JavaSE,JavaEE系统知识。实践体验系统开发的整体工作流程。按时参加实习活动,不旷课、迟到、早退等情况。遵守实习单位纪律和安排,不违反实习单位规定的情况;听从指导教师的安排,参加各项活动,服从教师管理的现象。按期圆满完成规定的任务,工作量饱满;能运用所学知识和技能去发现与解决实际问题,工作中有创新意识。

     实习总结及分析

     4.1 实习分析

     首先打开tomcat服务器,然后对项目进行配置,最后通过浏览器输入http://localhost:8080/web02/login.jsp进入登录界面,对功能进行测试如下图所示:

     图 4.1.1登录界面

     若用户没有注册则会出现用户名或者密码错误的提示消息,如下图所示:

     图4.1.2 错误提示窗口

     接下来就是用户注册窗口,该窗口提供用户需要填写的基本信息。如下图所示:

     图 4.1.3 注册窗口

     现在用huan的用户名正确登录进去,将会看到所有用户的信息列表。如图3.5所示。

     图 4.1.4 用户信息列表

     点击详细信息,查看详细信息,同时上传照片,然后显示出来,如下图所示。

     图 4.1.5 详细信息窗口

     然后点击选择文件按钮,会出现文件选择对话框,如下图所示:

     图4.1.6图片信息选择窗口

     择用户需要上传照片后,点击提交按钮。会看到用户的照片显示在网页上,如下图所示:

     图 4.1.7 上传图片后窗口

     4.2 实习总结

     通过实习分析可知,基本上完成应有功能。

     用户登录界面实现用户成功登录系统,当输入“用户名”和“密码”并选择“登录”后,单击“确定”按钮,则在数据文件中去查找该用户名和密码是否均为正确。若用户名和密码正确,则在对话框中提示“合法用户!”,否则提示“不是合法用户或密码错误!” ,给用户提供3次输入的机会,超过3次则程序退出或进入一死循环程序执行。

     用户注册页面也是互联网中最常见的用户交互界面类型。其与用户登录网站类似,都是提供一些表单供用户填写,通过网页获取用户填入的信息,再把用户信息写入到网站的数据库中。用户注册往往是网站用户系统与用户交互的第一步。具有十分重要的作用。主要用到了数据库的增删改查,当然先要熟悉连接数据库,数据库操作主要分四步:1.加载驱动;2.获取链接;3.执行sql语句,并返回结果集;4.释放链接。也可以对自己的个人信息加以修改,比如说添加图片,

     当然还有一些值得完善的地方。但是在短短的时间内,能做成这样已经很不错了。主要还是以了解servlet的工作原理为主。Servlet的主要工作模式:客户端发送请求至服务器;服务器启动并调用Servlet;Servlet根据客户端请求生成响应内容并将其传给服务器;服务器将响应返回客户端。这样这个功能也就演示完了。基本上实现了最初的目标。

     通过一个学期对JAVA高级语言程序设计的学习,我已经掌握了一些常用的控件的使用方法,对简单的程序设计的常用算法也有了一定的了解,还掌握了对文件输入与输出的一些基本操作。为了进一步加深理解、验证、巩固课堂教学内容,加深对可视化编程思想的理解,强化JAVA对程序流程控制、常用控件的属性、事件、方法的理解和使用;为了进一步提高编程能力、程序的调试能力,理论联系实际的能力;巩固所学的这些程序设计的方法,为了达到后续课程对实际编程计算能力的要求,特选定“用户登录界面程序设计”题目作为课程设计实践教学环节的题目,有助于培养综合运用所学知识解决实际问题的能力,可以充分发挥想象力和创新能力;有助于提高独立思考能力,自学能力。

     在此之前一直对网页的编写充满了好奇,正好这次实习通过网页编程我了解了网页的格式、方法和内容,并了解了网页的后台控制机制,和一些网站设计的框架,让我有了非常大的收获。此外,通过这次实验,让我明白了只有理论联系实践才能提高自己的实际操作能力,做任何事都得有个严格、规范的流程,都得遵循固的一套体系来完成,特别是对于软件开发这种存在诸多不稳定因素的工程。因此这次毕业设计成功地让我们和社会接上了轨道,在毕业前夕感受到了以后所要经历的工作生活。

     实习体会

     这次实习主要是学习Java Web开发方面的相关知识,主要的有JSP、Servlet、HTML,另外还有JDBC,Mysql数据库等等。首先是JSP,它是Java Web开发的基础,需要的页面都是用JSP来建立的,它是一种动态的网页技术,其中,可以显示动态画面以及动画效果,在其中也可以编写Java代码,也可以加入html编写语言,通过form表单中的action属性可以实现页面间的跳转,点击不同的按钮,可以跳转到相应的页面,它是Java Web编程中必不可少的部分,Java语言开发的任何项目都要用到它; 其次是Servlet,它也是Java Web开发中必不可少的部分,Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。Servlet生成响应内容并将其传给Server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法,用的比较普遍的是doPost()方法。

      再次,是HTML语言,它也是必不可少的,经常是嵌入在JSP中运用,它是一种静态页面开发技术,其中用的最多的是运用HTML语言建立form表单,其中有行(tr)和列(td),另外它的标签<div>也用的比较多,主要是利用它可以在页面上任意移动,而且它的大小不会改变,还可以隐藏、变透明等等。

     做完这个项目时我们都很激动,这是我们这么多天的劳动成果。当我们把所有的功能都测试完成后,总感觉还有些不足,也许是时间的关系,我们没来的急对页面美化做进一步的处理,所以比较平凡,与简陋。同时还有一些代码的冗余。应该把重复的代码封装起来,这样更加完美。虽然功能上得到实现。但对字符的处理还存在一些问题。比如中文的支持,做的不是很好。在当初设计的时候就应该考虑到这些问题,如果等到后期修改,代码量以及工作量会很大。所以给我的启示是,前期工作一定要做完善。总的来说,结果和我预期的差不多,基本满足了我们的要求。

     这次实习使我们大学生将课堂所学的知识逐步转化为社会所需要的才能,令我们获益匪浅。总而言之,通过这次的软件开发,通过实习,我们培养了自己独立思考和独立作业的能力,更加能够自信地面对即将踏入的社会。

     附实习日记

     2014.2.24 星期一 武汉达内培训中心

      大学了的最后一学期了,这也是我们在母校最后一次好好学习的机会了,顿感时间飞逝啊,四年的大学时光就要过完了,感慨颇多啊。最后这次毕业实习必须要好好搞,这是进入社会的最后一次充电了,我们都要抓好这次机会。今天主要是介绍下毕业实习的事情,我们安排的是到武汉达内培训中心,以前就让达内老师带着做过QQ聊天系统,达内老师讲的还不错,也很负责,给学校老师和我们都留下了深刻的印象,那次课程设计学到了很多。来到教室我们签了到就在老师的安排下找了一个座位坐下,然后就打开啦桌面前的电脑,可是不曾想它却罢工啦,当然出现这种情况的还有别的同学,那边负责人就安排专员来维修电脑,所以今天上午我们没有开始编程,而是负责本次实习的张兰老师给我们讲解了一下Java方面的一些知识,到最后电脑快弄好,编程时来不及啦,老师就给我们演示了一下这次首先要做的“捕鱼达人”。

     2014.2.25 星期二 武汉达内培训中心

     今天是第一天,在开课前准时到达武汉达内培训中心。Servlet是使用Java Servlet 应用程序设计接口及相关类和方法的 Java 程序。。Java Servlet API 定义了一个servlet 和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。Servlet 通过创建一个框架来扩展服务器的能力,以提供在 Web 上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给 Servlet,并让 Servlet 建立起服务器返回给客户机的响应。

     当启动 Web 服务器或客户机第一次请求服务时,可以自动装入 Servlet首先是熟悉java的基础语法,把基础打扎实,以后在开发中才能如鱼得水。

     2014.2.26 星期三 武汉达内培训中心

     首先老师对昨天所讲的网站的一些内容的回顾,然后对网站作一些必要的介绍。该项目以房产交易网为背景,主要实现其用户登录、用户注册、用户详情及用户列表等简单功能。在需求分析的基础上,对功能需求及功能实现的相关细节作了详尽的描述。另外,先复习了javaSE的相关概念,如类、继承、抽象的概念,类之间的关系:关联、聚合、继承、实现和多态。Static关键字:静态修饰符,它修饰的方法、类和变量可以全局调用。线程的实现方法,IO流等等。紧接着在了解之后就开始介绍捕鱼达人和房产交易网的基本实现原理,这包括其中具体用到的那些我们所学的知识点、方法及原理,经老师的逐步分解讲解,其实我们会发现捕鱼达人也并没有想象中的那么不可行,我们还是能够自己独立完成的,毕竟都是一些我们所学的知识,只不过是把它们整合到一起而已。

     2014.2.27 星期四 武汉达内培训中心

      作为当前程序开发中最流行编程语言的一种,它以面向对象,跨平台,安全,稳定以及可扩展性吸引了用户。Java的应用领域比较广,目前的一个最为主要的用途是开发Web应用程序。而Web程序的入口点则是Servlet,Servlet主要处理各种业务逻辑,它比JSP更具有业务逻辑层的意义。了解它们的基本原理,我们就该开始在老师的带领下着手啦,所谓巧妇难为无米之炊,在开始编程之前一些相关的环境搭建还是很有必要的,所这一天上午在老师的带领下我们在进行开发前的环境变量的配置以及开发工具的选取,完了之后就该是写一份完整的开发的详细设计报告,以为明天的编程的开始而准备。

     2014.2.28 星期五 武汉达内培训中心

     今天老师开始教我们捕鱼达人的编程,这个让我们兴奋不已,因为我们都很早就玩过这个游戏,能了解这个游戏的开发过程让我们很感兴趣。老师给我们讲了很多,包括界面设计,动画效果原理。其中界面主要就是图片加载,画面背景设置,加强游戏效果。而动画效果原理则比较简单,用多张图片在较短的时间内来回切换,这个就需要用线程来实现。鱼的游动效果也很简单,同样是在单位时间内变化鱼的坐标,加上图片切换效果,就可以达到鱼在背景图片上“游动”的效果。实现细节上,分析了系统的大致结构,所需要编写的类及其属性、方法等等。对于线程的实现方法,采用了两种方法:继承Thread类和实现Runnable接口。

     2014.3.3 星期一 武汉达内培训中心

     完成了捕鱼达人的项目,对此项目进行了一些完善工作,包括分数,子弹的控制等。在搞完之后,正式进入网站设计。

     首先熟悉html的基本结构,编码格式,常用标签等,然后开始嵌入简单的JSP代码,获取页面输入的数据,并反馈相关信息。其中重点讲解了JSP的九大内置对象(包括request,response,session,application,page,pageContext,out,exception,config),<table>标签的使用,以及<form>表单的提交、请求等基本知识点。还好,这些我都自学过,虽然老师讲的有点快,但还是可以跟上的。

     2014.3.4 星期二 武汉达内培训中心

     熟悉了JSP网页编程后,接下来开始使用Servlet框架。使用Servlet框架需要在网页配置文件web.xml中添加相应的servlet相应处理,这里为了方便,我们用一个Servlet类拦截所有的请求,将其解析成不同的请求,同时作出相应的处理,并跳转到对应的网页。其中,会涉及相关的数据库操作和相关类。

     这里的跳转用到了页面之间跳转的方式:1.连接<a href='连接的地址'>百度</a>;2.重定向 request.sendRedirect("跳转的路径");3.转发RequestDispatcher rd =request.getRequestDispatcher("请求转发到的路径");rd.forward(request, response);//把当前页面的请求和响应也传到下一个页面。需注意重定向和转发的区别。

     2014.3.5 星期三 武汉达内培训中心

     今天主要是数据库的操作和相关类编写。这里使用的是mysql数据库,虽然对SQL Server更熟悉,但是感觉它们差别不是很大。后台控制使用实体类+工具类来对数据库的相应表格进行增删改查操作,其中为了方便链接和操作,我们单独编写了一个工具类dao,专门进行链接工作和执行工作。

     数据库操作主要分四步:1.加载驱动;2.获取链接;3.执行sql语句,并返回结果集;4.释放链接。为了明细系统结构,方便查找,我们编写了工具类和实体类,对应数据库的相应表格。例如需求分析中数据库需要设计一个User表,来存储用户信息,其对应的实体类是只有属性、set和get方法的javaBean,对应的工具类(DAO:database access object)封装着一些方法,对实体和数据库表进行交互信息,如findUserByName()、findUserById()、saveUser()、modifyUserById()等。

     2014.3.6 星期四 武汉达内培训中心

     在完善了数据库链接和操作后,接着就是在网页中进行应用。今天主要完成了两项任务:用户详情页面和用户列表页面。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。今天主要完成了两项任务:用户详情页面和用户列表页面。用户详情页面有三个内容板块:用户个人信息、上传图片和查阅用户图片。用户信息根据登录名从数据库表中查询,然后以列表的形式显示。用户列表则查询所有用户的信息,同样以列表的形式显示,右边还有一个“详情”的链接,可以跳转到用户详情页面。此外,还有一个退出按钮供退出系统。

     2014.3.7 星期五 武汉达内培训中心

     对昨天留下的任务结尾后,毕业实习也就要结束了。两个星期的实习下来,有很多经验,有很多认识,自己总是有很多的感慨。也许在实习的这些天中,我也在逐渐的成长。在认识学习逐渐的成熟。每个人都会在时间潮流中不断认识自我,只不过是时间的长短的问题。因此待人要真诚,时时为人着想,处处为人行事。能够把自己溶入群体,而不耻向工人群众学习。要想在如今的社会中生存,就要吸收新的思想与知识,不断更新观念,趋于完善。这样才有利于思想与实际行动真正地结合,只有在思想演练,才能在最短的时间里把自己要从事的行业中处于领先的地位进而起着不可替代的作用,因为我将会为它比其他人付出更多创造更多价值。我也应该得到我应得到的报酬与珍贵的经验。

     2014.3.10 星期一 校内

      在达内的实习已经圆满结束,感谢达内老师这几天的悉心教导让我学到了很多在学校没学到的知识。经过在达内几天的培训让我对这个汽车信息的网站设计有了大致的了解,经过一段时间的思考和操作我先后完成了用户的注册与登录功能模块,这个模块就该进入最核心的功能部分,汽车交易网站当然是以汽车信息的展示为主,所以今天要做的就是现实汽车的各个方面的功能参数,能更好的让用户直观而更详细的了解到汽车的构造以及性能,当然还应该完成的就是将一些新的汽车消息通知给注册用户。虽然经过一番波折但是我还是在今天顺利的解决了这个模块,按照自己的计划完成了这个时机的第一步,也是最为关键的一步,毕竟万事开头难啊。

     2014.3.11 星期二 校内

      今天接着写详细设计,主要写的是登陆模块和用户详细信息,登陆模块和注册差不多,主要是数据库的操作。用户详细信息就麻烦一点,设计数据库的查询,然后还要讲结果集在表中显示出来。还有一点就是添加图片部分的设计,这部分内容不是很熟。写完详细设计,就写设计结果及分析。这部分主要包括功能测试和结果分析,我的代码是没有问题的,所以要求实现的登陆、注册、查看用户信息、添加图片等功能都可以实现。测试部分,由于设计时考虑比较周到,所以各种错误都会有提示。比如例如用户名是否重复,密码是否为空,年龄是否正确,验证码是否正确等等。。关于验证码的主要步骤:图片的内存映像;获取画笔;画背景颜色;画数字(字母;画干扰线。用户注册的后关于年龄的验证,这部分要用到正则表达式。

     2014.3.12 星期三 校内

      既然是交易当然还要涉及到在线支付的功能啦,经过前面几天的铺垫,今天我们主要是实现一个在线交易的支付功能模块的实现,这个我还未能实现,最后可能要借鉴一下其他同学的。经过前几天的具体实现,一个完整的房产交易网站基本上可以说实现了,那么接下来就应该是它的调试啦,我们首先是需要注册几个新用户,然后登陆进入交易网站主界面,以一个用户的身份来体验一下这个系统的可行性,并针对可能会出现的问题加以维护以及对不足的地方加以改正,并写一份测试报告用以实习报告的需要,对此作出一个总结。我把最后的实习总结写了下,真的感触颇多。这次培训学到了许多,不仅有以前自己没有注意到的一些细节,还有一些新的知识,比如验证码的随机生成。然后觉得自己还有许多要学的,自己在读研期间要好好补一下。不仅要打好基础,还要能够满足企业要求,学一些新的知识。报告写完后,主要设置了下页码,然后自动生成下目录。最后就是看看有什么地方不符合要求,字体是否符合,段落格式等等。基本上没什么问题,这些要求都比较熟。

     2014.3.13 星期四 校内

      最终我们会是有一个答辩的,故而在完成了系统的设计也是该写一份报告啦,依据报告的模板我们将相应的实习内容补充,主要是写一下系统开发的设计思路、开发步骤、详细的设计、最终系统运行的结果截图展示以及测试报告和实习的体会,这其中非常需要注意排版,这个是一个报告成功与否的关键,所以很有必要在打印之前需要仔细的检查一下,为了准备明天的答辩,我决定先复习下老师讲的核心知识点,再熟悉下程序。主要需要掌握的有先复习了javaSE的相关概念,如类、继承、抽象的概念,抽象类和接口的区别,线程的实现方法,IO流等等。面向对象和面向过程的区别,类和对象的概念。然后一些web方面的知识,比如说:九大内置对象、web开发的步骤等等。

     201

    相关关键词: wechat网页版登陆
    相关热词搜索: wechat网页版登陆 网页 登陆界面

    • 范文大全
    • 教案下载
    • 优秀作文
    • 励志
    • 课件
    • 散文
    • 名人名言