使用servlet + jdbc完成数据库用户添加功能

  1. 首先写前端展示页面,在web的目录下创建一个前端页面register.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>成都文理注册页面</title>
</head>
<body>
<center>
    <form action="http://localhost:8080/MyWebDemo002_war_exploded/register" method="get">
        <div style="background-color: gray;width: 60%;height: 400px">
            <p>
                用户名:<input type="text" name="username" value="">
            </p>
            <p>
                密码:<input type="password" name="password" value="">
            </p>
            <p>
                男:<input type="radio" name="sex" value="man" checked="checked">
                女:<input type="radio" name="sex" value="woman">
            </p>
            <p>
                唱歌:<input type="checkbox" name="hobbit" value="music">
                运动:<input type="checkbox" name="hobbit" value="sports">
                游戏:<input type="checkbox" name="hobbit" value="game">
            </p>
            <p>
                <input type="submit" value="注册">
            </p>
            <p>
                <input type="hidden" name="button" value="add">
            </p>
        </div>
    </form>
    </div>
</center>
</body>
</html>
  1. 在java的com.openlab包下创建一个JdbcConnectionUtils类,用jdbc连接数据库,写一个获取连接和一个关闭数据库连接的方法

package com.openlab;

import java.sql.*;

public class JdbcConnctionUtils {
    String url = "jdbc:mysql://localhost:3306/student?serverTimezone=Asia/Shanghai";
    String user = "root";
    String password = "root";
    String driverClassName = "com.mysql.cj.jdbc.Driver";//com.mysql.cj.jdbc.Driver 8.0的驱动
    Connection conn = null;

    public Connection getConnection() {
        try {
            Class.forName(driverClassName);
            conn = DriverManager.getConnection(url, user, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    //关闭数据库连接
    public void closeAll(Connection _conn, Statement _st, ResultSet _rs) {
        if (_rs != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (_st != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        //关闭conn
        if (_conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
  1. 写一个RegisterServlet类用来继承HttpServlet类,使用doGet方法来注册页面需要提交的值,对数据库进行插入操作,添加用户

package com.openlab;

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 java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Enumeration;

@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //接着注册页面提交的值
        String username = req.getParameter("username");
        String password =req.getParameter("password");
        System.out.println(username);
        System.out.println(password);

        String sex=req.getParameter("sex");
        System.out.println(sex);

        String hidden=req.getParameter("button");
        System.out.println(hidden);
        if (hidden.equals("add")){
            System.out.println("调用数据库添加的操作。。。");
        }else {
            System.out.println("调用数据库修改操作的代码");
        }

        //获取多个爱好
        String hobbits[] = req.getParameterValues("hobbit");
        String love = "";
        for (String hobbit:hobbits ){
            System.out.println("爱好有:"+hobbit);
            love+=hobbit+";";
        }

        //获取页面请求的多个参数的值
        Enumeration<String> enumeration = req.getHeaderNames();
        while (enumeration.hasMoreElements()){
            System.out.println(enumeration.nextElement());;
        }

        //页面输出
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter writer = resp.getWriter();
        writer.println(username);

        //保存到数据库
        JdbcConnctionUtils jdbc=new JdbcConnctionUtils();
        //sql语句
        String sql = "insert into stu(username,password,sex,hobbit) values(?,?,?,?)";
        //获取数据库链接
        Connection conn = jdbc.getConnection();
        PreparedStatement pst= null;
        try {
            pst = conn.prepareStatement(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //pst
        try {

            pst.setString(1,username);
            pst.setString(2,password);
            pst.setString(3,sex);
            pst.setString(4,love);
            int rows = pst.executeUpdate();
            if (rows>0){
                writer.println("添加成功");
            }else {
                writer.println("添加失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //关闭结果集
        jdbc.closeAll(conn,pst,null);
    }


    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //处理post方式提交表单乱码数据
        req.setCharacterEncoding("Utf-8");
        doPost(req,resp);
    }
}

数据库添加用户完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用JSP、ServletJDBC对接支付宝接口,您需要进行以下步骤: 1. 注册支付宝开发者账号并创建应用。 2. 下载支付宝SDK,并将其添加到您的项目中。 3. 在JSP页面中添加一个表单,该表单包含用户要支付的详细信息,例如订单号、商品描述和价格。 4. 创建一个Servlet,该Servlet将获取表单数据并将其发送到支付宝接口。 5. 在Servlet使用JDBC连接到您的数据库,并将支付信息保存在数据库中。 6. 从支付宝服务器接收响应,并在JSP页面上显示支付结果。 7. 在Servlet中更新数据库中的订单状态,以便您可以跟踪订单状态。 以下是一个简单的示例: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ page import="com.alipay.api.AlipayApiException"%> <%@ page import="com.alipay.api.AlipayClient"%> <%@ page import="com.alipay.api.DefaultAlipayClient"%> <%@ page import="com.alipay.api.request.AlipayTradePagePayRequest"%> <%@ page import="java.sql.*" %> <% // 获取表单数据 String orderNo = request.getParameter("orderNo"); String subject = request.getParameter("subject"); String totalAmount = request.getParameter("totalAmount"); // 连接到数据库 Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password"); String sql = "INSERT INTO orders (orderNo, subject, totalAmount) VALUES (?, ?, ?)"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, orderNo); pstmt.setString(2, subject); pstmt.setString(3, totalAmount); pstmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } // 构造支付宝请求 String app_id = "your_app_id"; String merchant_private_key = "your_merchant_private_key"; String alipay_public_key = "your_alipay_public_key"; String notify_url = "http://www.yourdomain.com/notify_url.jsp"; String return_url = "http://www.yourdomain.com/return_url.jsp"; AlipayClient client = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", app_id, merchant_private_key, "json", "UTF-8", alipay_public_key, "RSA2"); AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest(); alipayRequest.setReturnUrl(return_url); alipayRequest.setNotifyUrl(notify_url); alipayRequest.setBizContent("{\"out_trade_no\":\"" + orderNo + "\"," + "\"total_amount\":\"" + totalAmount + "\"," + "\"subject\":\"" + subject + "\"," + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}"); String form = ""; try { form = client.pageExecute(alipayRequest).getBody(); } catch (AlipayApiException e) { e.printStackTrace(); } // 显示支付宝支付页面 out.print(form); %> ``` 请注意,以上仅为示例代码,您需要根据自己的实际情况进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南孚程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值