您好,登錄后才能下訂單哦!
Java中怎么保護服務器安全,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
在一個web應用程序提出多個數據庫在一個事務范圍內進行操作的請求以后(這個請求就是通過UserTransaction發出),就會發送到Tomcat上,而Tomcat中已經配置了事務管理器(就是TransactionManager),那么就由Java編程加密事務管理器處理這個請求,執行兩階段提交協議,想各個數據庫進行提交,而這些數據庫驅動和以往的數據庫驅動有不同,是支持JTA的驅動,下面是一段示例代碼
<%@page contentType="text/html;charset=GB2312"%> <%@page import="java.sql.*"%> <%@page import="javax.sql.*"%> <%@page import="javax.naming.*"%> <%@page import="javax.transaction.UserTransaction"%> <% ResultSet rs = null; Statement stmt = null; UserTransaction ut = null; Connection conn = null; try { Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("jdbc/framework"); ut = (UserTransaction)initCtx.lookup("java:comp/UserTransaction"); conn = ds.getConnection(); ut.begin(); System.out.println("<<< beginning the transaction >>>"); stmt = conn.createStatement( // ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE ); rs = stmt.executeQuery("SELECT PRICE FROM TM_PRODUCT WHERE ID=1"); rs.next(); } catch(Exception e) {e.printStackTrace();} %> <html> <body> Original price: <%=rs.getString("price")%> <br>After update: <% PreparedStatement pstmt = conn.prepareStatement("update tm_product set price=? where id=1"); pstmt.setInt(1,101); pstmt.executeUpdate(); rs = stmt.executeQuery("SELECT PRICE FROM TM_PRODUCT WHERE ID=1"); rs.next(); %> <%=rs.getString("price")%> <br>After Rollback: <% System.out.println("<<< rolling back the transaction >>>"); ut.rollback();//Or ut.commit(); rs = stmt.executeQuery("SELECT PRICE FROM TM_PRODUCT WHERE ID=1"); rs.next(); %> <%=rs.getString("price")%> <%conn.close();%> </body> </html>
關于Java中怎么保護服務器安全問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。