第4学期 JavaWeb学期末作业(复数四则运算+登陆信息验证)

目录

 

一、复数运算:

方案一:JSP

方案二:JSP+JavaBean

方案三:JSP+Servlet

方案四:JSP+Servlet+JavaBean

 

二、登录验证:

方案一:JSP+JDBC

方案二:JSP+Servlet+JDBC

方案三: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;

 

 

 

 

 

 

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值