Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Получить данные из базы и передать их в javascript / 7 сообщений из 7, страница 1 из 1
09.08.2012, 23:17:15
    #37911437
Lasa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные из базы и передать их в javascript
Помогите разобраться, пожалуйста.
Дали мне задачу написать зимлет для Zimbra. Зимлет - это javascript.
Суть - зная email обратиться в базу данных (Postgresql), выполнить запрос, получить из базы три строковых значения и передав эти значения в строку url как параметры, открыть новое окно.
В зимлете обратится к базе данных нельзя. Единственное, что я нагуглила, это вот такой совет
1. You should create one jsp which opens Mysql connection to DB, takes the information form the HTTP request and saves the information.
2. From JS you crate GET/POST request to the jsp from point 1 with information in HTTP request
Вот мой код, пример jsp нашла в интернете. С java никогда в жизни не сталкивалась, может тут какя-то очевидная для специалистов нелепость, из-за чего не срабатывает код.
jsp
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<%
 		java.sql.Connection con;
		java.sql.Statement s;
		java.sql.ResultSet rs;
		java.sql.PreparedStatement pst;

		con = null;
		s = null;
		pst = null;
		rs = null;

		String url = "jdbc:postgresql://ххх.0.0.1:5451/dbphone";
		String id = "postgres";
		String pass = "";

	             Class.forName("postgresql.Driver");
		con = java.sql.DriverManager.getConnection(url, id, pass);

		String domainUser = (String) request.getParameter("userEmail");

		String sql = "SELECT domain, extension, password FROM v_extensions WHERE description='web' AND user_list='|"
				+ domainUser + "|'";

		try {
			s = con.createStatement();
			rs = s.executeQuery(sql);

			while (rs.next()) {
				request.setAttribute("domain", rs.getString("domain"));
				request.setAttribute("extension", rs.getString("extension"));
				request.setAttribute("password", rs.getString("password"));
			}

		} catch (Exception e) {
		} finally {
			if (rs != null)
				rs.close();
			if (s != null)
				s.close();
			if (con != null)
				con.close();
		} 
	%>
</body>
</html>



zimlet
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
imogo_zimbra_call_HandlerObject.prototype._click =
    function() {
        var userEmail = this.getUsername();
        var jspUrl = this.getResource("PostgresRequest.jsp");
        var jspUrlWithParameter = jspUrl + "?userEmail=" + userEmail;
        var response = AjxRpc.invoke(null, jspUrlWithParameter, null, null, true);
        if(response.success == true){
          imogodomain = response.getAttribute("domain");
          imogoextension = response.getAttribute("extension");
            imogopassword = response.getAttribute("password");
        }
        var stringUrl = "http://webgui.imogo.com/ImogoWebPhone/webphone.php?domain=" + imogodomain+ "&extension=" +imogoextension+"&password"+imogopassword;
        window.open(stringUrl, "Imogo Call", "menubar=1,resizable=1,width=235,height=480");
    }


1. В java срабатывает ClassNotFoundException. Message : postgresql.Driver
2. Для теста я убрала вообще базу данных и установила значения атрибутов, как строки: request.setAttribute("domain", "domainname"));
Тогда на javascript выдает ошибку "Нет такой функции response.getAttribute()"
...
Рейтинг: 0 / 0
09.08.2012, 23:46:08
    #37911461
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные из базы и передать их в javascript
Lasa,

Код: java
1.
2.
3.
...
Class.forName("org.postgresql.Driver");
...



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
...
String url = "jdbc:postgresql://localhost/test";
Properties props = new Properties();
props.setProperty("user","fred");
props.setProperty("password","secret");
props.setProperty("ssl","true");
Connection conn = DriverManager.getConnection(url, props);
...



, или

Код: java
1.
2.
3.
4.
...
String url = "jdbc:postgresql://localhost/test?user=fred&password=secret&ssl=true";
Connection conn = DriverManager.getConnection(url);
...
...
Рейтинг: 0 / 0
09.08.2012, 23:48:58
    #37911464
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные из базы и передать их в javascript
Вам и java тут нафиг не нужна - я бы простенький php скрипт накатал. Хотя если у вас на сервере уже есть java - ну тогда да.
Насчет response.getAttribute() -- эта штука отрабатывает на сервере, поэтому javascript иругается
...
Рейтинг: 0 / 0
09.08.2012, 23:51:26
    #37911466
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные из базы и передать их в javascript
++ обновите zimlet до 7.2 .
...
Рейтинг: 0 / 0
10.08.2012, 19:41:05
    #37912765
Lasa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные из базы и передать их в javascript
ivanov-void, Спасибо, к базе теперь обращается.

забыл ник, А как же можно передать значения из jsp в javascript?
...
Рейтинг: 0 / 0
12.08.2012, 10:10:21
    #37913379
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные из базы и передать их в javascript
Lasa А как же можно передать значения из jsp в javascript?
Через http вернее всего.
Ибо jsp - суть сервлет, а js - клиент.
...
Рейтинг: 0 / 0
12.08.2012, 11:02:16
    #37913400
milton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить данные из базы и передать их в javascript
Lasa,

Я с zimlet не работал, но думаю, что в Вашем случае лучше было бы логику получения данных из БД обернуть в веб-сервис, а в JavaScript работать с возвращаемым веб-сервисом json.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Получить данные из базы и передать их в javascript / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]