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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值