内容较多,需要压缩包的可以在评论区发邮箱,或者私信我给我邮箱📮
用户注册页面(稍微简陋,能用就行):
a1_form_zhuce_.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="a1_user_insert2.jsp" method="post">
<h3>用户注册表单</h3>
<p>姓名:<input type="text" size="20" name="uname"></p>
<p>密码:<input type="password" name="pwd"></p>
<p>
性别:
男<input type="radio" name="sex" value="男" checked="checked">
女<input type="radio" name="sex" value="女">
</p>
<p>
爱好:
篮球<input type="checkbox" name="duo" value="篮球">
足球<input type="checkbox" name="duo" value="足球">
手球<input type="checkbox" name="duo" value="手球">
爬山<input type="checkbox" name="duo" value="爬山">
游泳<input type="checkbox" name="duo" value="游泳">
</p>
<p>E-maile<input type="email" name="email"></p>
<p>
<input type="submit" value="提交">
<input type="reset" value="重置">
<input type="button" value="普通">
</p>
</form>
</body>
</html>
注册完后,自动跳转:
a1_user_insert2.jsp
方案一:推荐使用
<%@page import="java.sql.*"%>
<%@ 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>
<%
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
//1、注册数据库的驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2、通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jspone";
String username = "root";
String password = "root12345";
conn = DriverManager.getConnection(url,username,password);
System.out.println("conn"+conn);
//3、获取表单输入的数据
request.setCharacterEncoding("utf-8");
String name = request.getParameter("uname");
String pwd = request.getParameter("pwd");
String gender = request.getParameter("sex");
String message = "" ;
String []favour = request.getParameterValues("duo");
for(int i = 0 ; i < favour.length ; i++){
message = message + favour[i]+",";
}
String email = request.getParameter("email");
String sql = "insert into user(username,password,gender,hobby,email) values(?,?,?,?,?)";
//4、通过Connection对象获取statement对象
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, pwd);
pstmt.setString(3, gender);
pstmt.setString(4, message);
pstmt.setString(5, email);
//5、使用statement执行SQL语句
int i = pstmt.executeUpdate();//执行不成功的话返回0
if(i==1){
%>
<h1>注册成功!2秒后自动跳转到登陆页面,如果没有跳转,请点击<a href="a1_denglu.jsp">登陆</a></h1>
<%
response.setHeader("refresh", "2,URL=a1_denglu.jsp");
}else{
%>
<h1>注册失败!请重新注册!2秒后自动跳转到你注册页面,如果没有跳转,请点击<a href="a1_form_zhuce_.jsp">注册</a></h1>
<%
response.setHeader("refresh", "2,URL=a1_form_zhuce_.jsp");
}
}catch(Exception e){
System.out.print(e);
}finally{
try{
pstmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
%>
</body>
</html>
方案二:不推荐使用
<%@page import="java.sql.*"%>
<%@ 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>
<%
ResultSet rs = null;
Statement stmt = null;
Connection conn = null;
//1、注册数据库的驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2、通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jspone";
String username = "root";
String password = "root12345";
conn = DriverManager.getConnection(url,username,password);
System.out.println("conn"+conn);
//3、通过Connection对象获取statement对象
stmt = conn.createStatement();
//4、获取表单输入的数据
request.setCharacterEncoding("utf-8");
String name = request.getParameter("uname");
String pwd = request.getParameter("pwd");
String gender = request.getParameter("sex");
String message = "" ;
String []favour = request.getParameterValues("duo");
for(int i = 0 ; i < favour.length ; i++){
message = message + favour[i]+",";
}
String email = request.getParameter("email");
String s = "('"+name+"','"+pwd+"','"+gender+"','"+message+"','"+email+"')";
String sql = "insert into user(username,password,gender,hobby,email) values" + s;
System.out.print("sql= "+sql);
//5、使用statement执行SQL语句
int i = stmt.executeUpdate(sql);//执行不成功的话返回0
if(i==1){
%>
<h1>注册成功!2秒后自动跳转到登陆页面,如果没有跳转,请点击<a href="a1_denglu.jsp">登陆</a></h1>
<%
response.setHeader("refresh", "2,URL=a1_denglu.jsp");
}else{
%>
<h1>注册失败!请重新注册!2秒后自动跳转到你注册页面,如果没有跳转,请点击<a href="a1_form_zhuce_.jsp">注册</a></h1>
<%
}
}catch(Exception e){
System.out.print(e);
}finally{
try{
stmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
%>
</body>
</html>
因为方案二是通过复杂的字符串进行的,不方便,使用动态处理sql语句更为方便,故推荐使用方案一
自动跳转到登陆页面,使用刚刚注册的用户的账户密码进行登录:
a1_denglu.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>
<style>
h3{
text-align: center;
}
.user{
color: #999;
}
form{
text-align: center;
}
form .rem{
margin-left: 30px;
}
</style>
<body>
<%@ include file="a1_denglu_top.jsp"%><!-- 静态包含 -->
<%-- <jsp:include page="a1_denglu_top.jsp"></jsp:include> --%> <!-- 这是动态包含,运行时的包含 -->
<h3>欢迎进入清华大学用户登陆页面</h3>
<form type="text" action="a1_do_login2.jsp" method="post">
<p> 用户名:<input type="text" name="username" value="请输入用户名" class="user"
onfocus="if(this.value=='请输入用户名'){this.value='';this.style.color='#424242'} "
onblur="if(this.value==''){this.value='请输入用户名' ; this.style.color='#999'}">
</p>
<p> 密 码:<input type="password" name="password"> </p>
<input type="submit" value="登陆" class="rem">
<input type="reset" value="重置" class="rem">
</form>
<%@ include file="a1_denglu_bottom.jsp"%>
</body>
<script type="text/javascript">
</script>
</html>
a1_denglu_top.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<img src="image/baner.jpg" width=100%/>
</center>
</body>
</html>
a1_denglu_bottom.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<table width="100%" cellspacing="0" cellpadding="4" align="center" bordercolor="#A6CAF0" border=1>
<tr>
<td> <div align="center">
<p>清华大学软件系 <br>
学校地址:北京市黄泉路1880号花拳绣腿<br/>
电话:100010001
</p>
</div></td>
</tr>
</table>
输入账号密码后页面自动跳转:
a1_do_login2.jsp
方案一:推荐使用
<%@page import="java.sql.*"%>
<%@ 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>
<%
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
//1、注册数据库的驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2、通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jspone";
String username = "root";
String password = "root12345";
conn = DriverManager.getConnection(url,username,password);
System.out.println("conn"+conn);
//3、获取表单输入的数据
request.setCharacterEncoding("utf-8");
String name = request.getParameter("username");
String pwd = request.getParameter("password");
String sql = "select * from user where username=? and password=?";
//4、通过Connection对象获取statement对象
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, pwd);
//5、使用statement执行SQL语句
rs = pstmt.executeQuery();
if(rs.next()){
%>
<h1>登陆成功!2秒后自动跳转到商城主页面页面,如果没有跳转,请点击<a href="a1_user_list.jsp">主页面</a></h1>
<%
response.setHeader("refresh", "2,URL=a1_user_list.jsp");
}else{
%>
<h1>登陆失败!请重新登陆!2秒后自动跳转到你登陆页面,如果没有跳转,请点击<a href="a1_denglu.jsp">登陆</a></h1>
<%
response.setHeader("refresh", "2,URL=a1_denglu.jsp");
}
}catch(Exception e){
System.out.print(e);
}finally{
try{
pstmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
%>
</body>
</html>
方案二:不推荐使用
<%@page import="java.sql.*"%>
<%@ 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>
<%
ResultSet rs = null;
Statement stmt = null;
Connection conn = null;
//1、注册数据库的驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2、通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jspone";
String username = "root";
String password = "root12345";
conn = DriverManager.getConnection(url,username,password);
System.out.println("conn"+conn);
//3、通过Connection对象获取statement对象
stmt = conn.createStatement();
//4、获取表单输入的数据
request.setCharacterEncoding("utf-8");
String name = request.getParameter("username");
String pwd = request.getParameter("password");
String sql = "select * from user where username='"+name+"' and password='"+pwd+"'";
System.out.print("sql= "+sql);
//5、使用statement执行SQL语句
rs = stmt.executeQuery(sql);
if(rs.next()){
%>
<h1>登陆成功!2秒后自动跳转到商城主页面页面,如果没有跳转,请点击<a href="a1_user_list.jsp">主页面</a></h1>
<%
response.setHeader("refresh", "2,URL=a1_user_list.jsp");
}else{
%>
<h1>登陆失败!请重新登陆!2秒后自动跳转到你登陆页面,如果没有跳转,请点击<a href="a1_denglu.jsp">登陆</a></h1>
<%
response.setHeader("refresh", "2,URL=a1_denglu.jsp");
}
}catch(Exception e){
System.out.print(e);
}finally{
try{
stmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
%>
</body>
</html>
说明:
对于方案二,在登陆页面时账号密码都输入字符串 ‘or’1’='1 的时候,会显示登陆成功后的页面,这是因为,默认把这些字符串当作了true进行登陆,而方案一恰好避免了这种情况的产生,故推荐使用方案一
自动跳转到主页面:
a1_user_list.jsp
<%@page import="java.sql.*"%>
<%@ 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>
<table width="800px" border="1px" align="center">
<tr>
<td>用户ID</td>
<td>用户名</td>
<td>性别</td>
<td>爱好</td>
<td>邮箱</td>
<td>修改</td>
<td>删除</td>
</tr>
<%
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
//1、注册数据库的驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2、通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jspone";
String username = "root";
String password = "root12345";
conn = DriverManager.getConnection(url,username,password);
System.out.println("conn"+conn);
//3、获取表单输入的数据
request.setCharacterEncoding("utf-8");
String name = request.getParameter("uname");
String pwd = request.getParameter("pwd");
String sql = "select id,username,gender,hobby,email from user";
//4、通过Connection对象获取statement对象
pstmt = conn.prepareStatement(sql);
//5、使用statement执行SQL语句
rs = pstmt.executeQuery();
while(rs.next()){
%>
<tr>
<td>
<%=rs.getInt("id") %> <!-- id可以换乘1,表示第一列 -->
</td>
<td>
<%=rs.getString("username") %> <!-- username可以换乘2,表示第二列 -->
</td>
<td>
<%=rs.getString("gender") %>
</td>
<td>
<%=rs.getString("hobby") %>
</td>
<td>
<%=rs.getString("email") %>
</td>
<td>
<a href="a1_user_edit.jsp?id=<%=rs.getInt("id") %>">修改该用户</a>
</td>
<td>
<a href="a1_user_delete.jsp?id=<%=rs.getInt("id") %>">删除该用户</a>
</td>
</tr>
<%
}
}catch(Exception e){
System.out.print(e);
}finally{
try{
pstmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
%>
</table>
</body>
</html>
上面的代码注意两个地方
<a href=“a1_user_edit.jsp?id=<%=rs.getInt(“id”) %>”>修改该用户< /a >
<a href=“a1_user_delete.jsp?id=<%=rs.getInt(“id”) %>”>删除该用户< /a >
如果点击超链接进行修改该用户的话:
a1_user_edit.jsp
<%@page import="java.sql.*"%>
<%@ 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>
<div align="center">
<%
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
//1、注册数据库的驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2、通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jspone";
String username = "root";
String password = "root12345";
conn = DriverManager.getConnection(url,username,password);
System.out.println("conn"+conn);
//3、获取表单输入的数据
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String sql = "select id,password,username,gender,hobby,email from user where id = ?";
//4、通过Connection对象获取statement对象
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(id));
//5、使用statement执行SQL语句
rs = pstmt.executeQuery();
if(rs.next()){
%>
<form action="a1_do_update.jsp?id=<%=rs.getInt("id") %>" method="post">
用户名:<input type="text" name="username" value="<%=rs.getString("username") %>"><br>
密码:<input type="text" name="password" value="<%=rs.getString("password") %>"><br>
性别:<input type="text" name="gender" value="<%=rs.getString("gender") %>"><br>
爱好:<input type="text" name="hobby" value="<%=rs.getString("hobby") %>"><br>
邮箱:<input type="text" name="email" value="<%=rs.getString("email") %>"><br>
<input type="submit" value="保存修改">
<input type="reset" value="重置">
</form>
<%
}
}catch(Exception e){
System.out.print(e);
}finally{
try{
pstmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
%>
</div>
</body>
</html>
修改完信息进行提交后,页面自动跳转:
a1_do_update.jsp
<%@page import="java.sql.*"%>
<%@ 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>
<%
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
//1、注册数据库的驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2、通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jspone";
String username = "root";
String password = "root12345";
conn = DriverManager.getConnection(url,username,password);
System.out.println("conn"+conn);
//3、获取表单输入的数据
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String sql = "update user set username=?,password=?,gender=?,hobby=?,email=? where id=?";
//4、通过Connection对象获取statement对象
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, request.getParameter("username"));
pstmt.setString(2, request.getParameter("password"));
pstmt.setString(3, request.getParameter("gender"));
pstmt.setString(4, request.getParameter("hobby"));
pstmt.setString(5, request.getParameter("email"));
pstmt.setInt(6, Integer.parseInt(id));
//5、使用statement执行SQL语句
int n = pstmt.executeUpdate();
if(n==1){
out.print("<script type='text/javascript'>alert('修改成功!')</script>");
response.setHeader("refresh", "0;URL=a1_user_list.jsp");//页面跳转
}else{
out.print("<script type='text/javascript'>alert('修改失败!')</script>");
response.setHeader("refresh", "0;URL=a1_user_list.jsp");//页面跳转
}
}catch(Exception e){
System.out.print(e);
}finally{
try{
pstmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
%>
</body>
</html>
如果点击超链接进行删除该用户的话:
a1_user_delete.jsp
<%@page import="java.sql.*"%>
<%@ 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>
<div align="center">
<%
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
//1、注册数据库的驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2、通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jspone";
String username = "root";
String password = "root12345";
conn = DriverManager.getConnection(url,username,password);
System.out.println("conn"+conn);
//3、获取表单输入的数据
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String sql = "select * from user where id = ?";
//4、通过Connection对象获取statement对象
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(id));
//5、使用statement执行SQL语句
rs = pstmt.executeQuery();
if(rs.next()){
//out.print("<script type='text/javascript'>confirm('你确定要删除该用户吗!')</script>");
%>
<script type='text/javascript'>
var i = confirm('你确定要删除该用户吗!');
if(i)
window.location.href = "a1_do_delete.jsp?id="+<%=rs.getInt("id") %>;
</script>
<%
}
}catch(Exception e){
System.out.print(e);
}finally{
try{
pstmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
%>
</div>
</body>
</html>
点击确定后页面自动跳转:
a1_do_delete.jsp
<%@page import="java.sql.*"%>
<%@ 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>
<%
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
//1、注册数据库的驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2、通过DriverManager获取数据库链接
String url = "jdbc:mysql://localhost:3306/jspone";
String username = "root";
String password = "root12345";
conn = DriverManager.getConnection(url,username,password);
System.out.println("conn"+conn);
//3、获取表单输入的数据
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
//System.out.print(id);
String sql = "delete from user where id=?";
//4、通过Connection对象获取statement对象
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, Integer.parseInt(id));
//5、使用statement执行SQL语句
int n = pstmt.executeUpdate();
if(n==1){
out.print("<script type='text/javascript'>alert('删除成功!')</script>");
response.setHeader("refresh", "0;URL=a1_user_list.jsp");//页面跳转
}/* else{
out.print("<script type='text/javascript'>alert('删除失败!')</script>");
response.sendRedirect("a1_user_list.jsp");//页面跳转——————不成功 */
%>
<%-- <jsp:forward page="a1_user_list.jsp"></jsp:forward> <!-- 跳转不成功 --> --%>
<%
//}
}catch(Exception e){
System.out.print(e);
}finally{
try{
pstmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
%>
</body>
</html>
内容较多,需要压缩包的可以在评论区发邮箱,或者私信我给我邮箱📮