软件工程概论课后作业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
软件工程概论课后作业01相关推荐
- 软件工程概论 课后作业1
网站系统开发需要掌握的技术: 1. 网页上要显示内容,需要学学HTML 2. 光有文字还不行,还要考虑不同的颜色,布局,排版,如图做出这样页面效果,要学学基本的CSS 3. 有一些交互,比如修改了代码 ...
- 软件工程概论--课后作业1
作业概况: 1.网站系统开发所需技术 1.基础内容 网页设计概述.网站设计制作的基本流程.色彩搭配在网站中的应用.网站用户界面的设计. ...
- 15软工课后作业01 P18 第四题
15软工课后作业01 P18 第四题 答:我选取了 Games(游戏).Tools(工具软件).OperatingSystems(操作系统)三种软件进行分析. 一.游戏软件:例如 腾讯游戏(王者荣 ...
- 尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业01
尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业第一题 要求: 1)在前面的基础上,将稀疏数组保存到磁盘上,比如map.data 2) 恢复原来的数组时,读取map.data进行恢复 ...
- 软件工程概论课堂作业3
题目:返回一个整数数组中最大子数组的和 要求: 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个 ...
- 软件工程概论第一次作业
[习题] 一.单项选择 1.软件是计算机系统中与硬件相互依存的另一部分,它是包括( 1 B ).( 2 A )及( 3 D )的完整集合.其中,( 1 B )是按事先设计的功能和性能要求执行的 ...
- 软件工程概论课堂作业二维数组
结对作业 结对人员:曹婷婷,王凯路 设计思想:先输入一个二维数组,通过遍历二维数组,找到一个正数,确定它的下标,判断是否联通通过判断二维数组的下标假设找到一个正数,它的下标为i和j,如果找到的下一个数 ...
- 软件工程概论个人作业02
可怜的二柱子同学,老师又对他的自动出题系统提出了新的要求: 1.题目避免重复: 2.可定制(数量/打印方式): 3.可以控制下列参数: 是否有乘除法: 是否有括号(最多可以支持十个数参与计算): 数值 ...
- 软件工程概论个人作业02(四则运算2)
1.设计思想: 在四则运算1的基础上,多加了几个要求,是否有乘除法可以通过不同的选择然随机生成符号的函数有时候生成两个数字对应加减,有时候生成四个数对应加减乘除:括号没有实现:数值范围通过一个函数实现 ...
最新文章
- PHP 读取Excel数据
- web服务高级使用 Samba共享
- python动态排名可视化_动态排名可视化 | 带你领略编程语言20年风云变化
- java中printarray和selectsort方法_算法题(一)
- word文字中带有数学公式的行间距设置
- 多给明年留些钱 明年必将要火的好手机
- Tomcat8.0.21登录时忘记用户名和密码
- SpringBoot-拦截器、过滤器、监听器
- python中怎样向字典中添加值_python的字典中,如何向指定路径添加值?
- 对象functionJavaScript: The Definitive Guide 权威指南,读书笔记(一)
- springboot之idea不合并空包
- 足球足球裁判昏招大全裁判昏招大全
- python实现CRAPS赌博游戏。
- jquery衬衣产品内容详情页
- Gitbub 常用命令
- Apache Marmony
- 中兴技面+综面+面试技巧
- python恶搞图_搞几款由“Python”语言编写的“有趣、恶搞、好玩”的程序代码!...
- The 13th tip of DB Query Analyzer, powerful processing EXCEL file
- 熵权法、主客观权重及matlab应用
热门文章
- hive 动态分区实现 (hive-1.1.0)
- 微信团队分享:微信移动端的全文检索多音字问题解决方案
- CodeForces 580A Kefa and First Steps
- jQuery常用的层次选择器
- 《学习OpenCV》课后习题解答1
- [转]Xcode的重构功能
- 一个简单的C#获取Session、设置Session类文件
- Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null
- 解决ListView 缓存机制带来的显示不正常问题
- Android 各控件的使用 - 按钮(Button)