软件工程概论--课后作业1
作业概况:
1.网站系统开发所需技术
1.基础内容
网页设计概述、网站设计制作的基本流程、色彩搭配在网站中的应用、网站用户界面的设计、网站广告的设计、网站中表格的使用、网站中层的应用、框架网站的制作、模板网站的制作、使用行为和Javascript制作特效、使用css样式表设计网页、建设数据库网站、
2、技术内容
HTML语法、css语法、JavaScript语法
3、图像处理
Flash动画创意、GIF动画制作、网页图片处理
4、行业网站实例
个人网站、企业宣传网站、新闻资讯网站、教育网站、电子政务网站、旅游网站、免费资源网站、门户网站、电子商务网站
5、后台编程
*数据库:SQLServer设计、MySQL设计、Access设计
*编程语言:ASP、JSP、VBScript、JavaScript、PHP、ASP.net
*编程实例:文章发布系统、留言板、BBS、会员注册系统、在线购物网站
6、网站管理
网站维护、网站规划、网站管理、商业网站全程制作、商业网站开发规范
2.源代码
1.代码思想:
将用户信息设置一个User类,有编号、用户名、密码等私有属性,公有的get、set方法,然后 将用户信息操作设置一个接口IUserDao,利用UserDaoImpl类实现接口,实现具体操作。因为要实现数据库信息的查找,所以将连接数据库写入DBUtil类中,可能操作会出错,错误异常写在UserException类中,然后是应用页面显示,所以利用.jsp,设计一个主登录界面addInput.jsp,因为登录的实质即是在数据库中查找相应信息,若表中有此条信息,则显示表中信息、登录成功,若无,则登录失败查找界面:load.jsp。
数据库的连接:1.加载驱动 2.创建连接对象 3.创建语句传输对象 4.接收结果集 5.遍历 6.关闭资源。
2.源代码
User类:
package com.jaovo.msg.model;public class User {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
IUserDao类:
package com.jaovo.msg.dao; import java.util.List; import com.jaovo.msg.model.User; public interface IUserDao {public void add(User user);public void delete(int id);public void update(User user);public User load(int id);public User load(String username);public List<User> load(); }
UserDaoImpl 类:
package com.jaovo.msg.dao;import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List;import com.jaovo.msg.Util.DBUtil; import com.jaovo.msg.Util.UserException; import com.jaovo.msg.model.User; import sun.net.www.content.text.plain; public class UserDaoImpl implements IUserDao {@Overridepublic void add(User user) {//获得连接对象Connection connection=DBUtil.getConnection();//准备sql语句String sql="select count(*)from t_user where username= ?";//创建语句传输对象PreparedStatement preparedStatement=null;ResultSet resultSet=null;try {preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1, user.getUsername());//接收结果集resultSet=preparedStatement.executeQuery();//遍历结果集while(resultSet.next()){if(resultSet.getInt(1)>0)throw new UserException("用户已存在");}sql="insert into t_user(username,password) value (?,?)";preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1, user.getUsername());preparedStatement.setString(2, user.getPassword());preparedStatement.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{//关闭资源 DBUtil.close(resultSet);DBUtil.close(preparedStatement);DBUtil.close(connection);}}public void delete(int id) {Connection connection=DBUtil.getConnection();String sql="delete from t_user where id=?";PreparedStatement preparedStatement=null;try{preparedStatement=connection.prepareStatement(sql);preparedStatement.setInt(1, id);preparedStatement.executeUpdate();}catch(SQLException e){e.printStackTrace();}finally{//关闭资源 DBUtil.close(preparedStatement);DBUtil.close(connection);}}public void update(User user) {//获得连接对象Connection connection=DBUtil.getConnection();//准备sql语句String sql="update t_user set password=? where id= ?";//创建语句传输对象PreparedStatement preparedStatement=null;try {preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1, user.getPassword());preparedStatement.setInt(2, user.getId());preparedStatement.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}finally{//关闭资源 DBUtil.close(preparedStatement);DBUtil.close(connection);}}@Overridepublic User load(int id) {//获得连接对象Connection connection=DBUtil.getConnection();//准备sql语句String sql="select * from t_user where id = ?";//创建语句传输对象PreparedStatement preparedStatement=null;ResultSet resultSet=null;//集合中只能放User对象User user=null;try {preparedStatement=connection.prepareStatement(sql);preparedStatement.setInt(1, id);resultSet=preparedStatement.executeQuery();//遍历结果集while(resultSet.next()){user=new User();user.setId(id);user.setUsername(resultSet.getString("username"));user.setPassword(resultSet.getString("password"));}} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}finally{//关闭资源 DBUtil.close(resultSet);DBUtil.close(preparedStatement);DBUtil.close(connection);}return user;}@Overridepublic User load(String username) {//获得连接对象Connection connection=DBUtil.getConnection();//准备sql语句String sql="select * from t_user where username = ?";//创建语句传输对象PreparedStatement preparedStatement=null;ResultSet resultSet=null;//集合中只能放User对象User user=null;try {preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1,username);resultSet=preparedStatement.executeQuery();//遍历结果集while(resultSet.next()){user=new User();user.setUsername(username);user.setId(resultSet.getInt("id"));user.setPassword(resultSet.getString("password"));} } catch (SQLException e) {e.printStackTrace();}finally{//关闭资源 DBUtil.close(resultSet);DBUtil.close(preparedStatement);DBUtil.close(connection);} return user; }@Overridepublic List<User> load() {//获得连接对象Connection connection=DBUtil.getConnection();//准备sql语句String sql="select * from t_user ";//创建语句传输对象PreparedStatement preparedStatement=null;ResultSet resultSet=null;List<User> users=new ArrayList<User>();User user=null;try {preparedStatement=connection.prepareStatement(sql);resultSet=preparedStatement.executeQuery();//遍历结果集while(resultSet.next()){user=new User();user.setId(resultSet.getInt("id"));user.setUsername(resultSet.getString("username"));user.setPassword(resultSet.getString("password"));users.add(user);}} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}finally{//关闭资源 DBUtil.close(resultSet);DBUtil.close(preparedStatement);DBUtil.close(connection);}return users;}}
DBUtil 类:
package com.jaovo.msg.Util;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class DBUtil {public static Connection getConnection() {//1 加载驱动try {Class.forName("com.mysql.jdbc.Driver").newInstance();} catch (InstantiationException e1) {// TODO Auto-generated catch block e1.printStackTrace();} catch (IllegalAccessException e1) {// TODO Auto-generated catch block e1.printStackTrace();} catch (ClassNotFoundException e1) {// TODO Auto-generated catch block e1.printStackTrace();}String user = "root";String password = "root";String url = "jdbc:mysql://localhost:3306/test";Connection connection = null;try {//2 创建链接对象connectionconnection = DriverManager.getConnection(url,user,password);} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}return connection;}//关闭资源的方法public static void close(Connection connection ) {try {if (connection != null) {connection.close();}} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}}public static void close(PreparedStatement preparedStatement ) {try {if (preparedStatement != null) {preparedStatement.close();}} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}}public static void close(ResultSet resultSet ) {try {if (resultSet != null) {resultSet.close();}} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}}}
UserException 类:
package com.jaovo.msg.Util;public class UserException extends RuntimeException{public UserException() {super();// TODO Auto-generated constructor stub }public UserException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {super(message, cause, enableSuppression, writableStackTrace);// TODO Auto-generated constructor stub }public UserException(String message, Throwable cause) {super(message, cause);// TODO Auto-generated constructor stub }public UserException(String message) {super(message);// TODO Auto-generated constructor stub }public UserException(Throwable cause) {super(cause);// TODO Auto-generated constructor stub }}
addInput.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head><tr align="center"><h2 style="color:black ; font-size:50px ;">用户登录页面</h2> </head> <body><h2 style="color:red ;"><%=request.getAttribute("error") %></h2><form action="load.jsp" method="get"><table align="center" border="1" width="500"><tr><td>用户名称 : </td><td><input type="text" name="username" /></td></tr><tr><td>用户密码:</td><td><input type="password" name="password" /></td><tr align="center"><td colspan="2"><input type="submit" value="登录" /><input type="reset" value="重置" /></td></tr></table></form> </body> </html>
add.jsp
<%@page import="com.jaovo.msg.Util.UserException"%> <%@page import="com.jaovo.msg.dao.UserDaoImpl"%> <%@page import="com.jaovo.msg.model.User"%> <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <%//接收客户端传递过来的参数String username = request.getParameter("username");String password = request.getParameter("password");if(username == null || "".equals(username.trim())){request.setAttribute("error", "用户名不能为空");%><jsp:forward page="addInput.jsp"></jsp:forward> <%}User user2=new User();UserDaoImpl userDao = new UserDaoImpl();user2=userDao.load(username); if((user2==null)){request.setAttribute("error", "用户不存在");%><jsp:forward page="addInput.jsp"></jsp:forward><% }else if((!(user2.getPassword().contentEquals(password))&&user2!=null)){request.setAttribute("error", "用户密码输入错误");%><jsp:forward page="addInput.jsp"></jsp:forward><% }else{//重定向response.sendRedirect("List.jsp");%>用户登录成功<br><table align="center" border="1" width="500"><tr><td>用户编号</td><td>用户名称</td><td>用户密码</td></tr><%%><tr><td> <%=user2.getId() %></td><td> <%=user2.getUsername() %></td><td> <%=user2.getPassword() %></td></tr><%%></table><a href="addInput.jsp">返回登录界面</a><br> <% } %> </html>
3.运行结果截图
表中信息:
先输入正确用户名和密码:3 3
显示界面:
输入正确用户名:1 错误密码2
显示:
输入用户名、密码错误:6 6
4.我希望自己会成为自愿在深水区游泳的人,会努力在深水区生存。
目标:希望自己可以在团队作业中培养团队精神,独立的开发一项简单软件,对于软件生命周期的各个阶段有实际的了解,对于软件设计有实际的掌握,对敏捷软件开发的具体技术有实践能力。
周二 :早晨-下午 完成作业和自行拓展(也可归纳)
周四 :中午-下午 课后复习和归纳
周天 :早晨 预习和自行拓展
转载于:https://www.cnblogs.com/zhao-teng-ass/p/7885250.html
软件工程概论--课后作业1相关推荐
- 软件工程概论 课后作业1
网站系统开发需要掌握的技术: 1. 网页上要显示内容,需要学学HTML 2. 光有文字还不行,还要考虑不同的颜色,布局,排版,如图做出这样页面效果,要学学基本的CSS 3. 有一些交互,比如修改了代码 ...
- 软件工程概论课后作业01
1. 网站系统开发需要掌握的技术 ①java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP,Servlet,JDBC,JavaBean(Application)四部分技术 ...
- 软件工程概论课堂作业3
题目:返回一个整数数组中最大子数组的和 要求: 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个 ...
- 软件工程概论第一次作业
[习题] 一.单项选择 1.软件是计算机系统中与硬件相互依存的另一部分,它是包括( 1 B ).( 2 A )及( 3 D )的完整集合.其中,( 1 B )是按事先设计的功能和性能要求执行的 ...
- 软件工程概论课堂作业二维数组
结对作业 结对人员:曹婷婷,王凯路 设计思想:先输入一个二维数组,通过遍历二维数组,找到一个正数,确定它的下标,判断是否联通通过判断二维数组的下标假设找到一个正数,它的下标为i和j,如果找到的下一个数 ...
- 软件工程概论个人作业02
可怜的二柱子同学,老师又对他的自动出题系统提出了新的要求: 1.题目避免重复: 2.可定制(数量/打印方式): 3.可以控制下列参数: 是否有乘除法: 是否有括号(最多可以支持十个数参与计算): 数值 ...
- 软件工程概论个人作业02(四则运算2)
1.设计思想: 在四则运算1的基础上,多加了几个要求,是否有乘除法可以通过不同的选择然随机生成符号的函数有时候生成两个数字对应加减,有时候生成四个数对应加减乘除:括号没有实现:数值范围通过一个函数实现 ...
- 软件工程概论-合作作业02-四则运算网页答题
题目:四则运算web版:把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目,并可实现在线答题并评判 四则运算web版的程序设计思想:之前的程序是可以用户自定义生成任意个数四则运算题目的,这次 ...
- 国科大算法概论课后作业
1. 求解下述递归关系的渐进界 a. T(n) = 9T(n/3) + n b. T(n) =T(2n/3) +1 c. T(n) = 3T(n/4) + nlgn 解: 2.算法设计 假定我们开着一 ...
最新文章
- Oracle 10g 中通过DBLink访问MySQL数据库
- 让我们一起来起花名吧
- C#读取与修改XML文档
- .Net 3.5 Remoting编程入门三
- linux中mpich的运行线程,贝叶斯法构建进化树:MrBayes
- 剑指offer.从未到头打印链表
- Excel 公式 lenB无效 解决方案
- RK3399平台开发系列讲解(USB设备驱动)5.31、使用usb gadget configfs配置USB功能
- 移动光猫路由改桥接降低延时初尝试
- linux各个版本简介 (未完待续)
- UVA - 10410 -通过dfs序列和bfs序列还原树
- 国风就是帅,会三板吗,看看新天吧
- android手机为什么越用越卡
- 《新型智慧城市总体规划导则》发布
- mybatis:Error preparing statement. Cause: java.lang.NullPointerException
- python实现离散点图画法
- 目前A股市场情绪未定,假期前多看少动?后市大概率分化轮动!
- 通过4A系统登录服务器,JD-4A 统一身份管理系统
- 字符串匹配KMP算法的理解(详细)
- GIF 89a图像格式解析
热门文章
- html 分页 惰性加载,懒加载实现的分页网站footer自适应
- python查询千万级数据_Python批量删除mysql中千万级大量数据
- 北京大学生物信息学课程(5)
- word2vec原理_初识word2vec词向量
- 现代分类方法在医学诊断中的应用——基于R的实现
- 高中信息技术—Python常见关键字及函数中英文对照
- “21天好习惯“第一期-4
- mysql读写分离 保持数据一致性_读写分离数据库如何保持数据一致性
- IP与以太网的包收发操作
- 为何说要多用组合少用继承?