软件工程概论课后作业01

1. 网站系统开发需要掌握的技术

①java语言

Java语言体系比较庞大,包括多个模块。从WEB项目应用角度讲有JSP,Servlet,JDBC,JavaBean(Application)四部分技术。JDBC可做三件事情:与数据库建立连接,发送SQL语句,处理结果。Servlet从客户端(通过WEB服务器)接受请求,执行某种操作,然后返回结果。JSP是从Servlet上分离出来的一小部分,简化了开发,加强了页面设计。JavaBean能提供常用功能并且可以重复使用,这使得开发人员可以把某些关键功能和核心算法提取出来封装成为一个组件对象,这样就增加了代码的重用率和系统的安全性。

②面向对象分析设计思想

Java语言是完全面向对象的语言,所以在项目设计时会有很大的帮助,在设计时应尽量舍弃以往的面向过程的设计方式。

③设计模式和构架结构

设计模式在java项目实施过程更是重中之重。主要在与两层的设计模式,三层的设计模式和N层的设计模式。它直接决定着项目的应用,部署和实际开发设计。

④XML语言

在服务器和设计模式结构中会应用到自定义文件,而且在应用高级设计时也会定义自用的标签,现在流行的是用XML去定义配置,所以XML语言应该有一定掌握。XML大致可以分为3类,分别是简单数据的表示和交换,面向消息的计算,用户界面相关。

⑤网页脚本语言

网页脚本语言的执行都是在客户端执行的,速度很快,并且大多数的操作与服务器没有交互计算,所以在一些应用中非常理想。在设计WEB项目的应用中,网页的脚本语言起着不能忽视的作用,对JAVAScript应有一定的了解。

⑥开发工具

数据库,Web服务器,集成开发环境

2.源代码

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();
}
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,nickname) value (?,?,?)";preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1, user.getUsername());preparedStatement.setString(2, user.getPassword());preparedStatement.setString(3, user.getNickname());preparedStatement.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch block
            e.printStackTrace();}finally {//关闭资源
            DBUtil.close(resultSet);DBUtil.close(preparedStatement);DBUtil.close(connection);}}@Overridepublic 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) {// TODO Auto-generated catch block
            e.printStackTrace();}finally {DBUtil.close(preparedStatement);DBUtil.close(connection);}}@Overridepublic void update(User user) {Connection connection = DBUtil.getConnection();//准备sql语句String sql = "update t_user set password = ? , nickname=? where id = ?";//创建语句传输对象PreparedStatement preparedStatement = null;try {preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1, user.getPassword());preparedStatement.setString(2, user.getNickname());preparedStatement.setInt(3, 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 = 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"));user.setNickname(resultSet.getString("nickname"));}} 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) {// TODO Auto-generated method stubreturn null;}@Overridepublic List<User> load() {Connection connection = DBUtil.getConnection();//准备sql语句String sql = "select * from t_user ";//创建语句传输对象PreparedStatement preparedStatement = null;ResultSet resultSet = null;//集合中只能放入user对象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"));user.setNickname(resultSet.getString("nickname"));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;}}
package com.jaovo.msg.model;public class User {private int id;private String  username;private String  nickname;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 getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
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() {try {//1 加载驱动Class.forName("com.mysql.jdbc.Driver").newInstance();} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {// TODO Auto-generated catch block
            e.printStackTrace();}String user = "root";String password = "root";String url = "jdbc:mysql://localhost:3306/jaovo_msg";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();}}}
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
    }}
<%@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");String nickname = request.getParameter("nickname");if(username == null || "".equals(username.trim())){request.setAttribute("error", "用户名不能为空");%><jsp:forward page="addInput.jsp"></jsp:forward>
<%}User user = new User();user.setUsername(username);user.setPassword(password);user.setNickname(nickname);UserDaoImpl userDao = new UserDaoImpl();try{userDao.add(user);//重定向response.sendRedirect("list.jsp");
%><%}catch(UserException e){
%><h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2><%}%>
</html>
<%@ 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><title>用户添加页面</title>
</head>
<body><%=request.getAttribute("error") %><form action="add.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><tr><td>用户昵称:</td><td><input type="text" name="nickname" /></td></tr><tr align="center"><td colspan="2"><input type="submit" value="提交" /><input type="reset" value="重置" /></td></tr></table></form>
</body>
</html>

3.运行结果截图

 

 4.列出你对这门课的希望和自己的目标,并具体列出你计划计划每周花多长时间在这门课上。

 可以自己开发系统,创建登录界面。

计划除了能够在规定时间内完成作业,课下也应该要花费很多时间多用于编程上面。计划每周花费28个多小时用于编程。

转载于:https://www.cnblogs.com/lijing925/p/7876039.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql low_case_MySQL8.0的坑之lower_case_table_names

在安装了8.0.14之后&#xff0c;初始化的时候在my.cnf里设置了lower_case_table_names1&#xff0c;安装好了之后&#xff0c;启动报错&#xff1a;2019-01-28T13:24:24.91946308:00 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.14) starting as…

php5.4 mysql connect_php5.4 Call to undefined function mysql_connect()

今天学习PHP中连接MySQL&#xff0c;使用mysql_connect()函数时&#xff0c;碰到以下错误&#xff1a;“Call to undefined function mysql_connect()”&#xff0c;PHP版本&#xff1a;5.4.29MySQL版本&#xff1a;5.5.28Apache版本&#xff1a;2.2.22解决方法如下&#xff1a…

Js slice()方法和splice()方法

1、slice(start,end) 从已有的数组中返回选定元素,参数start必填&#xff0c;end选填 <script>delArray();function delArray(){var workExp["早上","中午","下午","晚上"];var a workExp.slice(0,3);//早上&#xff0c;中午&am…

mysql 参数bug_MySQL 的这个 BUG,坑了多少人?

作者&#xff1a;腾讯数据库技术来源&#xff1a;cloud.tencent.com/developer/article/1367681▌问题描述近期&#xff0c;线上有个重要Mysql客户的表在从5.6升级到5.7后&#xff0c;master上插入过程中出现"Duplicate key"的错误&#xff0c;而且是在主备及RO实例上…

mongodb 2php 操作

1连接 db.getCollection(test).find({}) // 连接Mongo数据库 数据库地址:端口/账号:密码; $mongo new Mongo(mongodb://localhost:27017/admin:admin); $this->link new \MongoClient(mongodb://user:passwordhost:port/dbname); // 选择一个数据库和要操作的集(如果没有…

i9 9900k mysql_i9-9900K和9900KS有什么区别?i9-9900KS和i9-9900K区别对比评测

众所周知&#xff0c;i9-9900KF相当于i9-9900K去除核显的版本&#xff0c;其它参考保持一致&#xff0c;所以在性能上也是相同的。不过在近期&#xff0c;intel牌牙膏厂再一次发布了一款九代酷睿i9-9900KS特别版&#xff0c;从产品型号S后缀上来看&#xff0c;确实有点类似于NV…

Memory及其controller芯片整体测试方案(上篇)

如果你最近想买手机&#xff0c;没准儿你一看价格会被吓到手机什么时候偷偷涨价啦&#xff01; 其实对于手机涨价&#xff0c;手机制造商也是有苦难言&#xff0c;其中一个显著的原因是存储器芯片价格的上涨↗↗↗ >>> 存储器memory的江湖地位 存储器memory&#xff0…

MySQL水表查询系统_水费管理系统

数据库-水费管理系统根据数据库设计步骤&#xff1a;需求分析、逻辑结构设计、概念结构设计、物理结构设计、数据库实施、数据库的运行和维护等几个阶段来执行的。现在处于前期准备阶段。由于之前一直考试&#xff0c;也没有把它具体实现&#xff0c;在接下来的一段时间里会逐渐…

SVN中如何去除版本控制器

https://www.cnblogs.com/lrzr/p/6079772.html转载于:https://www.cnblogs.com/ZkbFighting/p/7886762.html

mysql编译安装后目录空_MySQL源码安装完成后修改安装路径启动问题

在Linux上源码编译安装完mysql后&#xff0c;又将安装的路径进行了修改&#xff0c;但是发现在设置后环境变量后启动报错&#xff0c;如下&#xff1a;[rootHServer_03 var]# mysqld_safe --usermysql &[1] 31248[rootHServer_03 var]# 110422 11:04:00 mysqld_safe Loggin…

mac下用xattr命令来删除文件的扩展属性

mac下发现不能用记事本打开文本文件&#xff0c;ls -la 发现格式后面有个 [plain] view plaincopy wenke-mini:changeServer wenke$ ls -la total 144 drwxr-xr-x 20 wenke staff 680 6 4 16:37 . drwxr-xr-x 22 wenke staff 748 6 3 16:54 .. -rw-r--r-- 1…

mysql 5.6 修改端口_mysql5.6.24怎么修改端口号

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. Its a template which will be copied to the# *** default loca…

BootStrapJS——modal弹出框

学习参考视频https://ninghao.net/video/1615 1.对话框 - Modal 需要bootstrap的CSS文件引入&#xff0c;以及jQuery的js包 1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>弹窗测试&…

mysql 自动备份删除_mysql自动备份删除5天前的备份

1、查看磁盘空间情况&#xff1a;# df -h2、创建备份目录&#xff1a;上面我们使用命令看出/home下空间比较充足&#xff0c;所以可以考虑在/home保存备份文件&#xff1b;cd /homemkdir backupcd backup3、创建备份Shell脚本:注意把以下命令中的DatabaseName换为实际的数据库名…

mysql多表查询方式_MySQL多表查询方式问题

你的 SQL 没有用到任何索引&#xff0c;对 a b 两个表都是全表扫描&#xff0c;在数据量小的时候是没有问题的&#xff0c;但是如果数据量超过 100 万&#xff0c;性能问题就会突显出来。这里不清楚你的 created_at 字段是什么类型&#xff0c;不过从你的代码 DATE_FORMAT(crea…

IpV4 TCP

&#xff49;&#xff50;&#xff56;&#xff14;头基本是&#xff12;&#xff10;个字节&#xff0c;最多&#xff16;&#xff10;个个&#xff08;&#xff29;&#xff28;&#xff2c;域限定4bit 15*460【最多&#xff11;&#xff15;个&#xff14;字节&#xff0c;即…

mysql.ini环境配置_MySQL配置文件mysql.ini参数详解

my.ini(Linux系统下是my.cnf)&#xff0c;当mysql服务器启动时它会读取这个文件&#xff0c;设置相关的运行环境参数。my.ini分为两块&#xff1a;Client Section和Server Section。Client Section用来配置MySQL客户端参数。要查看配置参数可以用下面的命令&#xff1a;show va…

【BZOJ3677】[Apio2014]连珠线 换根DP

【BZOJ3677】[Apio2014]连珠线 Description 在列奥纳多达芬奇时期&#xff0c;有一个流行的童年游戏&#xff0c;叫做“连珠线”。不出所料&#xff0c;玩这个游戏只需要珠子和线&#xff0c;珠子从1到礼编号&#xff0c;线分为红色和蓝色。游戏开始时&#xff0c;只有1个珠子&…

mysql数据备份在哪里_mysql之数据备份与恢复

本文内容&#xff1a; 复制文件法利用mysqldump利用select into outfile其它(列举但不介绍)首发日期&#xff1a;2018-04-19有些时候&#xff0c;在备份之前要先做flush tables &#xff0c;确保所有数据都被写入到磁盘中。复制文件法&#xff1a;对于myisam存储引擎的数据库&a…

洛谷 P1852 奇怪的字符串

P1852 奇怪的字符串 题目描述 输入两个01串&#xff0c;输出它们的最长公共子序列的长度 输入输出格式 输入格式&#xff1a;一行&#xff0c;两个01串 输出格式&#xff1a;最长公共子序列的长度 输入输出样例 输入样例#1&#xff1a; 复制 01010101010 00000011111 输出样例#…