Java編程加密如何保護(hù)服務(wù)器安全
我們在使用Java編程加密的時候需要注意很多的知識,下面我們就來看看如何應(yīng)對Java編程加密中的相關(guān)問題,希望大家有所收獲。服務(wù)器配置了JTA支持以后(tomcat配置的是JOTM)。
在一個web應(yīng)用程序提出多個數(shù)據(jù)庫在一個事務(wù)范圍內(nèi)進(jìn)行操作的請求以后(這個請求就是通過UserTransaction發(fā)出),就會發(fā)送到Tomcat上,而Tomcat中已經(jīng)配置了事務(wù)管理器(就是TransactionManager),那么就由Java編程加密事務(wù)管理器處理這個請求,執(zhí)行兩階段提交協(xié)議,想各個數(shù)據(jù)庫進(jìn)行提交,而這些數(shù)據(jù)庫驅(qū)動和以往的數(shù)據(jù)庫驅(qū)動有不同,是支持JTA的驅(qū)動,下面是一段示例代碼
- <%@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編程加密的詳細(xì)介紹。
【編輯推薦】