Jsp вызывает команду Javeabean. В UseBean есть настройки области, и обычно есть такие настройки, как страница сеанса приложения. Страница — это
новый объект javabean в usebean, который повторно создается для каждой страницы. Обычно это используется, если несколько программ Jsp совместно используют данные. , вы можете использовать его.Сессия
и приложение означают, что JavaBean всегда будет существовать.По сравнению ссеансом
, приложение относится к приложению.
Вообще говоря, у пользователя есть сеанс, и он исчезнет, когда пользователь уйдет, а приложение всегда будет существовать; , похож на
программу-сервлет, похож на «глобальные переменные» всей системы и существует только один экземпляр.
Функции управления в MVC
Таким образом, функция приложения очень подходит для функций управления в MVC. Обычно традиционный MVC использует сервлеты для функций управления. V — это,
по сути
, страница Jsp, а M — промежуточный Javabean.Однако с улучшением и продвижением функций Jsp наблюдается постепенная тенденция к замене сервлетов. На практике мы чаще используем Jsp. Иногда
во избежание
проблем вместо сервлета используется Jsp, особенно его функция управления.Фактически, эта функция управления инкапсулирована в Javabean. Jsp использует область действия = приложение для вызова этого Javabean. Таким образом
, Javabean с функцией управления похож на сервлет, расположенный в памяти, и взаимодействует с различным фоновым промежуточным программным обеспечением.
Отображение «домашней страницы»
в практических приложениях. Часто к одной странице, например домашней странице, одновременно обращаются несколько пользователей. На этой домашней странице можно запустить множество функций, например,
программу классификации домашней страницы. необходимо прочитать данные дерева из базы данных, развернуть и вывести на домашнюю страницу. Эта функция инкапсулирована в Javabeans.
Затем, когда Jsp домашней страницы вызывает этот Javabean, используйтеscope=application, а затем используйте алгоритм буферизации данных дерева. Таким образом, когда несколько
пользователей
одновременно обращаются к домашней странице, JSP домашней страницы не нужно каждый раз запускать Javabean. а затем повторно прочитать базу данных.Это, несомненно, значительно увеличит скорость.
Поэтому, если вашу домашнюю страницу Jsp посещают много раз, вам следует потратить больше времени на ее оптимизацию.
Буферизация соединения с базой данных
< jsp:useBean id="cods"
class="oracle.jdbc.pool.OracleConnectionCacheImpl"
scope="application" />
<событие:application_OnStart>
<%
cods.setURL("jdbc:oracle:thin:@HOST:PORT:SID");
cods.setUser("Скотт");
cods.setPassword("тигр");
коды.setStmtCache (5);
%>
</event:application_OnStart>
< %@ page import="java.sql.*, javax.sql.*, oracle.jdbc.pool.*" %>
< !------------------------------------------------ ----------------
* Это страница JavaServer, на которой используется кэширование соединений.
приложение
* область Кэш создается в области приложения в.
файл globals.jsa.
* Соединение получается из Кэша и перерабатывается обратно один раз
сделанный
.------------------------------------------------ --------------------!>
<HTML>
<ГОЛОВКА>
<НАЗВАНИЕ>
Коннкэш JSP
</TITLE>
</ГЛАВА>
<BODY BGCOLOR=EOFFFO>
<H1>Привет!
< %= (request.getRemoteUser() != null? ", " +
request.getRemoteUser() : "") %>
! Я занимаюсь кэшированием соединений JSP.
</H1>
<HR>
<B>Я получаю Соединение из Кэша и перерабатываю его обратно.
</Б>
<П>
<%
пытаться {
Соединение conn = cods.getConnection();
Заявление stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery ("SELECT ename, sal " +
"FROM scott.emp ORDER BY ename");
если (rset.next()) {
%>
< ГРАНИЦА ТАБЛИЦЫ=1 BGCOLOR="C0C0C0">
< TH WIDTH=200 BGCOLOR="white"> < I>Имя сотрудника</I> </ /TH>
< TH WIDTH=100 BGCOLOR="white"> < I>Зарплата</I> </ /TH>
< TR> < TD ALIGN=CENTER> < %= rset.getString(1) %> </TD>
< TD ALIGN=CENTER> $< %= rset.getDouble(2) %> </TD>
</ТР>
< % while (rset.next()) {
%>
< TR> < TD ALIGN=CENTER> < %= rset.getString(1) %> </TD>
< TD ALIGN=CENTER> $< %= rset.getDouble(2) %> </TD>
</ТР>
< % }
%>
</ТАБЛИЦА>
< % }
еще {
%>
< P> Извините, запрос не вернул строк </P>
<%
}
рсет.закрыть();
стмт.закрыть();
conn.close(); // Возвращаем соединение в пул
} catch (SQLException e) {
out.println("< P>" + "При выполнении запроса произошла ошибка:");
out.println ("< PRE>" + e + "< /PRE>
< Р>");
}
%>
</ТЕЛО>
</HTML>
Используйте приложение для кэширования подключения к базе данных. Каждый раз, когда оно используется, оно извлекается из буфера и возвращается после использования.