软件工程概论--课后作业1

2023-05-16

         作业概况:

                           

   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 {

    @Override
    public 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);
            
        }
        
        
    }

    @Override
    public 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;
    }

    @Override
    public 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;    
    }

    @Override
    public 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 创建链接对象connection
             connection = 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件工程概论--课后作业1 的相关文章

  • 摄像头PIN脚功能作用

    摄像头PIN脚功能作用 xff0c Camera硬件系统分析 9 f E 43 E2 b N j4 M2 U a q9 A T c amp O amp C x 43 l5 l q lt ignore js op gt 2015 8 19 1
  • mysql数据库基础知识总结

    这里把自己学的mysql数据库的知识总结一下 xff0c 当是给自己复习一遍 xff0c 也是方便以后查询 安装和配置mysql就不说了 xff0c 可以借鉴这位博友的安装过程 https www cnblogs com by330326
  • 软件质量特性及其子特性列表

    软件质量特性及其子特性列表 质量特性 详细 质量子特性 详细 功能性 与一组功能及其指定的性质有关的一组属性 这里的功能是指满足明确或隐含的需求的哪些功能 适合性 与规定任务能否提供一组功能及这组功能的适合程度有关的软件属性 准确性 与能否
  • android ndk开发之 extern "C" 编译出错

    感叹 xff1a 神一般的eclipse xff01 首先 我这么写 extern 34 C 34 void func 代码爆红 xff1a xff08 error expected identifier or before string
  • for(let i in data){}

    let obj 61 o 34 o 34 o1 34 o1 34 span style color 000000 span for let i in obj setTimeout function console log i 转载于 htt
  • flask框架基本使用

    目录 x1f340 前言 x1f340 安装 x1f340 导入 x1f340 Hello World1 flask项目文件目录2 python文件内容示例 x1f340 路由处理 x1f340 配置1 修改app文件名 xff0c 文件夹
  • Hive 系列(四)—— Hive 常用 DDL 操作

    一 Database 1 1 查看数据列表 code show databases code 1 2 使用数据库 code USE database name code 1 3 新建数据库 语法 xff1a code CREATE DATA
  • SQL调用webApi

    有些时候对一些接口的调用放在数据库比放在程序里更好控制 xff0c 我这边用到的场景就是 xff0c 更具状态变化去调用 xff0c 我处理的方法就是放在 触发器里面 xff0c 只要状态数据变化就触发 xff0c 这样 xff0c 我就不
  • 第二种方式读取并显示HDFS中的内容

    1 讀取HDFS内容的java客戶端代碼 xff1a 1 package Hdfs 2 3 import java io InputStream 4 import java net URI 5 6 import org apache had
  • 更新镜像

    更新镜像这一概念 xff0c 会有两个完全不一样的概念 xff0c 需要先说清楚 1 更新FPGA的配置 这种方案对应Xilinx的bit文件下载和Intel Altera 的sof文件下载 xff0c 更新的是FPGA的配置 xff0c
  • Hadoop 单表关联

    前面的实例都是在数据上进行一些简单的处理 xff0c 为进一步的操作打基础 单表关联这个实例要求从给出的数据中寻找到所关心的数据 xff0c 它是对原始数据所包含信息的挖掘 下面进入这个实例 1 实例描述 实例中给出child parent
  • MFC获取字符串长度的5中方法

    char s1 61 34 中文ABC 34 wchar t s2 61 L 34 中文ABC 34 1 sizeof 获取字符数组的字节数 xff08 包括结束符0 xff09 sizeof s1 61 8 ANSI sizeof s2
  • python学习笔记(12)常用模块

    一 模块 包 什么是模块 xff1f 模块实质上就是一个python文件 它是用来组织代码的 xff0c 意思就是说把python代码写到里面 xff0c 文件名就是模块的名称 xff0c test py test就是模块名称 什么是包 x
  • python学习笔记(13)常用模块列表总结

    os模块 os remove 删除文件 os unlink 删除文件 os rename 重命名文件 os listdir 列出指定目录下所有文件 os chdir 改变当前工作目录 os getcwd 获取当前文件路径 os mkdir
  • python获取当前时间的用法

    python获取当前时间的用法 1 先导入库 xff1a import datetime 2 获取当前日期和时间 xff1a now time 61 datetime datetime now 3 格式化成我们想要的日期 xff1a str
  • nmap使用教程

    nmap简介 nmap是一个免费开放的网络扫描和嗅探的工具包 也叫网络映射器 nmap强大之处在于简单 易用 看一下nmap的基本功能 探测一组主机是否在线扫描主机端口 嗅探所提供的网络服务 推断出主机所用的操作系统丰富的脚本功能 wind
  • awk命令中BEGIN和END的作用

    BEGIN中的内容表示在awk起作用 xff08 扫描 xff09 前执行 xff0c 通常被用来初始化一些常量或者环境变量 END表示END之后的操作内容在awk全部扫描完之后执行
  • 国外最漂亮的50个网站欣赏

    http news cnblogs com n 44079 转载于 https www cnblogs com starcrm archive 2008 12 23 1360212 html
  • 串口的Hex/AscII发送与显示

    都要大四了还搞不清这个概念也真是丢脸 首先 xff0c 底层的数据传输都是字节流 xff0c 所以不管选择什么方式 xff0c 都会被分解为一个一个的字节 1选择Hex发送就代表你要发送的内容是纯数字 xff0c 由程序完成String到I
  • vue 数组对象取值

    转载于 https www cnblogs com classmethond p 10799334 html

随机推荐