Мне необходимо создать двумерный массив для моего extjs
приложения.
У меня есть запрос mysql
от сервлета, но мне нужно сохранить эти значения в двумерном массиве в javascript.
Я подумал над тем, чтобы сохранить двумерный массив из сервлета (используя tomcat) в двумерном массиве на моей странице jsp
, где я использую сценарий для extjs
.
Моя проблема заключается в понимании того, как можно вызвать из сервлета на страницу jsp
нужную мне переменную и сохранить ее значение в переменной javascript.
Пример:
Servlet
package connect;
import java.awt.List;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.ArrayList;
import java.util.Arrays;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mysql.jdbc.Driver;
import jdk.nashorn.internal.runtime.JSONFunctions;
@WebServlet("/learn")
public class iServlet_debug_1 extends HttpServlet {
private static final long serialVersionUID = 1L;
public iServlet_debug_1() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String connectionString = "jdbc:mysql://localhost:3306/mydb?user=root&password=pass";
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection connection = null;
try {
connection = DriverManager.getConnection(connectionString);
Statement stm = connection.createStatement();
ResultSet rs = ((java.sql.Statement) stm).executeQuery("select * from romanzi");
//ArrayList<ArrayList<Object>> storeArray = new ArrayList<ArrayList<Object>>();
//String[][] storeArray;
String storeArray = null;
//int n = 0;
//int m = 0;
while (rs.next()) {
//first method
/*ArrayList<Object> arr = new ArrayList<Object>();
ArrayList<Object> arr = new ArrayList<Object>();
arr.add(rs.getInt("id"));
arr.add(rs.getString("titolo"));
arr.add(rs.getString("ISBN"));
arr.add(rs.getString("genere"));
arr.add(rs.getInt("Npagine"));
arr.add(rs.getInt("editore"));
storeArray.add(arr);*/
//second method
/*storeArray[n][m]= rs.getString("id");
m++;
storeArray[n][m]= rs.getString("titolo");
m++;
storeArray[n][m]= rs.getString("ISBN");
m++;
storeArray[n][m]= rs.getString("genere");
m++;
storeArray[n][m]= rs.getString("Npagine");
m++;
storeArray[n][m]= rs.getString("editore");
m=0;
n++;*/
storeArray += "["+rs.getString("id")
+","+rs.getString("titolo")
+","+rs.getString("ISBN")
+","+rs.getString("genere")
+","+rs.getString("Npagine")
+","+rs.getString("editore")
+"]";
if(rs.next())
{
storeArray+= ",";
rs.previous();
}
}
response.setContentType("text/plain"); // sets the content type
response.setCharacterEncoding("UTF-8"); // sets the encoding
PrintWriter out = response.getWriter();
out.append(storeArray); // writes the value of the String to the response
}
catch (SQLException e) {
e.printStackTrace();
}
catch (Exception e) {
PrintWriter err = response.getWriter();
err.print("<html><head></head><body>" + e.getMessage() + "</body></html>");
}
finally {
try {
if (connection != null)
connection.close();
} catch (SQLException e) {
}
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
1020 * Javascript *
var temp = (storeArray Servlet variable);
var finalArray = JSON.parse("[" + temp + "]");
or
var finalArray = eval("[" + temp + "]");
Результат, который мне нужен, выглядит примерно так:
var finalArray = [
['value10','value11','value12'],
['value20','value21','value22'],
['value30','value31','value32']
];
Для следующей реализации мне нужно понять, как я могу получить значение сервлета и преобразовать его в переменную загрузки javascript на странице jsp.
По существу:
- Я должен передать: массив переменных массива из сервлета в javascript (потому что мне нужен метод, который позволяет мне осуществлять связь из переменной сервлета и переменной javascript)
- Или строка из сервлета в переменную javascript и после разделения на массив массивов
Вот и все.
Заранее спасибо и извините за мой "не очень хороший" английский.