пятница, 4 марта 2016 г.

Кодировка UTF-8 для GET-запросов в Tomcat

Письмо самому себе:
Дорогой я, если ты все еще тот лошарик, который так и не научился работать с POST-запросами и EL-expressions, а умеет работать только с GET-запросами, тогда тебе все еще пригодится навык превращать кракозябры в русские буквы из параметров. Для этого необходимо добавить «URIEncoding="UTF-8"» в файл
<tomcat>/conf/server.xml
в блок параметров коннектора, например:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8"

Чтение файла параметров (properties-файл) через JSP

Листинг index.jsp
<%@ page import="java.io.FileInputStream" %>
<%@ page import="java.util.Properties" %>
<%
FileInputStream file = new FileInputStream(request.getRealPath("test.file"));
Properties prop = new Properties();
prop.load(file);
String db_url = prop.getProperty("db.url");
%>
<html>
<head></head>
<body>
<%out.print("Test N 11");%>
<br>
<%out.print(request.getRealPath("/"));%>
<br>
<%out.print("From parfile: " + db_url);%>
</body>
</html>

Листинг test.file
db.driver=oracle.jdbc.driver.OracleDriver
db.url=jdbc:oracle:thin:@dbserver:1521:ORACLESID
db.user=MY_ORA_SCHEMA
db.password=pass

В браузере будет следующее:
Test N 11
/opt/apache-tomcat/webapps/my_app/
From parfile: jdbc:oracle:thin:@jdbc:oracle:thin:@dbserver:1521:ORACLESID

четверг, 3 марта 2016 г.

Доступ к СУБД Oracle через JSP под Tomcat

Пример доступа к БД Oracle через JSP под Tomcat.

Чтобы научить tomcat подключаться к базам Oracle, копируем ojdbc6.jar в папку <tomcat>\lib.
Создаем web-приложение: JSP-страница, которая будет выводить содержимое таблицы "USER" из БД "c:/data/base.fdb" сервера "dbserver"
<tomcat>\webapps\test_app\index.jsp

Листинг index.jsp:
<%@page import="java.sql.*" %>
<%Class.forName("oracle.jdbc.driver.OracleDriver"); %>
<HTML>
    <HEAD>
        <TITLE>Database access through JSP</TITLE>
    </HEAD>
    <BODY>
        <H1>Result of select query</H1>
        <%
            Connection connection = DriverManager.getConnection(
                "jdbc:oracle:thin:@dbserver:1521:ORACLESID",
                "MY_ORA_SCHEMA",
                "password");
            Statement statement = connection.createStatement();
            ResultSet resultset = statement.executeQuery("select id, name from user order by id asc");
        %>
        <TABLE BORDER="1">
            <TR>
                <TH>id</TH>
                <TH>name</TH>
            </TR>
            <% while(resultset.next()){ %>
            <TR>
                <TD> <%= resultset.getString(1) %></TD>
                <TD> <%= resultset.getString(2) %></TD>
            </TR>
            <% } %>
        </TABLE>
    </BODY>
</HTML>

Полезные ссылки:
http://www.java2s.com/Tutorial/Java/0360__JSP/MakeDatabaseconnection.htm
http://jaybirdwiki.firebirdsql.org/jaybird/doku.php?id=config:driver_config

Проработать:
http://www.tutorialspoint.com/jsp/jsp_database_access.htm

Доступ к СУБД Firebird через JSP под Tomcat

Пример доступа к БД Firebird через JSP под Tomcat.

Чтобы научить tomcat подключаться к базам Firebird, копируем jaybird-full-2.2.9.jar в папку <tomcat>\lib.
Создаем web-приложение: JSP-страница, которая будет выводить содержимое таблицы "USER" из БД "c:/data/base.fdb" сервера "dbserver"
<tomcat>\webapps\test_app\index.jsp

Листинг index.jsp:
<%@page import="java.sql.*" %>
<%Class.forName("org.firebirdsql.jdbc.FBDriver"); %>
<HTML>
    <HEAD>
        <TITLE>Database access through JSP</TITLE>
    </HEAD>
    <BODY>
        <H1>Result of select query</H1>
        <%
            Connection connection = DriverManager.getConnection(
                "jdbc:firebirdsql:dbserver/3255:c:/data/base.fdb",
                "SYSDBA",
                "masterkey");
            Statement statement = connection.createStatement();
            ResultSet resultset = statement.executeQuery("select id, name from user order by id asc");
        %>
        <TABLE BORDER="1">
            <TR>
                <TH>id</TH>
                <TH>name</TH>
            </TR>
            <% while(resultset.next()){ %>
            <TR>
                <TD> <%= resultset.getString(1) %></TD>
                <TD> <%= resultset.getString(2) %></TD>
            </TR>
            <% } %>
        </TABLE>
    </BODY>
</HTML>

Полезные ссылки:
http://www.java2s.com/Tutorial/Java/0360__JSP/MakeDatabaseconnection.htm
http://jaybirdwiki.firebirdsql.org/jaybird/doku.php?id=config:driver_config

Проработать:
http://www.tutorialspoint.com/jsp/jsp_database_access.htm

воскресенье, 28 февраля 2016 г.

JSP для Tomcat

Проба пера в JSP, в качестве сервера выбрал Tomcat (из-за того, что я с ним уже знаком).

В качестве учебного материала выбрана методичка "Примеры разработки страниц JSP":
http://orlova.rsue.ru/content/sst/j2ee2.htm

Дополнительная информация к упражнению 5 "Разработка простой страницы JSP, взаимодействующей с компонентом JavaBeans":
Компиляция java-классов:
javac -g simpleBean.java
в результате будет скомпилирован
simpleBean.class;
Расположение файлов в папке приложения:
<file>.jsp
WEB-INF\classes\<java-package name>\<java-class name>.class
Пример:
SimpleBeanJSP.jsp
WEB-INF\classes\servlets\simpleBean.class
Создание war-архива:
jar cvf <название архива>.war <папка с исходниками>
Пример создания архива для файлов в текущей папке:
jar cvf jbean_test.war .
Расположение файлов на сервере Tomcat:
<tomcat>/webapps/<file>.war

Дополнительная информация к упражнению 6 "Пример взаимодействия страниц JSP и сервлетов":
Если при компиляции появляются сообщения типа:
"package javax.servlet does not exist"
тогда нужно указать путь к пакету с компонентами "Java EE", его можно взять здесь:
<tomcat>/lib/servlet-api.jar
и упомянуть его в команде компиляции.
Плюс, чтобы во время компиляции не было ошибки "cannot find symbol", нужно поместить все java-файлы в одну папку, например, папку "src":
javac -cp servlet-api.jar src\*.java -d out

Примечание:
нужно ознакомится с правилами работы с "WEB-INF", "web.xml".

P.S. Архитектуры моделей JSP:
http://www.javable.com/javaworld/12_99/01/
JSP модель 1:

JSP модель 2:

Архив