欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据连接器JDBC在Servlet开发中的使用

程序员文章站 2022-06-30 21:04:13
ServletServlet是使用应用程序设计接口(API)相关类和方法的Java程序,是位于web服务器的服务器端的Java应用程序。HTML通过Servlet操作数据库1.先熟悉一下Servlet的使用首先IDEA建立一个工程…结合下面几条注意事项,按照https://www.cnblogs.com/liusong-funtime/p/9144275.html操作即可如果在选择Tomcat-> Local右边没有出现配置信息,问题可能是你的IDEA有汉化包,需要将汉化包去掉,汉化包文...

Servlet

Servlet是使用应用程序设计接口(API)相关类和方法的Java程序,是位于web服务器的服务器端的Java应用程序。

HTML通过Servlet操作数据库

1.先熟悉一下Servlet的使用

首先IDEA建立一个工程…
结合下面几条注意事项,按照https://www.cnblogs.com/liusong-funtime/p/9144275.html操作即可

  1. 如果在选择Tomcat-> Local右边没有出现配置信息,问题可能是你的IDEA有汉化包,需要将汉化包去掉,汉化包文件在IDEA安装路径下/lib/resource-cn.jar,删除重启IDEA即可。
  2. 如果需要编译Servlet的java类前包含包,如com.cn.userServlet,则web.xml配置文件的< servlet-class >里需要加上包com.cn.userServlet.AServlet
  3. 运行如果出现端口被占用,则可以更改Tomcat的配置,Edit configuration–>将HTTP port改为任意端口,如8078,再运行
  4. 在浏览器打开localhost:8080/web/Hello,其中8080为HTTP port设置的端口,/web为参考博客的第四步中的Application context里的内容,/Hello是web.xml中< url-pattern>里的内容,都可以自己设定。
  5. 如果在浏览器打开localhost:8080/web,得到的是index.jsp文件的内容。

可以添加一个Servlet例子:

package com.cn.userServlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class UserServlet extends HttpServlet {
    public void destroy(){
        super.destroy();
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException{
        String username = request.getParameter("usename");
        if(username == null || username == ""){
            username="No User";
        }
        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println(" <BODY>");
        out.print("  这里是Servlet所在的包和类: ");
        out.print(this.getClass());
        out.println(this.getClass());
        out.println("<br>");
        out.println("使用了doPost方法");
        out.println("<br>");
        out.println("用户名为:"+username);
        out.println(" </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException{
        response.setContentType("text/html,charset=utf-8");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println(" <HEAD><TITLE>a Servlet</TITLE></HEAD>");
        out.println(" <BODY>");
        out.println("    <h1>This is my first Servlet</h1>");
        out.println("    <br>");
        out.print("    This is");
        out.print(this.getClass());
        out.println(",using the POST method");
        out.println(" </BODY>");
        out.println("<HTML>");
        out.flush();
        out.close();
    }
    public void init()
        throws ServletException{

    }
} 

因为前面有包“com.cn.userServlet”,所以对于web.xml的配置文件进行修改,需在< servlet-class >添加com.cn.userServlet。

2.向数据库插入数据

在web(记住是web目录)下新建一个hello.html文件,数据连接器JDBC在Servlet开发中的使用
添加以下内容:

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>
        add.html
    </title>
    <meta http-equiv="content-type" content="text/html;charset=gb2312">
</head>
<body>
<form action="AddServlet"method="post">
    <lable>请输入部门信息:</lable><br><br>
    <lable>部门号:</lable><br>
    <input type="text" name="id"><br>
    <label>部门名:</label><br>
    <input type="text" name="name"><br>
    <label>地址:</label><br>
    <input type="text" name="address"><br>
    <label>部门人数:</label><br>
    <input type="text" name="number"><br><br>
    <input type="submit" value="提交">
</form>
</body>
</html> 

效果图展示(webproject_war_exploded是我Application context里设定的):
数据连接器JDBC在Servlet开发中的使用
在src添加新文件AddServlet.java

package com.cn.add;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;

public class AddServlet extends HttpServlet {
    public void destroy(){
        super.destroy();
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException{
        response.setContentType("text/html;charset=gb2312");
        PrintWriter out = response.getWriter();
        this.doPost(request,response);
        out.flush();
        out.close();
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException{
        System.out.println("到了Servlet!!!");
        response.setContentType("text/html;charset=gb2312");
        request.setCharacterEncoding("gb2312");
        PrintWriter out=response.getWriter();
        String id=request.getParameter("id");
        String name=request.getParameter("name");
        String address = request.getParameter("address");
        int num = Integer.parseInt(request.getParameter("number"));
        Connection conn = null;
        PreparedStatement pstmt = null;
        try{
            Class.forName("com.mysql.cj.jdbc.Driver");
            System.out.println("创建驱动成功!");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC","root","********");
            System.out.println("创建数据库成功!");
            String sql = "INSERT INTO bank(id,name,address,num)VALUES(?,?,?,?)";
            pstmt=conn.prepareStatement(sql);
            pstmt.setString(1,id);
            pstmt.setString(2,name);
            pstmt.setString(3,address);
            pstmt.setInt(4,num);
            int result = pstmt.executeUpdate();
            if(result==1){
                out.print("插入数据成功!");
            }else
            {
                out.print("插入数据失败!请重新插入");
            }

    }catch(Exception e){
            out.println("无法连接数据库!请检查数据库连接是否正确!");
        }
        out.flush();
        out.close();
    }
    public void init()throws ServletException{

    }

} 

配置依赖:https://www.cnblogs.com/Ran-Chen/p/9646187.html(到使用JDBC操作数据库前为止)

同时更改web.xml配置文件改为与AddServlet相关的,因为你需要运行的是这个文件,运行,在浏览器输入localhost:8080/web/hello.html,填完信息后提交,会转到localhost:8080/web/AddServlet,出现成功就说明插入数据成功了。

本文地址:https://blog.csdn.net/Quilan/article/details/108857225