Вы действительно пошли совершенно неверным путем, написав JDBC в апплете. Исходный код Апплета публично виден конечному пользователю. Вредоносный конечный пользователь сможет декомпилировать его и увидеть имя / пароль БД и / или отредактировать его, чтобы изменить запросы SQL для выполнения DELETE
или TRUNCATE
или любых других плохих действий. Пока, пока база данных.
Вам необходимо спроектировать и создать «веб-службу», которая прослушивает только определенные URL-адреса и возвращает результаты в общем формате, таком как XML, JSON, CSV или любой другой. Тогда ваш апплет должен просто вызвать именно этот URL URLConnection
и обработать результаты. Существует множество библиотек Java для преобразования объектов Java в формат XML / JSON / CSV и наоборот. Вы можете использовать одну и ту же библиотеку в коде веб-службы и апплета.
Представьте, что вы выбираете JSON и, таким образом, используете Gson для преобразования между Java и JSON, тогда вы в основном можете сделать следующее в сервлете, который действует как "веб-служба":
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Just a basic example. In real, just retrieve data from DB.
List<String> list = new ArrayList<String>();
list.add("item1");
list.add("item2");
list.add("item3");
String json = new Gson().toJson(list);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
это можно получить следующим образом в апплете:
URL url = new URL(getCodeBase(), "servletURL");
Reader reader = new InputStreamReader(url.openStream(), "UTF-8");
List<String> list = new Gson().fromJson(reader, new TypeToken<List<String>>() {}.getType());
// ...