注册原理:先写写表单,转发到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>
本文详细介绍了用户注册过程中的表单填写、数据验证、数据库插入操作及前后端交互流程,包括使用JSP和Servlet实现的具体代码示例。

8079

被折叠的 条评论
为什么被折叠?



