jsp+servlet----自己写一个登录注册之登录验证

原理 :(注册还没写,把正确的账号密码提前录入数据库)一个login.jsp供用户输入账号密码,action转发到check.jsp,request.getparameter获得输入内容,用jsp连接数据库的模板代码获取数据库中内容,if(a==b)做判断,request .getrequsetdiapature转到success.jsp或fail.jsp提示登录成功或失败
值得注意的是,用if(a==b)做信息判断时,必须把字符串用parseInt转成int型,否则会直接判断666和666不一样
String h3=request.getParameter("h3") ;
String h4=request.getParameter("h4") ;
int c = Integer.parseInt(h3);
int d= Integer.parseInt(h4);
if(c!=d)
login.jsp
<%@ 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="check.jsp" method="post">

请输入用户名:<input type="text" name="username"><br/>
请输入密码:<input type="password" name="userpassword">
<input type="submit" value="登录">



</form>
</body>
</html>
check.jsp(目前只有这个db66数据库中mark表成功了,不知道为啥,另一个表或连接异常,可能跟int varchar有关)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.mysql.jdbc.Driver" %>   
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%String uname=request.getParameter("username") ;
String upassword=request.getParameter("userpassword");
out.print(uname);out.print(upassword);


%>

<!-- 连接数据库 -->
<%  
        try {  
            Class.forName("com.mysql.jdbc.Driver");  //驱动程序名
             String url = "jdbc:mysql://localhost:3306/db66?&useSSL=false&serverTimezone=UTC";   // 获取mysql连接地址
     		 String username = "root";  //数据库用户名
            String password = "123456";  //数据库用户密码
            Connection conn = DriverManager.getConnection(url, username, password);  //连接状态
			//若数据库连接成功,则输出查询到的数据结果
            if(conn != null){  
				out.println("-------------------");  
              //  out.print("数据库连接成功!"); 
				out.println("-------------------");  
				out.println("     ");  
				 out.print("<br />");  
				 out.print("<br />");  //换行  
                Statement stmt = null;  //给实例赋初值为0
                ResultSet rs = null;   //给结果赋初值为0
            out.print("uname"+uname);
                String jkjkj = "SELECT * FROM mark where id="+uname;  //查询语句,查询成绩表中的数据保存到sql
                stmt = conn.createStatement();  //把该对象也就是stmt将SQL语句传递给数据库管理系统执行,通常来说产生结果集,返回给ResultSet对象
                rs = stmt.executeQuery(jkjkj);
               // out.print("-----------查询学号为20185358的学生idd-------");
                out.print("<br />");
                while (rs.next())
                {
                	
                	out.print(rs.getString("idd"));
                	out.print("是否等于");
                	out.print(upassword);
                	int a = Integer.parseInt(upassword);
                	int b= Integer.parseInt(rs.getString("idd"));
                if(a==b)
                	{
                		//request.getRequestDispatcher("success.jsp").forward(request,response);
                	request.getRequestDispatcher("success.jsp").forward(request,response);
                	}
                	else{
                		
                		request.getRequestDispatcher("fail.jsp").forward(request,response);
                	}
                }
                out.print("<br />");
               // String jkj = "SELECT * FROM mark where id=20185396 ";  //查询语句,查询成绩表中的数据保存到sql
                //stmt = conn.createStatement();  //把该对象也就是stmt将SQL语句传递给数据库管理系统执行,通常来说产生结果集,返回给ResultSet对象
               // rs = stmt.executeQuery(jkj);
               // out.print("-----------查询学号为20185369的学生idd-------");
               // out.print("<br />");
              //  while (rs.next())
              //  {
                	//out.print("查询结果:"+rs.getString("idd"));
              //  }
              ///  
            }
            else{  
                out.print("连接失败!");  
            }  
			//抛出异常
        }catch (Exception e) {        
            out.print("数据库连接异常!");  
        }  
%>   



</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值