目录
方案三:JSP+JDBC+Servlet/JSP(过程控制)+JavaBean (DAO)
一、复数运算:
方案一:JSP
分析:整个程序可以由3个部分组成:输入页面、输出页面、中间运算界面(面向过程作运算)。
1、输入界面代码链接:https://paste.ubuntu.com/p/VbnbVKQSNg/
2、运算处理代码链接:https://paste.ubuntu.com/p/ZQKQhjQNrz/
3、输出页面(简易。。。):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String ans=(String)(request.getAttribute("result"));
%>
<%=ans %>
</body>
</html>
方案二:JSP+JavaBean
分析:
输入输出依然可以可以用jsp页面实现,中间的运算过程可以用 一个复数类 封装。整个程序分为4部分:
1、输入界面:同上。。。
2、输出界面:同上。。。
3、复数类:https://paste.ubuntu.com/p/Sstyb6cZhj/
(定义复数的四则运算,并可将一个复数实例 转换为String形式输出。
注意点:复数表达式的符号问题。)
4、中间过程控制jsp页面:https://paste.ubuntu.com/p/bx2Tyw6yWK/
方案三:JSP+Servlet
分析:
输入输出依旧不变,中间运算过程不用 封装好的复数类,采用面向过程的方式,
即把方案一的中间运算过程jsp换成servlet。
1、输入:略
2、输出:略
3、中间运算过程:https://paste.ubuntu.com/p/kFtwdVVDrN/
方案四:JSP+Servlet+JavaBean
分析:
输入输出不变,中间运算过程由 Servlet类通过调用 复数类完成。综上,分为四个部分。
1、输入:代码同上
2、输出:代码同上
3、复数类:同方案二Jsp+javaBean
4、复数运算Servlet:(功能:接受输入界面的值+调用复数类完成运算+保存运算结果到服务器+跳转到输出页面)
第四部分:Servlet 代码实现链接:https://paste.ubuntu.com/p/MNhxKmFsH6/
二、登录验证:
方案一:JSP+JDBC
分析:
输入输出页面略,,,
中间验证部分用jsp页面实现:面向过程思想依次实现如下步骤:
连接数据库 + 根据传入的用户信息到数据库中query操作,并判断查询结果是否为空 + 保存输出页面需要的信息。
1、输入页面:(简易。。。)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="../homework2/登录验证中间过程.jsp" method="post">
账户:<input type="text" name="user">
<br>
密码:<input type="text" name="password">
<br>
<input type="submit" value="提交">
<input type="reset" value="清除">
</form>
</body>
</html>
2、输出页面:(简易。。。)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
%>
<%=(String)(request.getAttribute("res")) %>
</body>
</html>
3、中间验证:(面向过程实现:连接数据库 + 根据传入的用户信息到数据库中query操作,并判断查询结果是否为空 + 保存输出页面需要的信息。)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
%>
<%
String name = (String) request.getParameter("user");
String pass_tmp = (String) request.getParameter("password");
int password = (int) Integer.parseInt(pass_tmp);
%>
<%
String driverName = "com.mysql.jdbc.Driver";
String userName = "root";
String userPwd = "123";
String dbName = "期末复习";
String url1 = "jdbc:mysql://localhost:3306/" + dbName;
String url2 = "?user=" + userName + "&password=" + userPwd;
String url3 = "&useUnicode=true&characterEncoding=UTF-8";
String url = url1 + url2 + url3;
Class.forName(driverName);
%>
<%
Connection conn = DriverManager.getConnection(url);
String sql = "select * from ex73 where Name like ? and Password=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setInt(2, password);
ResultSet rs = ps.executeQuery();
String ans = "";
if (rs.next()) {
ans = "登陆成功,欢迎您" + name;
} else {
ans = "用户名或密码错误,登陆失败!";
}
request.setAttribute("res", ans);
if (rs != null)
rs.close();
if (ps != null)
ps.close();
if (conn != null)
conn.close();
%>
<jsp:forward page="out.jsp"></jsp:forward>
</body>
</html>
方案二:JSP+Servlet+JDBC
分析:即把方案一的中间过程处理的jsp换成servlet。
servlet代码实现:https://paste.ubuntu.com/p/S2jYsb5hkz/
方案三:JSP+JDBC+Servlet/JSP(过程控制)+JavaBean (DAO)
分析:
过程控制部分就不说了,jsp/servlet都是一样的东西,JavaBean部分因为考虑到 对传入信息的验证
可以封装到一个 用户信息验证类中,同时 对于数据库的连接 我们最终 只需要一个Connection对象进而产
生执行sql的对象,所以对于数据库的连接,我们也可以封装成一个工具类。这样我们可以屏蔽掉Servlet
类对数据库的直接访问以及那些复杂的query逻辑代码,所有的操作都通过一个 用户信息验证类 实例,
包括数据库的连接,也在该类中完成完成。
综上所述:程序分为下列几部分:
1、输入界面jsp代码链接:https://paste.ubuntu.com/p/ndghYdmKjb/
2、输出界面jsp代码链接:https://paste.ubuntu.com/p/X4cz5tZPXN/
3、查询过程控制Servlet代码链接:通过输入信息生成User实例,调用UserDao间接完成对数据表的访问,
(本题中即查询User是否存在),最后保存输出界面所需要结果。
https://paste.ubuntu.com/p/fbXZffTwXy/
4、数据库连接工具JdbcUti代码链接l:读文件方式,获得Connection对象。 (上课讲过之后再通过查阅资料这个类的数据成员、方法、方法参数等都有更好的方式,,, ,,,(套路?or 变化))
https://paste.ubuntu.com/p/jcnBywjXcN/
5、用户数据类User代码链接:数据类,账户+密码信息
https://paste.ubuntu.com/p/pgNP76nZKm/
6、用户操作类UserDao代码链接:调用JdbcUtil获得Connection对象,进而通过不同sql对数据表直接操作。
https://paste.ubuntu.com/p/7m5xzVFKw6/
7、连接数据库所需密码、数据库名等信息:proprities文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/期末复习?
useUnicode=true&characterEncoding=UTF-8
username=root
password=123
三、运行结果展示:
附录Word文件。。。 。。。
The end;