Хорошо, вам нужно обслуживать JSON из локальной базы данных, верно?
Вам не нужен сервер, вы можете обслуживать веб-страницы прямо с вашего локального компьютера (вам просто нужно указать на localhost)
Итак, в основном (и я знаю, что это не будет полным, но я надеюсь, что это хорошее начало)
Вы должны:
- Установите контейнер сервлетов (Tomcat или Jetty), они очень просты в использовании.
- Создание страницы сервлета или JSP для отображения данных (JSP также просты)
- Создание соединения с использованием JDBC с локальной базой данных, такой как Derby
- Используйте библиотеку для преобразования ваших данных в JSON
Установить tomcat
(я опишу для UNIX, но то же самое для Windows)
Загрузите его отсюда , а затем разархивируйте файл в какой-то каталог, который вам нравится (например, / home / you / или C: \ Users \ you \)
Откройте терминал и перейдите в каталог tomcat bin
и введите catalina.sh run
, который запустит tomcat, в вашей системе должна быть установлена Java
Откройте ваш браузер в http://localhost:8080
Это должно выглядеть так:
Кот работает http://a.imageshack.us/img180/8414/capturadepantalla201007l.png
Создание файла JSP
Далее перейдите в каталог tomcat webapps
, он должен содержать следующие папки:
ROOT/<br>
docs/<br>
examples/<br>
host-manager/<br>
manager/
Создайте новый, например your
или любой другой, и внутри создайте файл Hello.jsp
со следующим:
Hello.jsp
----------
Hello, world
А затем откройте в своем браузере: http://localhost:8080/your/Hello.jsp
Должно выглядеть так:
привет, мир http://a.imageshack.us/img541/1162/capturadepantalla201007h.png
Создание программы JDBC
Далее, в вашем веб-приложении your
создайте каталог: WEB-INF/lib
и сохраните там драйвер derby JDBC, его можно получить по адресу здесь
Измените файл Hello.jsp, чтобы создать пример таблицы:
<%@page import="java.sql.*, java.util.*"%>
<%!
public String getData() {
List list = new ArrayList();
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection connection = DriverManager.getConnection("jdbc:derby:yourdb;create=true");
// The first time:
PreparedStatement pstmt = connection.prepareStatement(
"CREATE TABLE PEOPLE\n"+
"(PERSON_ID INT NOT NULL GENERATED ALWAYS AS IDENTITY\n"+
" CONSTRAINT PEOPLE_PK PRIMARY KEY, PERSON VARCHAR(26))");
pstmt.executeUpdate();
pstmt = connection.prepareStatement("INSERT INTO PEOPLE(PERSON) VALUES('OSCAR')");
pstmt.executeUpdate();
} catch( Exception e ) {
throw new RuntimeException( e );
}
return "";
}
%>
:)
<%
getData();
%>
И снова выполните свой JSP, перейдя к localhost:8080/your/Hello.jsp
Если вы выполните его дважды, система сообщит вам, что таблица уже существует:
Выполнить его дважды http://a.imageshack.us/img707/7960/capturadepantalla201007v.png
Все в порядке, мы уже создали таблицу.
Использование библиотеки для вывода JSON
Shudown tomcat, но нажимает contrl-c
Загрузите и скопируйте в свой каталог WEB-INF / lib json-simple jar. Вы можете получить его от здесь
Запустить кота снова
Прокомментируйте код создания в JSP и замените его для SQL-запроса следующим образом:
<%@page import="java.sql.*, java.util.*, org.json.simple.JSONValue"%>
<%!
public String getData() {
List list = new ArrayList();
Connection connection = null;
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
connection = DriverManager.getConnection("jdbc:derby:yourdb;create=true");
// The first time:
//PreparedStatement pstmt = connection.prepareStatement(
// "CREATE TABLE PEOPLE\n"+
// "(PERSON_ID INT NOT NULL GENERATED ALWAYS AS IDENTITY\n"+
// " CONSTRAINT PEOPLE_PK PRIMARY KEY, PERSON VARCHAR(26))");
//pstmt.executeUpdate();
//pstmt = connection.prepareStatement("INSERT INTO PEOPLE(PERSON) VALUES('OSCAR')");
//pstmt.executeUpdate();
// execute select the second time
PreparedStatement psmt = connection.prepareStatement("SELECT person FROM PEOPLE");
ResultSet rs = psmt.executeQuery();
while( rs.next() ){
list.add( rs.getString("person"));
}
} catch( Exception e ) {
throw new RuntimeException( e );
} finally {
if( connection != null ) try {
connection.close();
} catch( Exception e ){}
}
return JSONValue.toJSONString(list);
}
%>
:)
<script>
var list = <%=
getData()
%>
</script>
Обратите внимание, что мы используем импорт броска, и в конце мы изменим вызов метода, чтобы поместить результат в переменную javascript list
При запуске страница JSP будет выглядеть следующим образом (вам нужно будет щелкнуть правой кнопкой мыши, чтобы увидеть исходный код HTML, поэтому посмотрите тег <script>
):
результат http://a.imageshack.us/img248/7637/capturadepantalla201007c.png
Надеюсь, вы найдете это полезным. Я пытался сделать это чрезвычайно просто для вас.
ВАЖНО Приведенный выше пример полон плохих практик, не используйте подобный код (например, создание веб-приложений непосредственно в папке веб-приложений tomcat или выполнение SQL непосредственно со страницы JSP (не говоря уже не закрытие ресурсов и т. д.)
Основная идея состояла в том, чтобы дать вам достаточно информации, чтобы начать.
Есть способы интегрировать это с Eclipse, а также использовать забрало SQL, такое как клиент SquirrelSQL, для манипулирования данными.
Это должно быть достаточно просто, я действительно скачал файлы и создал тест во время написания этого ответа, поэтому он должен работать.