java web :servlet+数据库+jsp实现注册并显示结果

一、相关要求和步骤

1.编写注册页面(zc.jsp),效果如下:

2.根据注册页面需要用户填写的栏目,在数据库(这里命名为:a_dbtest)中创建名为userinfomation(可自行命名)的用户信息表(表中字段根据需要创建),这里效果如下:

3.当注册信息填写完,点击提交按钮,程序跳转到后台注册用的servlet中(自行定义和配置servlet),然后在servlet的合适方法里边获得前台注册页面提交过来的用户注册数据,然后使用jdbc编程的相关代码将注册数据插入到userinfo用户信息表中,若插入成功,则跳转到注册成功页面(succ.jsp),插入失败,则跳转到失败页面(err.jsp)提示注册失败

4.注册成功页面(succ.jsp),要求在注册页面中嵌入合适的java代码从userinfomation用户信息表中查询出所有的用户信息并显示到页面上,效果图如下:

二、效果展示

三、代码

1.数据库处理工具类代码(DbHandle.java)

package DBtool;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DbHandle {
	Connection conn=null;	
	Statement st=null;
	ResultSet rs=null;
	
//得到数据库链接
public void getConnection() {
	final String DRIVERNAME = "com.mysql.jdbc.Driver";	//mysql数据库驱动
	//?前面改为自己建立的数据库的名字,这里数据库名是a_dbtest
	final String URL = "jdbc:mysql://localhost:3306/a_dbtest?useUnicode=true&characterEncoding=utf-8";	
	final String LOGIN = "root";	//数据库名
	final String PASSWORD ="123456";	//数据库密码
	try {
		Class.forName(DRIVERNAME);	//装载mysql数据库驱动
		conn=DriverManager.getConnection(URL,LOGIN,PASSWORD);	
		//使用DriverManager类的getConnection方法来获得一个数据库连接对象(也就是这个方法返回)
		System.out.println("数据库连接成功");
	}catch(Exception e) {
		System.out.println("执行getConnection()方法出错,");
		e.printStackTrace();
	}
}
//查询
public ResultSet executeQuery(String sql) {
	try {
		if(conn==null) {
			getConnection();
		}
		rs=st.executeQuery(sql);
	}catch(Exception e){
		System.out.println("执行executeQuery(String sql)方法错误"+sql);
		e.printStackTrace();
	}
	return rs;
}
//修改和插入
public int executeUpdate(String sql) {
	int ret;
	try {
		if(conn == null) {
			getConnection();
		}
		if(st==null) {
			st=conn.createStatement();
		}
		ret=st.executeUpdate(sql);
	}catch(Exception e) {
		System.out.println("执行executeUpdate(sql)方法错误"+sql);
		e.printStackTrace();
		ret = -1;
	}
	return ret;
}
//关闭数据库连接的方法
public void close() {
	try {
		if(rs!=null) {
			rs.close();
		}
		if(st!=null) {
			st.close();
		}
		if(conn!=null) {
			conn.close();
		}
	}catch(Exception e) {
		System.out.println("执行close()方法出错");
		e.printStackTrace();
	}
}
}

2.servlet代码(RegServlet.java)

package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import DBtool.DbHandle;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * RegServlet implementation class RegServlet
 */
@WebServlet("/RegServlet")	
public class RegServlet extends HttpServlet {
	private String username;	//用户姓名
	private String password;	//密码
	private String sex;		//性别
	private String age;		//年龄
	private String phone;	//电话
	private String a="";	//爱好

	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public RegServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) {
		int flag;	//设置判断
		
		List<Map> list =new ArrayList<Map>();//创建list集合用于存入map的键值对集合
		try {
			request.setCharacterEncoding("utf-8");
			response.setContentType("text/html;charset=utf-8");

			//获取前台输入信息
			username = request.getParameter("username");	//用户姓名
			password = request.getParameter("password");	//密码
			sex = request.getParameter("sex");		//性别
			age = request.getParameter("age");		//年龄
			phone = request.getParameter("phone");		//电话
			a = "";	//爱好重置
			String []likee = request.getParameterValues("hobby");	//爱好
			for(String s:likee)a=a+" "+s;
			likee = null;	//清空数组
			
			//将数据存入数据库
			DbHandle dbh = new DbHandle();
			String sql = "insert into userinfomation values('"+username+"','"+password+"','"+sex+"','"+age+"','"+phone+"','"+a+"')";
			
			
			if(dbh.executeUpdate(sql)>0){
				System.out.print("存入成功\n");
				flag = 1;
			}
			else{
				System.out.print("存入失败\n");
				flag = 0;
			}

			//从数据库读取的内容,返回一个结果集。
			
			ResultSet rs = dbh.executeQuery("SELECT * FROM userinfomation;");
			System.out.println("获取数据\n");
			while (rs.next()) {	//
				String username = rs.getString("username");
				String password = rs.getString("password");
				String sex = rs.getString("sex");
				String age = rs.getString("age");
				String phone = rs.getString("phone");
				String hobby = rs.getString("hobby");
				//用循环接收数据库的表格信息
				Map map = new HashMap(); 
				map.put("username", username);		
				map.put("password", password);	
				map.put("sex", sex);
				map.put("age", age);			
				map.put("phone", phone);		
				map.put("hobby", hobby);
				//用键值对存入到map集合中
				System.out.println(map);
				list.add(map);//在将map集合对象存入list集合
				System.out.println("放入集合");
				for (Map map_1 :list) {
					System.out.println(map_1);
				}//在打印台遍历出数据查看是否有错误

			}//遍历结果集
			request.setAttribute("key_list",list);//将list集合数据放入到request中共享
			
			System.out.println("跳转");
			if(flag == 1){
				request.getRequestDispatcher("succ.jsp").forward(request, response);
			}else{
				request.getRequestDispatcher("err.jsp").forward(request, response);
			}

			dbh.close();//关闭数据库
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}	
}

3.web.xml中加入的代码

    <!-- 定义一个servlet -->
	<servlet>
		<servlet-name>RegServlet</servlet-name> <!-- //servlet的名字(自己命名,每个servlet取名唯一) -->
		<servlet-class>servlet.RegServlet</servlet-class> <!-- //servlet程序所在的地址(对应的包、类的名称) -->
	</servlet>

	<!-- 给servlet取名 -->
	<servlet-mapping>
		<servlet-name>RegServlet</servlet-name> <!-- servlet的名字(与上面的servlet名字对应) -->
		<url-pattern>/RegServ</url-pattern> <!-- 具体的映射路径(别名,自己命名,每个servlet别名唯一),前面必须有一个'/' -->
	</servlet-mapping>

4.jsp注册页面代码(zc.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>注册页面</title>
</head>
<body>
<form action="RegServ" method="post" name="myform">    
<table>
<caption>请输入注册信息:</caption>	<%--标题 --%>
<tr>
	<td>用户姓名:</td>
	<td><input type="text" name="username" ></td>
</tr>
<tr>
	<td>密码:</td>
	<td><input type="password" name="password" ></td>
</tr>
<tr>
	<td>性别:</td>		
	<td><input type="radio" name="sex" value="男" checked>男
	<input type="radio" name="sex" value="女" >女</td>
</tr>
<tr>
	<td>年龄:</td>
	<td><input type="text" name="age"></td>
</tr>
<tr>
	<td>电话:</td>
	<td><input type="text" name="phone"></td>
</tr>
<tr>
	<td>兴趣爱好:</td>	
	<td><input type="checkbox" name="hobby" value="唱歌">唱歌
	<input type="checkbox" name="hobby" value="跳舞">跳舞
	<input type="checkbox" name="hobby" value="跑步">跑步
	<input type="checkbox" name="hobby" value="看书">看书</td>
</tr>
<tr>
	<td><input type="submit" onclick="validate()" value="提交" />
	<input type="reset" value="取消"></td>
</tr>
</table>
</form>
<%! int i = 0; %>
<% i++; %>
<% out.print("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"); %>
当前页面被访问的次数为:<%=i%>
</body>
</html>

5.jsp注册成功页面代码(succ.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" %>
<%@page import="java.sql.*"%>
<%@ taglib prefix='c' uri="http://java.sun.com/jstl/core_rt"%>
<html>
<head>
<title>注册成功页面</title>
</head>
<body>
	注册成功!
	<%request.setCharacterEncoding("UTF-8");%>
	
	<table border='1'>
		<tr align="center" bgcolor="#a9a9a9">
			<td><b>姓名</b></td>
			<td><b>密码</b></td>
			<td><b>性别</b></td>
			<td><b>年龄</b></td>
			<td><b>电话</b></td>
			<td><b>爱好</b></td>
		</tr>

		<c:forEach items="${key_list}" var="usr" varStatus="status">
			<tr align="center">
				<td>${usr.username}</td>
				<td>${usr.password}</td>
				<td>${usr.sex}</td>
				<td>${usr.age}</td>
				<td>${usr.phone}</td>
				<td>${usr.hobby}</td>
			</tr>
		</c:forEach>
	</table>

</body>
</html>

6.jsp注册失败页面代码(err.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>  
<html>
<head>
<title>注册失败页面</title>
</head>
<body>
注册失败!
</body>
</html>

  • 6
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值