jsp+serclet--自己写登录注册之注册

本文详细介绍了用户注册过程中的表单填写、数据验证、数据库插入操作及前后端交互流程,包括使用JSP和Servlet实现的具体代码示例。
注册原理:先写写表单,转发到register2.jsp,requset.getParameter获取,写进数据库。下面是几个小细节
给数据库添一列 昵称
alter table tableName add newColumn varchar(8) 
servlet设置全局变量(想用这个获取昵称, 没用上)
<context-param>
   <param-name>param_name</param-name>
   <param-value>param_value</param-value>
</context-param>

此所设定的参数,在JSP网页中可以使用下列方法来取得:${initParam.param_name}
若在Servlet可以使用下列方法来获得:
String param_name=getServletContext().getInitParamter(“param_name”);

一个form向两个servlet转发
<form action="第一个jsp.jsp" method=post target="_blank" name=form1>

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



</form>
<script>
function dblsubmit() {
document.form1.submit();
document.form1.action="第二个jsp.jsp";
document.form1.submit();
}
</script>
给出所有代码

register1.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="register2.jsp">
全攻略网昵称<input type="text" name="h1"><br/>
全攻略网账号<input type="text" name="h2"><br/>
密码<input type="password" name="h3"><br/>
再次输入密码<input type="password" name="h4"><br/>
<input type="submit" value="快速注册">


 </form>
</body>
</html>

register2.jsp

<%@ 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 h1=request.getParameter("h1") ;
String h2=request.getParameter("h2") ;
String h3=request.getParameter("h3") ;
String h4=request.getParameter("h4") ;
int c = Integer.parseInt(h3);
int d= Integer.parseInt(h4);
if(c!=d)
{
	request.getRequestDispatcher("unsame.jsp").forward(request,response);
}
%>

<%
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);  //连接状态
       String sql="Insert into mark(id,idd,nicheng) values(?,?,?)";
       PreparedStatement pstmt=conn.prepareStatement(sql);
       pstmt.setString(1, h2);
       pstmt.setString(2, h3);
       pstmt.setString(3, h1);
       int n=pstmt.executeUpdate();
       if(n==1){%><a href="login.jsp">注册成功,点击登录</a><br><%}  
       else{%>数据插入失败!<br><%}
   %>
</body>
</html>

success.jsp(显示用户昵称)

<%@ 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("nicheng")+"登录");
                	
                	
               
                }
                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、付费专栏及课程。

余额充值