📄 dba.html
字号:
<PRE><HTML><BODY><APPLET CODE=DbaOdbAppl.class WIDTH=200 HEIGHT=100></APPLET></BODY></HTML></PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif">And here is how to start the applet:</FONT><PRE> appletviewer DbaOdb.html</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><P><STRONG>Reading a Stack Trace:</STRONG>If the <A HREF="./Code/DbaOdbAppl.java">DbaOdbAppl.java</A> appletis launched without a policy file, the following stack traceis generated when the end user clicks the <CODE>Click Me</CODE>button.</FONT><PRE> java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc )</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif">The first line in the above stack trace tells you access is denied.This means this stack trace was generated because the applet tried toaccess a system resource without the proper permission. The secondline means you need a <CODE>RuntimePermission</CODE> that givesthe applet access to the <CODE>sun.jdbc.odbc</CODE> package.This package provides the JDBC-ODBC bridge functionality to theJava<A HREF="#TJVM"><SUP>1</SUP></A> virtual machine (VM).<P>You can use Policy tool to create the policy file you need,or you can create it with an ASCII editor. Here is the policyfile with the permission indicated by the stack trace:</FONT><PRE>grant { permission java.lang.RuntimePermission "accessClassInPackage.sun.jdbc.odbc";};</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><P>Run the applet again, this time with a policy file named<CODE>DbaOdbPol</CODE> that has the above permission in it:</FONT><PRE> appletviewer -J-Djava.security.policy=DbaOdbPol DbaOdb.html</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif">You get a stack trace again, but this time it is a differenterror condition.</FONT><PRE> java.security.AccessControlException: access denied (java.lang.RuntimePermission file.encoding read)</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif">The stack trace means the applet needs read permission to the encoded (binary) file.Here is the <CODE>DbaOdbPol</CODE> policy file with the permissionindicated by the stack trace added to it:</FONT><PRE> grant { permission java.lang.RuntimePermission "accessClassInPackage.sun.jdbc.odbc"; permission java.util.PropertyPermission "file.encoding", "read"; };</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif">Run the applet again. If you use the above policy filewith the Runtime and Property permissions indicated, itworks just fine.</FONT><PRE> appletviewer -J-Djava.security.policy=DbaOdbPol DbaOdb.html</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A NAME="serv"></A><H3>Database Access by Servlets</H3>As you learned in Lesson 6, servlets are under the securitypolicy in force for the web server under which they run. Whenthe database read and write code is added to the <CODE>FileIOServlet</CODE> from Lesson 6, the <A HREF="./Code/DbaServlet.java">DbaServlet.java</A> servletfor this lesson executes without restriction under Java WebServer<FONT SIZE="-2"><SUP>TM</SUP></FONT> 1.1.1. <P>The web server has to be configured to locate thedatabase. Consult your web server documentation ordatabase administrator for help. With Java WebServer 1.1.1,the configuration setup involves editing the startup scriptswith such things as environment settings for loading the ODBC driver,and locating and connecting to the database. <P><IMG SRC="./Art/dba1.gif" WIDTH="252" HEIGHT="129" ALT=""><TABLE BORDER="0" CELLSPACING="2" CELLPADDING="2"><TR><TD><IMG SRC="./Art/dba2.gif" WIDTH="247" HEIGHT="157" ALT=""></TD></TR></TABLE></FONT><PRE>import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.sql.*;import java.net.*;import java.io.*;public class DbaServlet extends HttpServlet { private Connection c; final static private String _driver = "sun.jdbc.odbc.JdbcOdbcDriver"; final static private String _user = "username"; final static private String _pass = "password"; final static private String _url = "jdbc:odbc:jdc";public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<title>Example<title>" + "<body bgcolor=FFFFFF>"); out.println("<h2>Button Clicked</h2>"); String DATA = request.getParameter("DATA"); if(DATA != null){ out.println("<STRONG>Text from form:</STRONG>"); out.println(DATA); } else { out.println("No text entered."); }//Establish database connection try{ Class.forName (_driver); c = DriverManager.getConnection(_url, _user, _pass); } catch (Exception e) { e.printStackTrace(); System.exit(1); } try{//Code to write to database Statement stmt = c.createStatement(); String updateString = "INSERT INTO dba " + "VALUES ('" + DATA + "')"; int count = stmt.executeUpdate(updateString);//Code to read from database ResultSet results = stmt.executeQuery( "SELECT TEXT FROM dba "); while(results.next()){ String s = results.getString("TEXT"); out.println("<BR> <STRONG>Text from database:</STRONG>"); out.println(s); } stmt.close(); }catch(java.sql.SQLException e){ System.out.println(e.toString()); } out.println("<P>Return to <A HREF="../dbaHTML.html">Form</A>"); out.close(); }}</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A NAME="more"></A><H3>More Information</H3>You can find more information on variable access settings in the<A HREF="http://java.sun.com/docs/books/tutorial/java/javaOO/index.html">Objectsand Classes</A> trail in<A HREF="http://java.sun.com/docs/books/tutorial">The Java Tutorial</A><P>_______<BR><A NAME="TJVM"><SUP>1</SUP></A> As used on this web site, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.<P ALIGN="RIGHT"><FONT SIZE="-1">[<A HREF="#top">TOP</A>]</FONT></FONT></TD></TR></TABLE><!-- ================ --><!-- End Main Content --><!-- ================ --></FONT></TD></TR></TABLE><!-- Copyright Insert --><BR CLEAR="ALL"><FORM ACTION="/cgi-bin/search.cgi" METHOD="POST"><TABLE WIDTH="100%" CELLPADDING="0" BORDER="0" CELLSPACING="5"> <TR> <TD VALIGN="BOTTOM"></TD></TR><A HREF="/servlet/PrintPageServlet"><IMG SRC="/images/printbutton.gif" WIDTH="155" HEIGHT="25" ALT="Print Button" BORDER="0"></A> <CENTER> <FONT SIZE="-1" COLOR="#999999" FACE="Verdana, Arial, Helvetica, sans-serif"> [ This page was updated: <!-- new date --> 31-Mar-2000 ]</font></CENTER> </TD> </TR> <TR> <TD BGCOLOR="#CCCCCC"> <IMG SRC="/images/pixel.gif" HEIGHT="1" WIDTH="1" ALT=""></TD> </TR> <TR> <TD> <CENTER> <FONT SIZE="-2" FACE="Verdana, Arial, Helvetica, sans-serif"> <A HREF="http://java.sun.com/products/">Products & APIs</A> | <A HREF="/developer/index.html">Developer Connection</A> | <A HREF="/developer/infodocs/index.shtml">Docs & Training</A> | <A HREF="/developer/support/index.html">Online Support</A><BR> <A HREF="/developer/community/index.html">Community Discussion</A> | <A HREF="http://java.sun.com/industry/">Industry News</A> | <A HREF="http://java.sun.com/solutions">Solutions Marketplace</A> | <A HREF="http://java.sun.com/casestudies">Case Studies</A> </FONT> </CENTER> </TD> </TR> <TR> <TD BGCOLOR="#CCCCCC"> <IMG SRC="/images/pixel.gif" HEIGHT="1" WIDTH="1" ALT=""></TD> </TR> <TR> <TD ALIGN="CENTER"> <FONT SIZE="-2" FACE="Verdana, Arial, Helvetica, sans-serif"> <A HREF="http://java.sun.com/docs/glossary.html">Glossary</A> - <A HREF="http://java.sun.com/applets/">Applets</A> - <A HREF="http://java.sun.com/docs/books/tutorial/">Tutorial</A> - <A HREF="http://java.sun.com/jobs/">Employment</A> - <A HREF="http://java.sun.com/nav/business/">Business & Licensing</A> - <A HREF="http://java.sun.com/javastore/">Java Store</A> - <A HREF="http://java.sun.com/casestudies/">Java in the Real World</A> </FONT> </TD> </TR> <TR> <TD> <CENTER> <FONT SIZE="-2" FACE="Verdana, Arial, Helvetica, sans-serif"> <a href="/siteinfo/faq.html">FAQ</a> | <a href="/feedback/index.html">Feedback</a> | <a href="http://www.dynamicdiagrams.net/mapa/cgi-bin/help.tcl?db=javasoft&dest=http://java.sun.com/">Map</a> | <A HREF="http://java.sun.com/a-z/index.html">A-Z Index</A> </FONT> </CENTER> </TD> </TR> <TR> <TD> <TABLE WIDTH="100%" CELLPADDING="0" BORDER="0" CELLSPACING="0"> <TR> <TD WIDTH="50%"> <FONT SIZE="-2" FACE="Verdana, Arial, Helvetica, sans-serif"> For more information on Java technology<BR> and other software from Sun Microsystems, call:<BR> </FONT> <FONT SIZE="-1" FACE="Verdana, Arial, Helvetica, sans-serif"> (800) 786-7638<BR></FONT> <FONT SIZE="-2" FACE="Verdana, Arial, Helvetica, sans-serif"> Outside the U.S. and Canada, dial your country's <A HREF="http://www.att.com/business_traveler/attdirecttollfree/">AT&T Direct Access Number</A> first.<BR> </FONT> </TD> <TD ALIGN="RIGHT" WIDTH="50%"> <A HREF="http://www.sun.com"><IMG SRC="/images/lgsun.gif" width="64" height="30" border="0" ALT="Sun Microsystems, Inc."></A><BR> <FONT SIZE="-2" FACE="Verdana, Arial, Helvetica, sans-serif"> Copyright © 1995-2000 <A HREF="http://www.sun.com">Sun Microsystems, Inc.</A><BR> All Rights Reserved. <A HREF="http://www.sun.com/share/text/termsofuse.html">Terms of Use</A>. <A HREF="http://www.sun.com/privacy/">Privacy Policy</A>. </FONT> </TD> </TR> </TABLE> </TD> </TR> </TABLE></FORM><!-- End Copyright Insert --></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -