gpt4 book ai didi

java - 我想将 servlet 连接到 .jsp,然后将 servlet 与 midlet 连接

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:26 25 4
gpt4 key购买 nike

我希望移动客户端设备显示 .jsp 文件上的信息。

显然我可以直接做到这一点。因此,我需要将 servlet 连接到 .jsp,以便客户端移动设备可以连接到 servlet。

我无法手动执行此操作,因为我编写的代码很长,而且它还连接到 session 和企业 bean。有什么线索吗?

最佳答案

我有来自 here 的 Midlet 和 Servlet 的小型工作示例.

Midlet代码如下,

import java.io.*;
import java.util.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;

public class MySQLConn extends MIDlet implements CommandListener {
private String username;
private String url = "http://localhost:8080/servlets-examples/servlet/getConnection";
private Display display;
private Command exit = new Command("EXIT", Command.EXIT, 1);;
private Command connect = new Command("Connect", Command.SCREEN, 1);
private TextField tb;
private Form menu;
private TextField tb1;
private TextField tb2;
DBConn db;

public MySQLConn() throws Exception {
display = Display.getDisplay(this);

}

public void startApp() {
displayMenu();
}

public void displayMenu() {
menu = new Form("Connect");
tb = new TextField("Please input database: ","",30,TextField.ANY );

tb1 = new TextField("Please input username: ","",30,TextField.ANY);

tb2 = new TextField("Please input password: ","",30,TextField.PASSWORD);

menu.append(tb);
menu.append(tb1);
menu.append(tb2);
menu.addCommand(exit);
menu.addCommand(connect);
menu.setCommandListener(this);
display.setCurrent(menu);
}

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command command, Displayable screen) {
if (command == exit) {
destroyApp(false);
notifyDestroyed();
} else if (command == connect) {
db = new DBConn(this);
db.start();
db.connectDb(tb.getString(),tb1.getString(),tb2.getString());
}
}

public class DBConn implements Runnable {
MySQLConn midlet;
private Display display;
String db;
String user;
String pwd;
public DBConn(MySQLConn midlet) {
this.midlet = midlet;
display = Display.getDisplay(midlet);
}

public void start() {
Thread t = new Thread(this);
t.start();
}

public void run() {
StringBuffer sb = new StringBuffer();
try {
HttpConnection c = (HttpConnection) Connector.open(url);
c.setRequestProperty("User-Agent","Profile/MIDP-1.0, Configuration/CLDC-1.0");
c.setRequestProperty("Content-Language","en-US");
c.setRequestMethod(HttpConnection.POST);
DataOutputStream os = (DataOutputStream)c.openDataOutputStream();

os.writeUTF(db.trim());
os.writeUTF(user.trim());
os.writeUTF(pwd.trim());
os.flush();
os.close();

// Get the response from the servlet page.
DataInputStream is =(DataInputStream)c.openDataInputStream();
//is = c.openInputStream();
int ch;
sb = new StringBuffer();
while ((ch = is.read()) != -1) {
sb.append((char)ch);
}
showAlert(sb.toString());
is.close();
c.close();
} catch (Exception e) {
showAlert(e.getMessage());
}
}
/* This method takes input from user like db,user and pwd and pass to servlet */
public void connectDb(String db,String user,String pwd) {
this.db = db;
this.user = user;
this.pwd = pwd;
}

/* Display Error On screen*/
private void showAlert(String err) {
Alert a = new Alert("");
a.setString(err);
a.setTimeout(Alert.FOREVER);
display.setCurrent(a);
}
};
}

Servlet 代码如下,

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class getConnection extends HttpServlet {
public void init() { }

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DataInputStream in = new DataInputStream((InputStream)request.getInputStream());
String db = in.readUTF();
String user = in.readUTF();
String pwd = in.readUTF();
String message ="jdbc:mysql://localhost:3306/"+db+","+user+","+pwd;
try {
connect(db.toLowerCase().trim(),user.toLowerCase().trim(), pwd.toLowerCase().trim());
message += "100 ok";
} catch (Throwable t) {
message += "200 " + t.toString();
}
response.setContentType("text/plain");
response.setContentLength(message.length());
PrintWriter out = response.getWriter();
out.println(message);
in.close();
out.close();
out.flush();
}

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}

/* This method connects to MYSQL database*/
private void connect(String db, String user,String pwd) throws Exception {
// Establish a JDBC connection to the MYSQL database server.
//Class.forName("org.gjt.mm.mysql.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+db,user,pwd);
// Establish a JDBC connection to the Oracle database server.
//DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
//Connection conn = DriverManager.getConnection(
// "jdbc:oracle:thin:@localhost:1521:"+db,user,pwd);

// Establish a JDBC connection to the SQL database server.
//Class.forName("net.sourceforge.jtds.jdbc.Driver");
//Connection conn = DriverManager.getConnection(
// "jdbc:jtds:sqlserver://localhost:1433/"+db,user,pwd);
}
}

关于java - 我想将 servlet 连接到 .jsp,然后将 servlet 与 midlet 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8884940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com