夏季学期软工综合实践小记(二)

短学期的软工实践前五天的学习结束了,虽然在课堂中我们学到了很多以前从未接触过的如:JDBC、Java Servlet等框架,XML语言和简单的网页制作语句的浅析,亦或是通过编程语言实现网页与数据库内容的桥接和使用等内容,但时间上总体来讲还是较为紧迫,加上很多基础的知识如网页制作技术、语句的使用和语法规则并未先修相关课程,这就造成很多基础内容都需要讲师在课堂上现场普及。虽然编程语句和逻辑与之前所学的相差不多,但一天的学习下来因为内容量大,并且整个工程在实际运作时会在多个文件之间跳转调用,实际理解起来难度还是不小。如果可能的话建议校方在今后的开展相关教学活动之前硬性的要求学生先修相关基础课程,以期避免这样吃力且低效的学习过程。

课堂上刘老师还向我们推荐了CSDN论坛、Editplus以及对网页制作有所帮助的Bootstrap等软件和资源获取途径,并且教授了不少非常实际且易用的编程技巧。

本周的之后两天我们在刘老师的带领下主要完成了工程  jspservlet_1  的编写,其主要功能内容为工程名下子目录 cn.neusoft.action 中的 ListAllAciton.java 和 LoginAction.java 两个servlet类。前者的作用在于在网页中以三列的表格的形式显示数据库中所有人员的姓名username、用户编号userid和密码pwd,后者的作用则为让访问网页的用户进行登录操作,下面附上代码



//Users.jsp文件,实际访问网页的时候主要是访问这个页面,其中就调用了ListAllAction文件中的方法,附上的代码是文件中的主要部分

<body>

<center><!-- 在网页中居中显示 -->

<h1>用户列表</h1>

<table border="1">

<tr>

<td>用户编号</td>

<td>用户名</td>

<td>用户密码</td>

</tr>

<!-- 第二行开始作信息显示,信息较多使用循环 -->

<!-- c:foreach 标签的 items 是用来接收数据的,var用于定义别名 -->

<c:forEach items="${users}" var="d">

<!-- 此处使用了c标签,foreach表示循环,后面的${  }为EL表达式,作为在本页面中接收其他文件传来数据的容器 -->

<tr>

<!-- ${d.userid }中 . 后面的userid是Userinfo实体类中属性的名字,必须严格对应大小写 -->

<td><a href="#">${d.userid}</a></td>

<td>${d.username}</td>

<td>${d.pwd}</td>

</tr>

</c:forEach>

</table>

</center>

</body>

//ListAllAction   

public class ListAllAciton extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//网页编码设置

response.setContentType("text/html");

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

//获取数据

UserinfoDao userinfoDao = new UserinfoDaoImpl();

List<Userinfo> list = userinfoDao.testListAll();

//把信息传递给页面再跳转

//注意,这里使用的是“request”转发,这种情况可以携带数据,相对的“response”重定向则不能携带数据

request.setAttribute("users", list);

request.getRequestDispatcher("Users.jsp").forward(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}



 //login.jsp文件,实际访问网页的时候主要是访问这个页面,其中就调用了LoginAction文件中的方法,附上的代码是文件中的主要部分

<body>

<form action="LoginAction" method="get">

用户名:<input type="text" name="username" id="username"

placeholder="请输入账户" required="required"/>

<font color="red">${unameErr }</font>

<br/>

密    码:<input type="password" name="pwd" id="pwd"

placeholder="请输入密码" required="required"/>

<font color="red">${pwdErr }</font>

<br/>

<input type="submit" value="登录"/>

</form>

</body>

//LoginAction

public class LoginAction extends HttpServlet {

//如果具体页面文件里的方法写的是  get  那么尽可能在doGet里写具体方法   反之写的post  就在doPost里面写方法

//即上面一段代码中标红的    method="get"

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

response.setCharacterEncoding("utf-8");

request.setCharacterEncoding("utf-8");

//获取页面中输入的信息   request.getParameter("username")  username 是对应的网页中 input 框的  name

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

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

System.out.println("获取的用户名"+username);

System.out.println("获取的密码"+pwd);

//乱码转换    可以将 ISO-8859-1 标准转为  utf-8   也可以转换成别的形式

username = new String (username.getBytes("ISO-8859-1"),"utf-8");

System.out.println("转码之后的用户名:"+username);

UserinfoBiz biz = new UserinfoBizImpl();

String msg = biz.UserLogin(username, pwd);

//根据返回的结果,进行页面跳转

if(msg.equals("ok")){

request.setAttribute("uname", username);

request.getRequestDispatcher("WEB-INF/jsp/success.jsp").forward(request, response);

}else if(msg.equals("unameErr")){

request.setAttribute("unameErr", "用户名错误!");

request.getRequestDispatcher("login.jsp")

.forward(request, response);

}else if(msg.equals("pwdErr")){

request.setAttribute("pwdErr", "密码错误!");

request.getRequestDispatcher("login.jsp").forward(request, response);

}



夏季学期软工综合实践小记(二)

时间: 07-01

夏季学期软工综合实践小记(二)的相关文章

夏季学期软工综合实践小记(一)

本周是软工方面夏季学期的第一周,前三天我们在东软讲师刘老师的带领下完成了接下来的日子中需要的编程软件MyEclipse和数据库应用软件Navicat for MySQL以及相关环境的配置安装,并在后来的学习中逐步回顾了曾在数据库原理课程中学习过的SQL语句及其使用. 课堂上刘老师带领我们对JDBC.Java Servlet等常用编程框架作了了解,并讲授了不少软件的使用和编码的快速补全技巧,如: 在编程中可以通过快捷键 alt+shift+s 快速生成常用的 get().set()或是构造方法 在

软工综合实践 学习笔记02

在这次软件工程时间的短学期课程中,我学到了很多东西,现在重点说一下在本次课程中对我来说比较难也是比较感兴趣的地方:关于映射请求和返回值. 首先是@RequestMapping映射请求的一些知识点 1.Spring MVC使用@RequestMapping注解为控制器制定可以处理哪些URL请求 2.在控制器的类定义及方法定义处都可标注 类定义处:提供初步的请求映射信息.相对于WEB应用的根目录. 方法处:提供进一步的细分映射信息.相对于类定义处的URL,若类定义处未标注@RequestMappin

软工综合实践 学习笔记01

先谈一下关于SpringMVC概述 MCV在B/S系统下的应用: 用户发起request请供求至控制器(Controller) *控制接受用户请求的数据,委托给模型进行处理 控制器通过模型(Model)处理数据并得到处理结果 *模型通常是指业务逻辑 模型处理结果返回给控制器 控制器将模型数据在视图(View)中展示 *web中模型无法将数据直接在视图上显示,需要通过控制器完成.如果在C/S应用中模型是可以将数据 在视图中展示的. 控制器将视图response响应给用户 *通过视图展示给用户要的数

第二次小学期软工实践随笔

小学期后面两天的学习,我们进一步完善了我们的ssh框架,在Dao和Service包下我们声明好我们需要的操作方法: package com.crm.dao;import java.util.List;import com.crm.bean.Cust;public interface CustDao { /** * 保存客户信息 * @param cust */public void saveCustomer(Cust cust);/** * 删除客户信息 * @param cust */publ

该死的软工实践

这学期给我最大的感觉是比之前的每学期过得都快,可能是比较忙吧.还记得刚开始的时候,栋哥说可以退选实验的时候,有人和我说:”好像软工实践很麻烦的样子,要不我们退了吧“.其实,我也有打过退堂鼓,以为自己学也可以做点东西,但是我还是抱着这样的想法”找个大腿抱,水一水吧,毕竟过了这学期,又可以少修几学分了“,然后就没有去退选了.接下来就是开始这软工实践的日子.该开始总是想得很美好,以为这学期结束会有一个产品,上面写着made by ***,到最后还是生出了一个比较low的东西,那是第一次真正实践的东西,

软工项目总结

这学期软工小组的开发就快结束了,回想整个开发过程,感慨颇多. 首先是刚开学时的组队和选题,我们各自提了好多项目,有的太简单,有的没有价值,有的又太不切实际,最终我们选定付千山同学在高中设计的游戏作为题目,因为这既新颖又有前期调研,而且也比较有趣. 但其实,我之前从来没有游戏开发的经验,组员们也只了解一两门语言,几乎没有大型项目开发经验.所以,这次项目从技术选型到开发都是一边摸索一边做.现在回过头去看,有得有失.首先,Travis CI 的学习和使用是非常正确的决定,因为后端运行环境比较苛刻,不方

2017年秋软工-领跑衫获奖感言&amp;我最感谢的人

啥都不说,先上幅图.获得领跑衫,开心. 一.回忆 这是我第二次来上恩师杨的软件工程,第一次是2016年春,那时候我还是本科三年级的学生.忘了第一次为啥去蹭课,印象中是我的榜样亮哥把我给忽悠过去的?我也记不清了,这并不重要.第一次上软工课,迷糊.忐忑,人很少,除了软件所的师兄师姐以外,也就五六人来上课,而我在中期过后,由于想去外面的世界浪一浪,就跑到杭州实习去了,也就没把恩师的第一次软工课完整上完,遗憾 .而庆幸的是我这个不咋滴的研究生身份,让我有机会再次来上恩师杨的软工课.这次我依然是作为一名旁

个人阅读作业2 软工方法论无用?

初步看了推荐的文章以后,我选择了最后一篇文章来阅读,原因是“软件工程的方法论到底有多少用处”这个问题也是我目前很大的一个疑问,于是我决定首先看看这篇文章怎么说. 文章在开头举了一个离我们很近的例子:结对编程到底是解决了代码评审的问题还是无谓地增加了沟通成本?作者提出增加沟通成本的意思很清楚:结对编程非但没有逃避代码评审的繁复,却增加了额外的工作量:沟通,并且这些沟通并没有起到期望的作用:使一段代码由两个人看过以后更加完美.我在结对编程中便遇到了这样的问题,当一个人在写代码时,他的思维运转是比较快

往届软工实践作品评述

描述 作品的内容:作品源于的平台或链接:你觉得的作品的优势和不足:你觉得入选你心目中最佳前三的理由:经过调研后,你的感受和对自己团队项目的期待. 作品一 作品的内容: Phylab-Web 官方描述: 支持通过选择物理实验序号进入相应物理实验预习报告页面. 个人理解: 一个制作物理实验预习报告的页面. 作品源连接: https://github.com/buaase/Phylab-Web/blob/master/docs/User-Interface.md 优势: 贴近大学生的实际需要,并且制作