javaWeb使用servlet并且连接数据库向数据库插入数据
Posted 黄成科
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaWeb使用servlet并且连接数据库向数据库插入数据相关的知识,希望对你有一定的参考价值。
1.打开myeclipse,创建一个web项目。
2.在index.jsp (在WebRoot下面)页面的body里面加入 如下代码:
<div align="center">
<form action="servlet/LoginServlet" method="post"> <!--处理表单的servlet ,需要替换成自己的servlet,在下面创建的 -->
<table>
<tr>
<td>账号:<input name="userName" type="text"/></td>
</tr>
<tr><td>密码:<input name="userPassword" type="password"/></td></tr>
<tr>
<td ><input type="submit" value="登陆"/>
<input type="reset" value="取消"/></td>
</tr>
</table>
</form>
</div>
3.创建servlet。
(1)点击src——右键——new——package——输入包名字
(2)点击刚创建的包—右键——new——servlet——输入名字—finish。
打开WebRoot——WEB——INF——打开web.xml,可以看见如下信息,myeclipse自动为我们生成了servlet的配置
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.hck.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/servlet/LoginServlet</url-pattern>
</servlet-mapping>
我的index.jsp里面表单<form action="servlet/LoginServlet" method="post"> 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("<!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("账号:"+request.getParameter("userName")+"<br>");
out.println("密码:"+request.getParameter("userPassword")+"<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();
注意红色部分,上面2句可以防止乱码,一定要加上,下面2句红色,就是用来获取我们传过来的数据,userName和表单里面的
userName要一一对应,就是要一模一样,接收后显示在网页上。
一般这里接收到数据,我们就可以对接受到的数据进行处理,比如把数据写入数据库什么的。
好了,一个简单的servler使用就完成了,部署到tomcat,浏览器访问打开,在表单填入信息,点击登录,就会在另外一个页面显示你填入的信息了。
继续完善:把接收到的数据写入数据库
1.下载安装mysql数据库(安装网上很多,搜搜看)
2.你可以用命令来完成数据的各项操作,也可以用图形界面工具,很方便。比如:Navicat for MySQL。安装好mysql后,点击开始菜单,找到它,点击,出现一个黑窗口
输入密码(你安装的时候后让你设置的),进入后输入 create database mytest; 回车,mytest是数据库名字,你可以自己取
创建表:输入 use mytest; 回车
在输入:
create table user(name varchar(20),password varchar(20)); 回车
数据库创建完毕,转到项目,把链接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下面,是否报错,包什么错
具体demo下载地址,有详细说明的:http://download.csdn.net/detail/hhhccckkk/5378107
以上是关于javaWeb使用servlet并且连接数据库向数据库插入数据的主要内容,如果未能解决你的问题,请参考以下文章
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
关于JavaWeb项目中Servlet中无法创建数据库连接池问题
关于JavaWeb项目中Servlet中无法创建数据库连接池问题