夏季学期软工综合实践小记(二)
短学期的软工实践前五天的学习结束了,虽然在课堂中我们学到了很多以前从未接触过的如: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);
}
转载于:https://www.cnblogs.com/Mytheirage/p/7103457.html
夏季学期软工综合实践小记(二)相关推荐
- 软工课题——实验报告二
软工课题--实验报告二--需求分析 地址簿的功能性包括: 现在社会是注重交流的社会,如何储存他人的地址信息尤为重要.光靠人脑的记忆对于这么多人的信息是无济于事的,而地址簿则可以胜任这项工作.无论小到个 ...
- 2022年清华大学大数据研究中心 | 招募夏季学期《大数据实践课》合作企业
一.大数据研究中心简介 清华大学大数据研究中心于2018年9月成立,是清华大学建设世界一流大学.鼓励大数据领域的学科交叉的重要举措,是深入推进科研体制机制改革的重要里程碑.大数据研究中心发挥清华大学多 ...
- 【软工3】迭代二 心得体会及感想
Popush做完了,思绪万端. 就我个人而言,Popush项目是我这学期投入最多.做得最认真.持续时间最长的大作业.做到后来,感觉已经不是在做大作业,而是做一个产品了. 回想一个月前,迭代一结束.我们 ...
- 软工结对编程之二——UI设计(10061191洪虹10061162刘俊伟)
本次作业是软工课最后一次大作业,电梯程序的改良优化,我们的工程共有以下几个文件: 代码量约为1500行,以下为代码截图: 运行时虽然速度慢点,但是功能上没有问题,部分运行截图如下: 本次结对编程,时间 ...
- [沈航软工教学] 前十二周3,4班排行榜
团队排行榜图 团队排行榜表 团队博客 第一次作业 第二次作业 第三次作业 第四次作业 第五次作业 总分 sh_666 6 7 9 7 10 39 宇宙圣斗士队 7 5 9 4 6 31 奥特曼小分队 ...
- 深圳大学软工专硕数二英二改为数一英一,计算机专硕改为英一
谢谢昨天热心提供消息的同学~ 深圳大学科目变化如下: 计算机专硕由 英语二 变为 英语一. 软件工程专硕由 英语二数学二 变为 英语一数学一了. 2018考研: 2019考研: 看起来变得更难了. 数 ...
- 电科软工数漫图形学二2023期末、期中考点
期中 第一章--三维对象表示 八叉树概念.优点 1.将三维空间区域分成八等份,并且在树上的每个节点处存储8个数据元素(体元) 2.每个体元若为一个均质子区域,则存储该子区域的特征值,如颜色.材质.密度 ...
- [软工导论③]实验报告三(机票预订系统的需求分析建模、总体结构设计、详细设计、测试))
[软工导论③]实验报告二(教务管理系统之子系统的需求分析建模.总体结构设计.详细设计.测试)) 实验一 机票预订系统的需求分析 一.目的与任务 目的:确定项目要做什么及其可实施性,在此基础上完成系统的 ...
- 软工实践(二)——构建之法读后感
一.前情提要 在完成软工实践第一次作业之后,老师在我的博客中评论布置了一个任务,用一周的时间通读构建之法,然后提十个问题.本来我还担心这本书会不会很枯燥,能不能按时间看完,没想到这本书看起来妙趣横生, ...
最新文章
- mysql的字符串函数大全_MySQL的字符串函数大全
- 全套CRC校验的算法
- python之人脸识别
- 六十八、完成Vue项目推荐和周末游组件,并使用Ajax发起ajax请求
- C/C++学习之路: 模板和异常
- python定界符有哪些_Python 开发中有哪些高级技巧?
- Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4
- EMNLP'21 | 基于证据检索和图神经验证网络的表格事实验证模型
- 手撕代码合集[短期更新]
- matlab描点写函数,matlab描点并标上点的序号
- Excel VBA 宏编程入门
- C语言equivalent用法,C语言相当于'setw'函数
- win7您无权关闭计算机,win7不能关机的解决方法
- 洛谷 P3369 【模板】普通平衡树
- 特性(Attribute)
- LabVIEW Arduino无线蓝牙遥控智能车(项目篇—2)
- Alpine-Linux:仅5MB的Linux
- 台式win7f1到f12热键取消_Windows 7旗舰版系统中键盘F1到F12快捷键的作用详解
- linux挂接移动硬盘,LINUX挂接移动硬盘
- adobe 奥多比bridge extention等产品 “安装程序无法初始化。请下载Adobe Support Advisor检测该问题”