JavaEE程序设计与应用开发部分习题答案(2)

这本书大概看过了,把里面题目大概做了一遍,可能自己比较功利,没有细细地把每个习题做到完美,但基本的功能都能实现。
题目:在数据库中建立表格t_customer(account,password,cname),插入一些记录,编写注册页面,输入账号、密码、确认密码、姓名,完成注册的功能,并能够判断是否重复注册。提交后页面不刷新。
第一个页面sign,用来提交。

<%@ 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>
<script type="text/javascript">
function login(){
	var account=document.loginForm.account.value;
	var password=document.loginForm.password.value;
	var pw=document.loginForm.pw.value;
	var name=document.loginForm.name.value;
	if(password!=pw){
		//location.reload();
		//history.go(0);
		//location.replace(location)
		alert("对不起,您2次输入的密码不一致");
	}
	else{
	var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	var url="http://localhost:8080/JspLearning/LoginServlet?account="+account+"&password="+password+"&name="+name;
	xmlHttp.open("post",url,true);
	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4){
			resultDiv.innerHTML=xmlHttp.responseText;
		}
		else{
			resultDiv.innerHTML+="正在验证,请稍候。。。";
		}
	}
	xmlHttp.send();
	}
}
</script>
注册页面<br>
<form name="loginForm">
输入账号:<input type="text" name="account"><br>
输入密码:<input type="password" name="password"><br>
再输入一次密码:<input type="password" name="pw"><br>
输入名字:<input type="text" name="name"><br>
<input type="button" value="注册" onclick="login()">
</form>
<div id="password">
</div>
<div id="resultDiv">
</div>
</body>
</html>

第二个页面,LoginServlet.java用于逻辑控制,就是个普通的java类,只不过按照jsp的底层逻辑来写的,所以叫servlet。

<%@ 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>
<script type="text/javascript">
function login(){
	var account=document.loginForm.account.value;
	var password=document.loginForm.password.value;
	var pw=document.loginForm.pw.value;
	var name=document.loginForm.name.value;
	if(password!=pw){
		//location.reload();
		//history.go(0);
		//location.replace(location)
		alert("对不起,您2次输入的密码不一致");
	}
	else{
	var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	var url="http://localhost:8080/JspLearning/LoginServlet?account="+account+"&password="+password+"&name="+name;
	xmlHttp.open("post",url,true);
	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4){
			resultDiv.innerHTML=xmlHttp.responseText;
		}
		else{
			resultDiv.innerHTML+="正在验证,请稍候。。。";
		}
	}
	xmlHttp.send();
	}
}
</script>
注册页面<br>
<form name="loginForm">
输入账号:<input type="text" name="account"><br>
输入密码:<input type="password" name="password"><br>
再输入一次密码:<input type="password" name="pw"><br>
输入名字:<input type="text" name="name"><br>
<input type="button" value="注册" onclick="login()">
</form>
<div id="password">
</div>
<div id="resultDiv">
</div>
</body>
</html>

第三个页面,queryDao,也是一个普通的java类,不过专门用于数据库处理,所以叫Dao。

package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class queryDao {
public static String query(String name,String account,String password) throws Exception{
	Connection conn=null;
	try {
		Class.forName("com.mysql.jdbc.Driver");
		conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/web003","root","123456");
		String sql="select ACCOUNT,PASSWORD,CNAME from t_customer";
		Statement stat=conn.createStatement();
		ResultSet rs=stat.executeQuery(sql);
		while(rs.next()) {
			String name2=rs.getString("CNAME");
			String account2=rs.getString("ACCOUNT");
			String password2=rs.getString("PASSWORD");
			System.out.print(name2);
			System.out.print(name);
			if(name2.equals(name)) {
				return "0";
			}
			
		}
		String sql2="INSERT INTO T_CUSTOMER(ACCOUNT,PASSWORD,CNAME) VALUES ('"+account+"','"+password+"','"+name+"')";
		stat.executeUpdate(sql2);		
		rs.close();
		stat.close();return "1";
	}catch(SQLException e) {
		e.printStackTrace();
	}finally {
		try {
			if(conn!=null) {
				conn.close();
				conn=null;
			}
		}catch(Exception ex) {
			
		}
	}
	return "2";
}
}

其余两个页面用于显示,毫无技术含量。

package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class queryDao {
public static String query(String name,String account,String password) throws Exception{
	Connection conn=null;
	try {
		Class.forName("com.mysql.jdbc.Driver");
		conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/web003","root","123456");
		String sql="select ACCOUNT,PASSWORD,CNAME from t_customer";
		Statement stat=conn.createStatement();
		ResultSet rs=stat.executeQuery(sql);
		while(rs.next()) {
			String name2=rs.getString("CNAME");
			String account2=rs.getString("ACCOUNT");
			String password2=rs.getString("PASSWORD");
			System.out.print(name2);
			System.out.print(name);
			if(name2.equals(name)) {
				return "0";
			}
			
		}
		String sql2="INSERT INTO T_CUSTOMER(ACCOUNT,PASSWORD,CNAME) VALUES ('"+account+"','"+password+"','"+name+"')";
		stat.executeUpdate(sql2);		
		rs.close();
		stat.close();return "1";
	}catch(SQLException e) {
		e.printStackTrace();
	}finally {
		try {
			if(conn!=null) {
				conn.close();
				conn=null;
			}
		}catch(Exception ex) {
			
		}
	}
	return "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>
嘿,你成功了。<br>
</body>
</html>

这个题不难,就两点:1、因为mysql里面的字段类型我设的text,所以在queryDao里面的插入语句里面值要加’’,不然会报错。2、js的语法接触较少,我原来写的一个(!a==b),一直判断不了,改成(a!=b)就可以了,一定要注意javascript和java的语法差距很大。
下一本书看(

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值