前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Servlet(数据库操作)

Servlet(数据库操作)

作者头像
别团等shy哥发育
发布2023-02-25 17:09:35
6530
发布2023-02-25 17:09:35
举报
文章被收录于专栏:全栈开发那些事

Servlet(数据库操作)

我用的mysql8.0+tomcat9.0+jdk9.0.1 新建Servlet类,命名为:SaveServlet (注意,这里我选的版本是3.0,所以WEB-INF的lib目录下没有web.xml配置文件,这个版本用的是全新的注释) 将下面这句放在Servlet的类(即SaveServlet)声明之前(重点)

代码语言:javascript
复制
@WebServlet(name="saveServlet",urlPatterns="/SaveServlet")

SaveServlet.java类

代码语言:javascript
复制
package cast;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class SaveServlet
 */
@WebServlet(name="saveServlet",urlPatterns="/SaveServlet")
public class SaveServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    private Connection con=null;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SaveServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		// 驱动程序名
		String driver = "com.mysql.cj.jdbc.Driver";
		// URL指向要访问的数据库名mydata
		String url = "jdbc:mysql://localhost:3306/testform?useSSL=false&serverTimezone=UTC";
		// MySQL配置时的用户名
		String user = "root";
		// MySQL配置时的密码
		String password = "123456";
		try {
			Class.forName(driver);// 加载数据库驱动
			System.out.println("加载驱动成功");
			con = DriverManager.getConnection(url,user,password); // 获取数据库连接
			if (con != null) {
				System.out.println("数据库连接成功");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//设置编码f8
		request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		String sex=request.getParameter("sex");
		String question=request.getParameter("question");
		String answer=request.getParameter("answer");
		String email=request.getParameter("Email");
	//	System.out.println(username+password+sex+question+answer+email);
		if(con!=null) {
			String sql="insert into list(username,password,sex,question,answer,email)"
					+"values(?,?,?,?,?,?)";//插入注册信息的sql语句,使用通配符
			PreparedStatement ps;
			try {
				ps = con.prepareStatement(sql);//创建PreparedStatement对象
				ps.setString(1, username);  //对sql语句中的参数动态赋值
				ps.setString(2, password);
				ps.setString(3, sex);
				ps.setString(4, question);
				ps.setString(5, answer);
				ps.setString(6, email);
				ps.executeUpdate();             //执行更新操作
				PrintWriter out=response.getWriter();
				out.print("<h1 align='center'>");
				out.print(username+"注册成功");
				out.print("</h1>");
				out.flush();
				out.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else {
			response.sendError(500, "数据库连接错误");
		}
	}
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

建立login.html文件

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="SaveServlet" method="post" onsubmit="return reg(this)">
 <table align="center" border="0" width="500">
     <tr>
          <td align="right" width="30%">用户名:</td>
          <td><input type="text" name="username" class="box"></td>
     </tr>
     <tr>
          <td align="right">密码:</td>
          <td><input type="password" name="password" class="box"></td>
     </tr>
     <tr>
          <td align="right">确认密码</td>
          <td><input type="password" name="repassword" class="box"></td>
     </tr>
     <tr> 
          <td align="right">性别:</td>
          <td>
              <input type="radio" name="sex" value="男" checked="chedked">男
              <input type="radio" name="sex" value="女">女
          </td>
     </tr>
     <tr>
         <td align="right">密码找回问题:</td>
         <td><input type="text" name="question" class="box"></td>
     </tr>
     <tr>
         <td align="right">密码找回答案:</td>
         <td><input type="text" name="answer" class="box">
     </tr>
     <tr>
          <td align="right">邮箱:</td>
          <td><input type="text" name="Email" class="box"></td>
     </tr>
     <tr>
         <td colspan="2" align="center" height="40">
              <input type="submit" value="注册">
              <input type="reset" value="重置">         
         </td>
     </tr>
 </table>
</form>
</body>
</html>

运行结果 (现在文本框中输入值,在点击注册)

在这里插入图片描述
在这里插入图片描述

数据提交到了SaveServlet.java,里面用了输出流(显示成功注册)

在这里插入图片描述
在这里插入图片描述

查看数据库中的结果,数据库里确实插入了一条记录,就是刚才在文本中输入的值(这里我的navicat方便查看)

在这里插入图片描述
在这里插入图片描述

说明: <1>注意自己数据库的版本,我用的mysql8.0和jdk9.0.1,高版本的驱动连接方式和旧版本不同 使用JDBC链接MySQL5.0的版本时,其驱动加载语句为:com.mysql.jdbc.Driver。 但在MySQL6.0及MySQL6.0以上的版本中,使用的驱动加载语句为:com.mysql.cj.jdbc.Driver。 <2>将数据库的驱动放在WEB-INF/lib目录下面,再配置构建路径,jar包最终会加入Web app libries这个库下面。 如果你碰到了中文乱码问题,点击这里:https://blog.csdn.net/qq_43753724/article/details/105207985

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Servlet(数据库操作)
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档