一、 找出函数中存在的问题。以下题目均在Lab05项目中完成。
1、 请给MySQLConnBean.java中的类和每个方法都加上注释
package org.easybooks.bookstore.jdbc; import java.sql.*; //用于JDBC的连接 public class MySQLConnBean { private Statement stmt=null; private Connection conn=null; private ResultSet rs=null; //创建数据库的连接 public void openConn() throws Exception { //通过驱动、MySQL的用户名密码获取连接 Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/test"; String user="root"; String password="123456"; conn=DriverManager.getConnection(url, user, password); } //执行SQL语句 public ResultSet execQuery(String sql){ //得到结果集 rs=null; try{ stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); }catch (SQLException e) { System.err.println("Data.executeQuery:"+e.getMessage()); } return rs; } //关闭statement public void closeStmt(){ //关闭statement try{ stmt.close(); }catch(SQLException e){ System.err.println("Data.executeQuery:"+e.getMessage()); } } //关闭数据连接,释放资源 public void closeConn(){//关闭连接 try{ conn.close(); }catch(SQLException e){ System.err.println("Data.executeQuery:"+e.getMessage()); } } }
2、 找出项目中存在的缺陷,并给出解决的方案(至少3个,不包含下面那个举例)。
说明:这里所说的缺陷不一定都是错误,而是明显需要改进的地方。
如:不可以无限输入密码,容易被暴力破解,存在安全隐患。
解决方案:密码输入3次错误,关闭浏览器。最好再加上验证码。
1.jsp里不可以写java代码,不符合MVC思想
解决方案:在src下面建立一个org.easybook.bookstore.service包,之后创建一个LoginService去完成在validate.jsp里面那些java代码实现的功能
2.error页面是空页面。
解决方案:在error.jsp中写出提示信息<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'error.jsp' starting page</title>
</head>
<body>
您好,您输入的账号或密码不正确,请重新输入
<br>
</body>
</html>
3.在login.jsp中<input type="text" name="password"><br>,中type应该是password,这样输入的密码不会被显示出来。比较安全。
解决:<input type="password name="password">
二、 请按要求对下面的Java代码进行测试。代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key的元素。
(1) 要求采用基本路径法给出程序控制流图;
(2) 算出环路复杂性
4
(3) 给出所有的独立路径,以及对应的测试用例和预期结果