十、Servlet连接数据库进行插入数据,插入成功则跳转到成功页面

1、Servlet连接数据库进行插入数据,插入成功则跳转到成功页面

 SaveUserServlet

package com.bj;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.catalina.connector.Request;

public class SaveUserServlet extends HttpServlet {

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  req.setCharacterEncoding("utf-8");
  //获取表单提交的用户数据:
  String name=req.getParameter("username");
  String code=req.getParameter("usercode");
  Connection conn=null;
  PreparedStatement ps=null;
  int count=0;
  //加载驱动:
  try {
   Class.forName("oracle.jdbc.OracleDriver");
   try {

 //获取连接:
    conn=DriverManager.getConnection("jdbc:oracle:thin:@10.125.4.55:1521:orcl","zjaOracle","oracle123");
    conn.setAutoCommit(false);
    String sqlString="insert into servletTest values(?,?)";

//预编译:
    ps=conn.prepareStatement(sqlString);
    ps.setString(1, name);
    ps.setString(2, code);
    System.out.println(ps.executeUpdate());
    count=ps.executeUpdate();
    
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   if(conn!=null){
    try {
     conn.close();
    } catch (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
   if(ps!=null){
    try {
     ps.close();
    } catch (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }
  if(count==1){
   //保存成功,“跳转”到成功页面
   //转发:刷新多次前台页面(浏览器)后数据库表中会新增多个相同的记录
   //req.getRequestDispatcher("/success.html").forward(req, resp);
   //重定向:(在浏览器上刷新的最后一次的请求记录),刷新多次后,数据库表中仍然只会存在刚刚新增的一条记录;
   resp.sendRedirect(req.getContextPath()+"/success.html");
  }else if (count==2) {
   resp.sendRedirect(req.getContextPath()+"/fail.html");
  }
 }
}

备注:获取MYSQL和Oracle数据库连接的方式

/*

thin是oracle的一种驱动模式 它还有别的驱动模式 比如oci,一般都是用thin的
 jdbc:oracle:thin:@     协议
 localhost                 IP地址
 1521                    Oracle经典端口
 orcl         数据库实例名
协议的作用:协议是两台电脑在通讯的时候提前定义好的一套数据传送格式。协议是通讯数据格式,提前制定好的规范,按照这个中特定的格式发送数据包,对方接收到数据包之后按照这种规范解析这个数据包,获取有价值的数据。

MYSQL的:
jdbc:mysql://localhost:3366/bjpowernode;
jdbc:mysql:// 协议
localhost    ip地址
3366         端口号
bjpowernode  数据库实例名字

*/

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>prj-servlet11</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>save.html</welcome-file>
  </welcome-file-list>
  <servlet>
   <servlet-name>SaveUser</servlet-name>
   <servlet-class>com.bj.SaveUserServlet</servlet-class>
  </servlet>
  <servlet-mapping>
   <servlet-name>SaveUser</servlet-name>
   <url-pattern>/SaveUser</url-pattern>
  </servlet-mapping>
</web-app>

 Save.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <form action="/prj-servlet11/SaveUser">
 username<input type="text" name="username">
 usercode<input type="text" name="usercode">
 <input type="submit" value="save">
 <!-- 上面的标签表明当点击save按钮的时候,就可以将请求路径/prj-servlet18/save发过去 -->
 </form>
</body>
</html>

success.html 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
成功
</body>
</html>

 

posted @ 2017-02-16 10:19  爱笑的berg  阅读(727)  评论(0编辑  收藏  举报