Среди множества веб-сайтов в Интернете широко используются динамические веб-сайты, основанные на веб-базах данных. Динамический веб-сайт, основанный на базе данных веб-сети, состоит из веб-браузера в качестве клиентского интерфейса, сервера базы данных для хранения информации и сервера веб-приложений, который соединяет их. Первоначальная технология CGI для разработки динамических веб-сайтов постепенно была заменена Java-апплетами, элементами управления ActiveX, DHTML и JavaScript по мере дальнейшего развития клиентской технологии веб-приложений. Эти технологии значительно улучшили пользовательский интерфейс, но когда попытались провести более глубокую работу, начали сталкиваться с такими проблемами, как несовместимость клиентского браузера, перегруженные серверы, медленный доступ и проблемы безопасности. Технология JSP — золотой ключ к решению этих проблем. В этой статье в основном обсуждаются некоторые технические проблемы, связанные с использованием технологии JSP для создания динамических веб-сайтов.
Технология JSP
JSP — это технология веб-разработки, основанная на Java Servlet и всей системе Java. Эту технологию можно использовать для создания современных, безопасных, быстрых и кроссплатформенных динамических веб-сайтов. Добавление фрагментов программы Java и тегов JSP в HTML-файлы традиционной веб-страницы образует веб-страницу JSP. Когда веб-сервер получает запрос на доступ к веб-странице JSP, он сначала выполняет фрагмент программы, а затем возвращает результат выполнения клиенту в формате HTML. Фрагменты программы могут управлять базами данных, перенаправлять веб-страницы, отправлять электронные письма и т. д. Это функциональность, необходимая для создания динамического веб-сайта. Все операции программы выполняются на стороне сервера, а клиенту по сети передаются только результаты с очень низкими требованиями к браузеру клиента. Как показано на рисунке 1, когда пользователь подключается к веб-сайту JSP, пользователь запрашивает веб-страницу, а страница JSP отвечает только на запрос, преобразует запрос пользователя на веб-страницу в запрос данных, обрабатывает запрос через JavaBean и инкапсулирует возвращаемые данные в HTML-страницу для возврата пользователям.
JSP имеет множество преимуществ:
1. Напишите программу один раз и запускайте ее где угодно. При разработке JSP была полностью учтена независимость платформы приложения. Опираясь на переносимость Java, JSP поддерживается многими популярными операционными платформами и может выполняться на таких серверах, как Apache, NetScape и IIS.
2. Быстрое исполнение. Страницу JSP необходимо скомпилировать только один раз и преобразовать в байт-код Java, а затем разместить в памяти сервера, что ускоряет ответ на страницу JSP. Если не учитывать время, необходимое для первой компиляции JSP-страницы, скорость ответа JSP намного выше, чем у ASP.
3. Преимущества Java. Технология JSP использует язык Java в качестве языка сценариев. Кросс-платформенная, зрелая, надежная и легко расширяемая технология Java облегчает и упрощает работу разработчиков в других аспектах. Если есть подозрение в сбое системы Windows, Java может эффективно предотвратить сбой системы. Язык Java превосходно справляется с управлением памятью, предоставляя методы предотвращения утечек памяти. Кроме того, JSP обеспечивает более надежный механизм обработки неожиданных событий для приложений, полностью раскрывая преимущества Java.
Технические трудности JSP
1. Подключение к базе данных.
Соединение с базой данных является наиболее важной частью динамического веб-сайта. Технология ODBC или JDBC может использоваться при подключении к внутренней базе данных. Хотя ODBC является традиционным средством подключения к базе данных, ODBC имеет следующие фатальные недостатки, делающие его неспособным обрабатывать запросы JSP:
(1) ODBC — это API, реализованный на языке C. Вызов локальной программы C из программы Java. Это приведет к ряду проблем, связанных с безопасностью, целостностью и надежностью.
(2) Во-вторых, полностью точная реализация ODBC из C-кода ODBC в Java API-трансляция не будет удовлетворительной, поскольку в Java нет указателей, а ODBC использует множество указателей, включая крайне подверженный ошибкам нулевой указатель «void». «*».
(3) Учитывая переносимость платформы, использование ODBC при разработке программ JSP будет иметь отрицательные последствия, делая код непригодным для переносимости.
Чтобы программу можно было легко переносить, сохраняя при этом безопасность, целостность и надежность, более целесообразно использовать JDBC для подключения к базе данных. JDBC — это Java API, который можно использовать для выполнения операторов SQL. Он состоит из некоторых классов и интерфейсов, написанных на языке Java, что позволяет разработчикам писать полные приложения для баз данных на чистом языке Java. Используя JDBC, операторы SQL можно легко передавать практически в любую базу данных. Другими словами, вам не нужно писать одну программу для доступа к Sybase, другую программу для доступа к Oracle и еще одну программу для доступа к Microsoft SQL Server. Программы, написанные с использованием JDBC, могут автоматически передавать операторы SQL в соответствующую систему управления базами данных.
Когда программа локальной базы данных использует такую базу данных, как Microsoft Access, можно использовать мост JDBC-ODBC, разработанный Sun. Заимствовав эту технологию, программа JSP может получить доступ к базе данных с помощью драйвера ODBC. При этом не только сохраняются преимущества JDBC, но также можно использовать источник данных ODBC, предоставленный Microsoft, для подключения к Access. Независимо от типа базы данных другой стороны, при наличии интерфейса ODBC вы можете напрямую использовать мост JDBC-ODBC для подключения к базе данных, не меняя соответствующий программный код из-за изменений во внутренней базе данных. достижение идеального разделения между уровнем приложения и уровнем базы данных. Если вам нужно изменить внутреннюю базу данных на MySQL, вам нужно всего лишь установить драйвер MySQL в источник данных ODBC, и вы сможете использовать базу данных MySQL напрямую.
2. При реализации веб-сайта со встроенными компонентами
, в силу объективных потребностей, чтобы легко отличить пользователей локальной локальной сети от удаленных пользователей и предоставить соответствующие разрешения, встроенный компонент Запрос может использоваться для захвата каждого подключения к серверу. IP-адрес пользователя сравнивается и предоставляются соответствующие разрешения. Таким образом, пользователи в этой локальной сети могут использовать все общедоступные и закрытые ресурсы веб-сайта. Существующий метод также можно улучшить, введя в базу данных различные IP-адреса и предоставив разным IP-адресам разные разрешения, чтобы полностью контролировать использование пользователем ресурсов веб-сайта.
Поддержание состояния сеанса — это проблема, с которой приходится сталкиваться разработчикам веб-приложений. Чтобы узнать, находится ли пользователь в сети, используется встроенный компонент сеанса. Предоставляя каждому вошедшему в систему пользователю переменную сеанса, ресурсы, используемые пользователем, могут быть закрыты после того, как пользователь аварийно покидает веб-сайт, тем самым экономя ресурсы. памяти и повышение производительности сервера.
Класс Cookie также предусмотрен в JSP, и его конструктор имеет два параметра, представляющие имя и значение Cookie. Класс Cookie предоставляет различные методы для установки атрибутов Cookie. Например, метод setMaxAge можно использовать для установки срока действия Cookie. Если время выживания имеет отрицательное значение, это означает, что браузер закрывает файл cookie и исчезает; если время выживания равно 0, это означает, что файл cookie удален; если время выживания является положительным числом, это означает, сколько секунд он будет храниться; файл cookie существует. Файлы cookie могут использоваться для временного сохранения учетной записи и пароля пользователя, и JSP может прочитать их в любое время, чтобы проверить легитимность пользователя. Статус просмотра пользователя может быть сохранен в файле cookie, и в следующий раз, когда пользователь посетит веб-страницу, JSP отобразит в браузере персонализированную страницу.
3. Преобразование кодировки Unicode.
В процессе отладки многих страниц JSP были обнаружены проблемы, вызванные преобразованием кодировки китайских символов в кодировку Unicode. Например, все китайские символы на странице JSP, отображаемой в браузере, искажены. страница JSP не может нормально отображаться. Unicode. Когда программное обеспечение работает, оно основано на В то время параметр «Язык/Кодовая страница» определял соответствующие настройки локальной кодировки символов и соответствующим образом обрабатывал локальные символы. Поэтому необходимо взаимное преобразование между наборами символов Unicode и локальными символами. быть достигнуто в процессе обработки и даже двух разных локальных символов с использованием Unicode в качестве промежуточного преобразования между наборами символов. Этот метод дополнительно расширяется в сетевой среде, и любую символьную информацию на обоих концах сети также необходимо преобразовать в приемлемый контент в соответствии с настройками набора символов.
Поскольку набор символов IE по умолчанию — GB2312, набор символов Windows по умолчанию — GBK, а набор символов Java по умолчанию — Unicode. Поэтому без определенного преобразования страница, полученная из GBK или Unicode, будет отображаться непосредственно в наборе символов GB2312. быть искаженным. Язык Java использует Юникод для обработки символов, но с другой стороны, в программах Java также можно использовать и не-Юникод. Важно гарантировать, что информация о китайских символах на входе и выходе программы не искажается. Если ISO-8859-1 полностью используется для обработки китайских символов, можно достичь правильных результатов. После преобразования и принудительного отображения набора символов веб-страницы в наборе символов GB2312 китайские символы могут отображаться нормально.