package com.testJSP.servlet;
import javax.sql.*;
import javax.naming.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class DBConnection extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=gbk");
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
PrintWriter out = response.getWriter();
Connection conn = null;
PreparedStatement ps = null;
String sql = "";
int flag = - 1;
String username = request.getParameter("username");
HttpSession httpsession = request.getSession();
httpsession.setMaxInactiveInterval(60*24*60);
httpsession.setAttribute("usersession", username);// 设置Session
String link = request.getParameter("link");
String email = request.getParameter("email");
String tel = request.getParameter("tel");
String address = request.getParameter("address");
String postmessage = request.getParameter("postmessage");
try{
conn = getConnection(); //sql2000连接
//conn = setupConn(); //mysql连接
//conn = getConnectionOracle();//Oracle连接
sql = "insert into message values(?,?,?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1,username);
ps.setString(2, link);
ps.setString(3, email );
ps.setString(4, tel);
ps.setString(5, address);
ps.setString(6, postmessage);
flag = ps.executeUpdate();
System.out.println(flag);
if(flag>0)
{
//out.print("<script>" + "alert(/"提交成功!/");"
// + "window.location.href=/"Email.jsp?username="+username+"/";</script>");//返回Email.jsp并传用户名
out.print("<script>" + "alert(/"提交成功!/");"
+ "window.location.href=/"Email.jsp/";</script>");//返回Email.jsp 把username保存到session
//out.print("<script>" + "alert(/"提交成功!/");</script>");
//request.getRequestDispatcher("Email.jsp").forward(request,response); // 重定向页面跳转
//response.sendRedirect("Email.jsp"); //用response.sendRedirect向页面跳转
}
}catch (Exception e) {
System.out.println("添加 出错");
e.printStackTrace();
} finally {
closeResource(null, ps, conn);
}
}
/**
* sqlserver2000数据库连接
* @return
*/
public static Connection getConnection()throws SQLException,IllegalAccessException{
Connection conn= null;
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=POST";
String user = "sa";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功!");
}catch(ClassNotFoundException e)
{System.out.println("数据库连接失败:"+e.getMessage());}
catch (SQLException ex){
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
}
return conn;
}
/**
* Oracle数据库连接
* @return
*/
public static Connection getConnectionOracle(){
Connection con = null;
String url = "jdbc:oracle:thin:@localhost:1521:POST";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(url,"MY","1234567");
System.out.println("Oracle数据库连接成功!");
}catch(Exception e){
System.out.println("数据库连接出错:"+e);
e.printStackTrace();
}
return con;
}
/**
* mysql数据库连接
* @return
*/
public Connection setupConn(){
try{
//定义数据库连接的驱动程序
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://localhost:3306/post?";
//使用DriverManager类的getConnection()方法建立连接
Connection conn = DriverManager.getConnection(url+"user=root&password=root" +
"&useUnicode=true&characterEncoding=gb2312");//连接数据源
return conn;
}catch(Exception e){
e.printStackTrace();
System.out.println("数据库连接失败!" + e);
return null;
}
}
/**
* Aceess数据库连接,要配置事件源
* @return
*/
public Connection getConnectionAceess(){
try{
//定义数据库连接的驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:POST;";
//使用DriverManager类的getConnection()方法建立连接
Connection conn = DriverManager.getConnection(url);//连接数据源
return conn;
}catch(Exception e){
e.printStackTrace();
System.out.println("数据库连接失败!" + e);
return null;
}
}
/**
* 关闭数据库资源
* @param rs
* @param stmt
* @param conn
*/
public static void closeResource(ResultSet rs,Statement stmt,Connection conn){
if(rs!=null){
try {
rs.close();
rs = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt!=null){
try {
stmt.close();
stmt = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
conn = null;
}catch(SQLException ex) {
System.err.println(ex.getMessage());
ex.printStackTrace();
System.out.println("-------------------数据库关闭失败!");
}
}
}
}