开发者

Execute jdbc applet in browser

开发者 https://www.devze.com 2022-12-14 11:48 出处:网络
import java.sql.*; import java.io.*; import java.awt.*; import java.awt.event.*; import java.applet.*; /* <applet code=\"A0\" width=250 height=200>
import java.sql.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

/*
<applet code="A0" width=250 height=200>
</applet>
*/

public class A0 extends Applet implements ActionListener,ItemListener
{
String msg="";

Button view,delete,create,edit,reapp,exit;
TextField M_head;
int x,i,ans=0,flag;

public void init()
{
setLayout(new FlowLayout(FlowLayout.CENTER,50,3));

view = new Button("view");
delete = new Button("delete");
create = new Button("create");
edit = new Button("edit");
reapp = new Button("reapp");
exit= new Button("exit");
M_head = new TextField(15);

add(view);
add(delete);
add(create);
System.out.println("vikram");
add(edit);
add(reapp);
add(exit);
System.out.println("phaneendra");
add(M_head);

view.addActionListener(this);
delete.addActionListener(this);
create.addActionListener(this);
edit.addActionListener(this);
reapp.addActionListener(this);
exit.addActionListener(this);
M_head.addActionListener(this);




}

public void actionPerformed(ActionEvent ae)
{

String str=ae.getActionCommand();

if(str.equals("view"))
{msg ="1";}
if(str.equals("delete"))
{msg ="2";}
if(str.equals("create"))
{msg ="3";}
if(str.equals("edit"))
{msg ="4";}
if(str.equals("reapp"))
{msg ="5";}
if(str.equals("exit"))
{msg ="6";}

if(msg=="3")
{

try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//String filename = "E:/vikram/conn/new/db/north.mdb";
String filename = "./db/north.mdb";
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
//String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\cheminDeMaBaseEtNomdeLaBdd";
database+=filename.trim();
String head = M_head.getText();
String head1 = head.trim();
Connection con = DriverManager.getConnection(database,"","");
Statement doo = con.createStatement();
//String vi ="create table head1 (Reapporder integer, Amount integer)";
String vi="insert into head1 values(1,2);";

boolean i=false;
i=doo.execute(vi);

if(i)
M_head.setText("Failed to insert");

else
M_head.setText("record inserted");

}


catch(Exception err)
{
System.out.println("Error :"+err);
}


}




}

public void itemStateChanged(ItemEvent ie)
{
repaint();
}

public void paint(Graphics g)
{
g.drawString(msg,70,200); //No use

g.drawString("ANSWER=",6,200); // No use

}
}

This is A0.txt

grant {
permission java.lang.RuntimePermission
"accessClassInPackage.sun.jdbc.odbc";
permission java.util.PropertyPermission
"file.encoding", "read";
};

A0.html file

<html>
<head>


</head>
<body>
<applet code=A0     width=250 height=200></applet>
</body>
</html>

This code is executed in Appletview开发者_JS百科er command, but not in any browser


As commented by others, you really don't want to do this.

Just create a webservice in the server side (which can be a plain vanilla servlet) and make use of java.net.URLConnection in the applet.

Basic Servlet example:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String action = request.getParameter("action"); // Or request.getPathInfo() whatever you want.
    String result = someDAO.doAction(action);
    response.getWriter().write(result);
}

Basic Applet example:

URL url = new URL("http://example.com/databaseservlet?action=someaction");
URLConnection connection = url.openConnection();
InputStream result = connection.getInputStream(); // Important. This actually fires the request! 

Be careful with SQL injections however. Do in no way pass raw SQL queries as request parameters or pathinfo and use PreparedStatement all the time in the DAO code.

As response data format you can use a plain vanilla String (as given in example) or a XML string or a JSON string or maybe even a fullworthy Java object with a little help of Serialization.


You can't do JDBC on an Applet for security reasons.

You must write an Enterprise Application (in Java, .NET, Python, PHP) and deploy it to an application server. In that application you can publish some WebServices so your Applet can finally access your database.

Something like this:

APPLET <-> APPLICATION SERVER (HTTP communication) <-> BACKEND (database)

Here is a Web Site explaining some security related Applet stuff.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号