servlet mysql insert_javaWeb使用servlet并且连接数据库向数据库插入数据 | 学步园

本文通过myeclipse创建web项目,演示如何使用servlet接收表单数据并将其插入到MySQL数据库中。首先在index.jsp中创建表单,然后在servlet中处理数据并防止乱码,最后通过DB.java类建立数据库连接,执行插入操作。文章还介绍了数据库的创建和使用Navicat进行管理。
摘要由CSDN通过智能技术生成

1.打开myeclipse,创建一个web项目。

2.在index.jsp   (在WebRoot下面)页面的body里面加入 如下代码:

      
账号:
密码:

3.创建servlet。

(1)点击src——右键——new——package——输入包名字

(2)点击刚创建的包—右键——new——servlet——输入名字—finish。

打开WebRoot——WEB——INF——打开web.xml,可以看见如下信息,myeclipse自动为我们生成了servlet的配置

This is the description of my J2EE component

This is the display name of my J2EE component

LoginServlet

com.hck.LoginServlet

LoginServlet

/servlet/LoginServlet 

我的index.jsp里面表单

   action里面的值就是和

和这个配置里面的蓝色部分一致。把你index.jsp里面action的值,换成你web.xml里面对应的servlet

4.在servlt类里面,接收我们表单传过去的数据,并显示出来。

打开刚创建的servlet,在doPost方法里面,添加如下代码:

response.setContentType("text/html;charset=UTF-8");

request.setCharacterEncoding("UTF-8");  PrintWriter out = response.getWriter();

out

.println(""-//W3C//DTD HTML 4.01 Transitional//EN\">");

out.println("");

out.println(" 

A Servlet");

out.println(" 

");

out.println("账号:"+request.getParameter("userName")+"
");

out.println("密码:"+request.getParameter("userPassword")+"
");  out.print("    This is ");

out.print(this.getClass());

out.println(", using the POST method");

out.println("  ");

out.println("");

out.flush();

out.close();

注意红色部分,上面2句可以防止乱码,一定要加上,下面2句红色,就是用来获取我们传过来的数据,userName和表单里面的

userName要一一对应,就是要一模一样,接收后显示在网页上。

一般这里接收到数据,我们就可以对接受到的数据进行处理,比如把数据写入数据库什么的。

好了,一个简单的servler使用就完成了,部署到tomcat,浏览器访问打开,在表单填入信息,点击登录,就会在另外一个页面显示你填入的信息了。

继续完善:把接收到的数据写入数据库

1.下载安装mysql数据库(安装网上很多,搜搜看)

2.你可以用命令来完成数据的各项操作,也可以用图形界面工具,很方便。比如:Navicat for MySQL。安装好mysql后,点击开始菜单,找到它,点击,出现一个黑窗口

输入密码(你安装的时候后让你设置的),进入后输入 create database mytest;    回车,mytest是数据库名字,你可以自己取

bbf59712904fd15b573fa582b02f2efa.png

创建表:输入     use mytest;   回车

在输入:

create table user(name varchar(20),password varchar(20));   回车

00ba0e4cd48438e91409eb3d7fe3dc54.png

数据库创建完毕,转到项目,把链接mysql数据库的包放入lib文件夹里面。

在项目的包里面创建一个类—DB.java

package com.hck;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class DB {

public static Connection getcon(Connection con)

{

String dbname="mytest";   //你创建的数据库名字

String username="root";    //登陆数据库的账号,默认为root

String password="111111";  //登陆密码

String url="jdbc:mysql://127.0.0.1:3306/"+dbname+"?user="+username+"&password="+password+"";

try {

Class.forName("com.mysql.jdbc.Driver").newInstance();  //反射加载包

} catch (InstantiationException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

try {

con=DriverManager.getConnection(url);

} catch (SQLException e) {

e.printStackTrace();

}

return con;

}

public static void closecon(Connection con)

{

if(con!=null)

{

try {

con.close();

} catch (SQLException e) {

e.printStackTrace();

}

con=null;

}

}

public static Statement getsta(Connection con)

{

Statement sta=null;

try {

sta=con.createStatement();

} catch (SQLException e) {

e.printStackTrace();

}

return sta;

}

public static void closesta(Statement sta)

{

if(sta!=null)

{

try {

sta.close();

} catch (SQLException e) {

e.printStackTrace();

}

sta=null;

}

}

public static PreparedStatement getpsta(Connection con,String sql)

{

PreparedStatement psta=null;

try {

psta=con.prepareStatement(sql);

} catch (SQLException e) {

e.printStackTrace();

}

return psta;

}

public static ResultSet getrs(Statement sta,String sql)

{

ResultSet rs=null;

try {

rs=sta.executeQuery(sql);

} catch (SQLException e) {

e.printStackTrace();

}

return rs;

}

public static void closers(ResultSet rs)

{

if(rs!=null)

{

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

rs=null;

}

}

public static void executeUpdate(Connection con,String sql)

{

Statement sta=null;

try {

sta=con.createStatement();

sta.executeUpdate(sql);

} catch (SQLException e) {

e.printStackTrace();

}

}

}

在你的那个servlet里面添加代码,把doPost 方法里面的数据替换如下: 新增方法private void insertDate(),如下

private String userName;    //接收表单提交过来的账户

private String passWord;     //密码

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");  //设置格式编码

request.setCharacterEncoding("UTF-8");            //设置格式编码

userName = request.getParameter("userName");     //接收表单传过来的用户账号

passWord = request.getParameter("userPassword");  //用户密码

insertDate();    //下面方法,把数据插入数据库

}

private void insertDate() {

Connection con = null;  //一个连接对象

con = (Connection) DB.getcon(con);   //得到一个连接

PreparedStatement ps = null;    //用于插入数据

//sql语句,向表user里面,插入name和pass的值

String sql = "insert into user(name,password) values(?,?)";

ps = (PreparedStatement) DB.getpsta(con, sql);

try {

ps.setString(1, userName);

ps.setString(2, passWord);

ps.executeUpdate();

ps.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

好了,重新启动tomcat,浏览器输入地址访问,填入数据,登陆,打开数据库,那个黑窗体,在里面输入

user mytest;   回车

select * from user;  回车

看表里面是否有数据了,如果有,那恭喜你,成功,如果没有,请检查数据库是否创建正确,表是否创建好,mysql包是否放入项目lib目录,看myeclipse下面,是否报错,包什么错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>