AJAX self taught exercise without refreshing submit and modify database data and display

  • 2020-05-26 09:55:11
  • OfStack

The request.jsp page has two text, rocarsId and ccrn.
The fields msg_id and ccrn correspond to the rocars table in the database. Now to modify the value of ccrn in the interface, ajax is submitted to the response.jsp page, and the RocarsEntiy.updateCcrn method is called to update the corresponding ccrn. There is no refresh in the end
Code:
request.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
<script language="javascript"><!-- 
function GetXmlHttpObject(){ 
    var xmlHttp = null; 
    try{ 
        xmlHttp = new XMLHttpRequest(); 
    }catch(e){ 
        try{ 
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
        }catch(e){ 
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
    } 
    return xmlHttp; 

} 
function updateCcrn(rocarsId,ccrn){ 
alert(rocarsId) 
alert(ccrn) 
    xmlHttp = GetXmlHttpObject(); 
    if(xmlHttp == null){ 
        alert ("you browser don't support the ajax"); 
         return; 
    } 
    var url = "./response.jsp"; 
    url = url + "?rocarsId="+ rocarsId; 
    url = url + "&ccrn="+ ccrn; 
    url = url + "&sid ="+ Math.random(); 
    xmlHttp.onreadystatechange = stateChanged; 
    xmlHttp.open("GET", url, true); 
    xmlHttp.send(null); 
} 
function getCcrn(str){ 
    xmlHttp = GetXmlHttpObject(); 
    if(xmlHttp == null){ 
        alert ("you browser don't support the ajax"); 
         return; 

    } 
    var url = "./response.jsp"; 
    url = url + "?q="+ str; 
    url = url + "&sid ="+ Math.random(); 
    xmlHttp.onreadystatechange = stateChanged; 
    xmlHttp.open("GET", url, true); 
    xmlHttp.send(null); 
} 
function stateChanged() 
{ 
    if(xmlHttp.readyState==4) 
    { 
        document.getElementById("rocarsccrn").value = xmlHttp.responseText; 
    } 
} 
// --></script> 
</head> 
<body> 
<form name="form1" action="" method="post"> 
    <label>rocarsId:</label><input type="text" name="rocarsId" value="140" /> 
    <label>ccrn:</label><input type="text" id="rocarsccrn" name="rocarsccrn" onchange="updateCcrn(document.form1.rocarsId.value,this.value)"/> 
</form> 
</body> 
</html>

response.jsp

<%@ page language="java" contentType="text/plain; charset=UTF-8" 
pageEncoding="UTF-8"%> 
<%@ page import="com.lwf.eus.util.*,java.util.*,com.lwf.eus.entity.*,com.lwf.eus.bean.*" %> 
<% 
    String rocarsId = request.getParameter("rocarsId"); 
    String ccrn = request.getParameter("ccrn"); 
    System.out.println("rocarsId:" + rocarsId); 
    System.out.println("ccrn:" + ccrn); 
    RocarsEntity.updateCcrnById(rocarsId,ccrn); 
    out.print(ccrn); 
%>

RocarsEntity.java

package com.lwf.eus.entity; 
import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.Vector; 
import com.lwf.eus.bean.RocarsBean; 
import com.lwf.eus.util.ConnectionManager; 
public class RocarsEntity { 
    public static Vector getRocarsList() { 
        Vector vRocars = new Vector(); 
        //Connection conn = ConnectionManager.getConnection(); 
        Connection conn = ConnectionManager.getConnectionFromDS(); 
        Statement st = ConnectionManager.createStatement(conn); 
        String sql = "select msg_id,ccrn from rocars"; 
        ResultSet rs = null; 
        try { 
            rs = st.executeQuery(sql); 
            while (rs.next()) { 
                RocarsBean rocars = new RocarsBean(); 
                rocars.setRocarsId(rs.getString(1)); 
                rocars.setCcrn(rs.getString(2)); 
                vRocars.addElement(rocars); 
            } 
        } catch (SQLException e) { 
            e.printStackTrace(); 
        } finally { 
            try { 
                if (rs != null) { 
                    rs.close(); 
                } 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
            try { 
                if (st != null) { 
                    st.close(); 
                } 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
            try { 
                if (conn != null) { 
                    conn.close(); 
                } 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
            return vRocars; 
        } 

    } 

    public static RocarsBean getRocarsListById(String rocarsId){ 
        Connection conn = ConnectionManager.getConnectionFromDS(); 
        Statement st = ConnectionManager.createStatement(conn); 
        String sql = "select * from rocars where msg_id=" + rocarsId; 
        ResultSet rs = null; 
        RocarsBean rocars= null; 
        try { 
            rs = st.executeQuery(sql); 
            rocars = new RocarsBean(); 
            while (rs.next()) {                 
                rocars.setRocarsId(rs.getString("msg_id")); 
                rocars.setCcrn(rs.getString("ccrn")); 
            } 
        } catch (SQLException e) { 
            e.printStackTrace(); 
        } finally { 
            try { 
                if (rs != null) { 
                    rs.close(); 
                } 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
            try { 
                if (st != null) { 
                    st.close(); 
                } 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
            try { 
                if (conn != null) { 
                    conn.close(); 
                } 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
            return rocars; 
        } 
    } 
    public static void updateCcrnById(String rocarsId, String ccrn) 
    { 
        Connection conn = null; 
        Statement stmt = null; 
        try { 
            conn = ConnectionManager.getConnectionFromDS(); 
            stmt = ConnectionManager.createStatement(conn); 
            String sqlStr = "update rocars set ccrn= '"+ ccrn + "'" + "where msg_id=" + rocarsId ; 
            stmt.executeUpdate(sqlStr); 
        } catch (SQLException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } finally{ 

            try { 
                if (stmt != null) { 
                    stmt.close(); 
                } 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
            try { 
                if (conn != null) { 
                    conn.close(); 
                } 
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
}

ConnectionManager.java
You can use JDBC directly or you can call JNDI for weblogic's data source.

package com.lwf.eus.util; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 
import javax.naming.Context; 
import javax.naming.InitialContext; 
import javax.naming.NamingException; 
import javax.sql.DataSource; 
public class ConnectionManager { 
    public static Connection getConnection(){ 
        Connection conn = null; 
        String url = "jdbc:postgresql://192.168.0.180/getseus"; 
        String userName = "getsdbadmin"; 
        String pwd = "powerdb"; 
        try { 
            Class.forName("org.postgresql.Driver").newInstance(); 
            conn = DriverManager.getConnection(url,userName,pwd); 
        } catch (SQLException e) { 
            e.printStackTrace(); 
        } catch (ClassNotFoundException e) { 
            e.printStackTrace(); 
        } catch (InstantiationException e) { 
            e.printStackTrace(); 
        } catch (IllegalAccessException e) { 
            e.printStackTrace(); 
        } catch (Exception e){ 
            e.printStackTrace(); 
        } 

        return conn; 
    } 

    public static Connection getConnectionFromDS(){ 
        Connection conn = null; 
        Context ctx = null; 
        try { 
            ctx = new InitialContext(); 
            DataSource ds = (DataSource)ctx.lookup("JNDIPG"); 
            conn = ds.getConnection(); 
        } catch (NamingException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } catch (SQLException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } 

        return conn; 

    } 

    public static Statement createStatement(Connection conn){ 
        Statement st = null; 
            try { 
                st = conn.createStatement(); 

            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
        return st; 
    } 
}

Related articles: