этап javaweb должен отвечать на несколько вопросов

1.jsp девять неявных объектов

Ответ (страница): Объект отклика javax.servlet.http.HttpServletResponse является экземпляром объекта. Как сервер создает запрос объекты, он создает объект для представления ответа клиента. Объект ответа также определяет процесс создания нового интерфейса заголовка HTTP. К этому объекту, JSP Программисты могут добавлять новые Cookie или штамп даты, HTTP коды статуса.

Запрос (запрос): Запрос javax.servlet.http.HttpServletRequest объект является экземпляром объекта. Всякий раз , когда клиент запрашивает страницу, JSP двигатель будет создавать новый объект для представления запроса. Объект запроса предоставляет способ получения информации содержит данные формы, печенье, HTTP - методы HTTP - заголовка.

OUT (страница): выход объект Неявного javax.servlet.jsp.JspWriter представляет собой экземпляр объекта, для передачи контента в ответ. JspWriter инициализировать объект на основе ли страница кэшируется по- разному экземпляр. Буфер можно отключить с помощью директивы страницы буферизованной «ложного» атрибута =. Объект JspWriter содержит один и тот же класс наиболее метод java.io.PrintWriter. Тем не менее, JspWriter есть некоторые дополнительные способы борьбы с буферизацией. PrintWriter объект с другими, JspWriter IOExceptions будет сгенерировано исключение.

сеанс (сеанс): объект сеанса является экземпляром javax.servlet.http.HttpSession он ведет себя как единое целое с объектом сеанса Java Servlet одинакового поведением. объект сеанса для отслеживания сеанса клиента между запросами клиента.

ПРИМЕНЕНИЕ (ПРИМЕНЕНИЯ): объекты приложения файла упаковывают непосредственно генерируется объект сервлета ServletContext на самом деле является экземпляр объекта javax.servlet.ServletContext, объект представляет собой JSP - страница приложения файла , показывающая весь свой жизненный цикл. Когда страница JSP инициализируется, будет создавать этот объект и объекты приложения также будут удалены , когда страница JSP удаляется jspDestroy () путем добавления значения атрибутов для объекта приложения, вы можете быть уверены , что все файлы JSP , которые составляют баллончик веб - приложений доступ к нему.

конфигурации (страница): CONFIG объекты javax.servlet.ServletConfig инстанцируются, непосредственно генерируется вокруг пакета ServletConfig объекта сервлета.

PageContext (страница): объект PageContext javax.servlet.jsp.PageContext является экземпляром объекта. Объект PageContext используется для представления всей страницы JSP

Page (Страница): объекты страницы на самом деле ссылка на экземпляр страницы. Это можно рассматривать как объект , который представляет всю страницу JSP, объект страницы является прямым синонимом этого объекта.

Исключение (Page): Исключение содержит предыдущий объект является оберткой брошено исключение. Это , как правило , используется для создания соответствующего ответа на наличие ошибок

Область принадлежит в скобках

2. Четыре объектов предметной области и сферы их применение

Четыре JavaWeb объем: страницы, запрос, сессия, приложение

Страница : вся сфера JSP - страницы, это самый маленький из четырех сферы, начинается жизненный цикл , когда запрос на JSP, когда разрушение конца ответ. Ссылка обычно хранится на объекте страницы в объекте PageContext.

Запрос : Запрос сфера действительна в течение; жизненный цикл создается сервером до вызова методов обслуживания, входящий метод обслуживания. Конец всего запроса, конец жизни запроса. Обмен информацией между этими двумя методами с помощью сервлетов HttpServletRequest интерфейсы , которые реализованы.
SetAttribute (имя String, значение Object) : Имя для значения объекта для того , чтобы сохранить имя области действия запроса.
ObjectgetAttribute (имя String): Определяет имя , чтобы получить информацию из области запроса.

сессия: роль диапазона один сеанс. Жизненный цикл в момент метода первого вызова request.getSession (), сервер проверяет , имеется ли соответствующая сессия, если сеанс не создается в памяти и возвращается. Когда период времени сеанса не используется ( по умолчанию 30 минут), сервер будет уничтожить сессию. Если сервер выключен неправильно (вынужден закрыть), не просрочена сессия последует уничтожение. Если вы вызываете к аннулированию сессии при условии (), вы можете немедленно уничтожить сессию. через сессию, метод , который обеспечивает основной интерфейс HttpSession следующим образом :
ObjectHttpSession.getAttribute (имя String): для получения информации из сессии.
voidHttpSession.setAttribute (имя String, значение Object) : сохранение информации на сессию.
HttpSessionHttpServletRequest.getSession (): Получает объект сеанса для текущего запроса находится.

Применение: роль всего спектра веб - приложений. Созданный , когда веб - приложение загружается в контейнеры от имени всего объекта ServletContext веб - приложений , когда сервер Веб - приложение вниз или удаляется вместе с уничтожением объекта ServletContext. сфера применения является сервер начинает закрывать все время, информация , представленная в этой области может быть использована всеми приложениями. передача информации с помощью сферы применения, который обеспечивает основной метод ServletContext для достижения следующих действий :
ObjectgetAttribute (имя String): получить информацию от приложения.
SetAttribute недействительное (имя Строки, значение объекта ): информация о настройках в области приложения.

Сфера малого и много: страницы (JSP страницы), запрос (запрос), сеанса (сессии), приложение (все веб-приложения).

3.servlet жизненный цикл

(1) Примеры процедуры загрузки и класс

Когда контейнер сервлетов промотор или клиент посылает запрос, он найдет ли пример контейнер сервлетов Сервлет хранится в памяти, если она присутствует, непосредственно считывать экземпляр запроса-ответа, а если нет, создать примеры Servlet.

(2) инициализации () инициализация процесс

После конкретизации, контейнер сервлетов вызывает метод инициализации сервлета () для инициализации (некоторые подготовительные работы или ресурсы предустановленными работы).

Процесс службы (3) услуги (), выберите doget / dopost

После инициализации сервлет может находиться в состоянии готовности в ответ на запрос. После получения запроса клиента метод, обслуживание вызова () для обработки клиентских запросов, метод HttpServlet служения () будет транспонирование doXxx различными в зависимости от запроса () метод, метод doget / dopost, данные могут быть переданы указ.стр.

(4) разрушить () процесс разрушения
, когда контейнер закрыт примеры сервлет, сервлет разрушенных в любое время. В то же время, Servlet контейнер сервлетов вызывает метод Destroy () , чтобы определить , должен ли быть выпущен сервлетов (или восстановление ресурсов)

И работает 4.cookie сессии, ссылки и различия

(1) печенье работы

1. Создание Cookie

При первом посещении веб - сайта с помощью Cookie, веб - сайт сервер будет работать следующим образом :
① Пользователь генерирует уникальный идентификатор (ID) Cookie, создать объект Cookie,
② по умолчанию это разговор уровень печенья, хранится в памяти браузера, будет удален после того, как пользователь выходит из браузера. Если вы хотите, чтобы браузер сайта Cookie хранится на диске, необходимо установить максимальный возраст (MaxAge), и дает время в секундах (максимальный возраст устанавливается в 0 является команда , чтобы удалить браузер Cookie);
③ Cookie помещены в заголовки ответа HTTP, печенье будет вставлена в заголовок запроса HTTP Set-Cookie.
④ посылает ответное сообщение HTTP.

2, при условии хранения печенья

После того, как браузер получает пакет ответа, в соответствии с сообщением специальной индикации в преддверии Set-Cookied, чтобы сформировать соответствующий куки, хранящийся в клиенте. Информация Cookie, который записывает текущий пользователь.

3, отправить Cookie

Когда пользователь посещает сайт снова, браузер сначала проверяет все сохраненные куки, если есть Cookie сайта (то есть, объем Cookie больше указанных ресурсов будет равна запросу), положить печенье, прикрепленную к запросу ресурса запрос HTTP глава отправляется на сервер.

4, читать Cookie

После того как сервер получает запрос HTTP пользователя приобретенный из заголовка с печеньем пользователя, найти то, что им нужно с внутренней стороны.

Примечание: Cookie не означает, что браузер помнить функцию пароль учетной записи, и не означает, что вы будете в состоянии войти в аккаунт из-за присутствия Cookie может автоматически заполнить пароль. Cookie похож на входе в Taobao, при входе на Taobao, будь вы выключаете страницу даже выключить, или до тех пор, как этот компьютер, когда вы открываете, когда вы снова вошли Taobao, это функция Cookie. Cookie нажитого сервера приобретения request.getCookies, все приобретенные Cookie, то Cookie сохраненной request.addCookie с заголовком и ответ клиента.

(2) сессии работы

1. Создать сеанс

Когда сервер получает запрос в первый раз, пространство открывает сеанс (объект Session создается), при генерации идентификатора сессии, а также ответ на заголовок Set-Cookie: «JSESSIONID = XXXXXXX» посылается команда требованиям клиента набор печенья ответ, клиент получает ответ, нативный клиент устанавливает информацию куки JSESSIONID = XXXXXXX, время истечения куки в конце сессии браузера, следующий каждый раз, когда клиент посылает запрос на том же веб-сайте, Это принесет информацию заголовка запроса куков (включая идентификатор сеанса), а затем, сервер считывает запрос информации заголовка куки, чтобы получить значение имени JSESSIONID получения запроса на идентификатор сеанса;

2, сессия

Если отключить куки, вы можете использовать URL переписывания должен быть добавлен непосредственно SessionID URL URL путь в качестве дополнительной информации или информации запроса
Другой скрытые поля формы. То есть, сервер будет автоматически изменять форму, добавить скрытое поле для того, чтобы иметь возможность идентификатор сеанса передается обратно на сервер при отправке формы.

Разница между (3) и куки сессии

1, отличается от позиции хранения

Cookie хранится в клиенте, Session хранится на сервере.

2, другой режим доступа

Cookie может только ASCII строка хранение, требование доступа , если символ Юникода или двоичные данные должны быть закодирован. Cookie также не могут напрямую обращаться к объектам Java. Для того, чтобы хранить немного сложной информации, используя Cookie является жесткий матч.
Сессия может доступ к любому типу данных, в том числе, без ограничения, String, Integer, List, Map как. Сессия также иметь возможность прямой опеки Java Bean или даже какие - либо классы Java, объекты и т.д., она очень проста в использование. Сессия может рассматриваться как контейнерный класс Java.

3, безопасность (политика конфиденциальности) отличается 

4, на действия различных

5, разность давлений, вызванное сервером

6, отличается от перекрестного домена поддержки

5.Получить представленную разницу и после представления

(1) получить данные получают от сервера, сообщение данных передаются на сервер.
URL (2) получить параметр добавляется в данные очередях для отправки формы , указанной в атрибуте ACTION, и значение соответствующих полей соответствует форме, можно увидеть в URL. отправлять через HTTP POST механизм для различных полей с его содержимым помещают в виде HTML - ЗАГОЛОВОК URL - адреса , передаваемого с действием атрибут относится. Пользователи не видят этот процесс.
(3) , чтобы получить вариант, сервер Request.QueryString получения значения переменной для почтового варианта осуществления, сервер получает данные , представленные Request.Form.
Объем данных (4) получить переданы мало, не больше , чем 2 КБ. размещать большое количество передачи данных, как правило , по умолчанию неограниченно. Но в теории, IIS4 максимальное количество 80KB, IIS5 для 100KB
(5) безопасности GET очень низок, после высокий уровень безопасности.

HTTP определяет различные способы взаимодействия с сервером, самый основной метод GET и POST. На самом деле GET для большинства запросов, но POST зарезервирован для сайта обновления. В соответствии с HTTP спецификации, GET для поиска информации и должна быть безопасной и идемпотентной. Так называемые средства безопасности , что операция используется для получения информации , а не изменять информацию. Другими словами, запросы GET правило , должны быть свободны от побочных эффектов. Питание и другие средства нескольких запросов на тот же URL должны возвращать один и тот же результат. Полное определение не так строго , как это кажется. По сути, цель состоит в том, что , когда пользователь открывает ссылку, она может быть уверена , что с их точки зрения не изменяет ресурс. Например, на первой странице новостей сайта постоянно обновляется. Хотя второй запрос будет возвращать различную партию новостей, эта операция по - прежнему считаются безопасной и идемпотентным, поскольку она всегда возвращает текущие новости. И наоборот. Запрос POST не так просто. запросы POST , которые могут изменять ресурсы на сервере. Еще новости сайт, к примеру, читатели отмечается в статье должны быть достигнуты посредством запроса POST, потому что после того, как сайт был различные ноты представлены
на момент подачи ФОРМЫ, если не указаны методы, то по умолчанию запроса GET, форма представила данные будет добавлен к URL, чтобы? URL - адрес и отделить друг от друга. Она передается в виде буквенно - цифровых символов, но пространство преобразуется в «+», и другие символы преобразуются в% XX, где XX является символом для шестнадцатеричного представления ASCII (или ISO Latin-1) значение. Отправить запрос GET из данных запроса HTTP помещаются в заголовке протокола, данные в представленной организации данных POST; представление GET данные могут иметь до 1024 байт, в то время как POST не так ограничено.

6, и передает запрос, чтобы запросить разницу переадресации

Форвард: запрос, ответ (сервер)
перенаправление: два запроса, два ответа (сервер)

Пример: Предположим , что запрос на заема денег, клиент (браузер), B, C для сервера
перенаправляет запрос: заема денег , чтобы найти B (A инициировать запрос), B сказал , что не было денег , но хороший человек, пошел с сказал ему , чтобы занимать деньги (здесь или просьбу), C принимает по просьбе , а затем брать деньги
на а (а в ответ C), это запрос, ответ.
Перенаправление: A B хочет одолжить деньги (А инициировать запрос), B сказал , что не был денег , но хороший человек, и сказал ему , чтобы сказать ему , что АаС может найти богатый человек , чтобы занимать деньги (В к А в ответ),
А и в рассматривает слушание пошло одолжить C (A инициирует запрос ЭДЫ с), с принимает запрос , а затем протянуть а (а на C ответ), запрос на два отклика в два раза.

Соответствующее соглашение 7.HTTP содержания

Http представляет собой протокол прикладного уровня состоит из запроса и ответа, является стандартной моделью клиент-сервер,

Часто содержат HTTP по протоколу TCP, то выше (TLS / SSL) безопасный транспортный протокол является портом по умолчанию 80, по умолчанию HTTPS-порт 443

HTTP всегда инициируется запрос клиента, ответ сервера. Предельное сообщение клиенту не отреагирует в случае, если клиент не посылает запрос

Операция HTTP называется первичной транзакция, рабочий процесс делится на четыре этапа

1. Во - первых , чтобы установить соединение между клиентом и сервером, нужно только щелкнуть гиперссылку HTTP началась работа
2. После установления соединения, клиент инициирует запрос на сервер
3. Сервер получает запрос позже, дать соответствующую информацию ответа
4. клиент получает сервер возвращает информацию , отображаемая в браузере, то клиент и сервер отключен
после того , как HTTP является протоколом без гражданства (апатриды средства обработки протокола без памяти для сделки, если отсутствие государственных средств продолжает обрабатывать информацию , требуемую на передней панели, он должен быть повторно передан, что приводит к увеличению количества передачи данных, с другой стороны, когда сервер не нуждается в предыдущей информации, это относительно быстрый отклик)

Чтобы понять HTTP Есть несколько элементов, чтобы понять, и четыре трехэтапных помахал, а также понять структуру заголовков запроса и заголовки ответа и так далее.

8. Как предотвратить повторяющиеся формы представления

Причина:

1, из - за ошибки пользователя, несколько кликов формы кнопки отправки.
2, из - за скорости и другие причины страницы Катон, пользователь несколько раз обновить страницу , чтобы представить.
3, хакер или злонамеренный пользователь инструменты использования , такие как повторен злонамеренный почтальона отправить форму (атаки сайтов).

Решение:

1, JS запретить кнопку отправки: отключить кнопку отправки после отправки формы, но если клиент JS отключен, если этот метод является недействительным
2, с помощью страницы выполнения режима перенаправления POST / Redirect / GET после отправки формы, поворота представить успешную информационная страница
3, хранятся в специальной сессии в знаке генерирует уникальный идентификатор на стороне сервера, и поселил его в сессию, а сессия записываются в то же время он показывает относительно равное скрытое поле , когда форма впервые представлена в первый раз представить , а затем удалить сессию, следующий коммит менее равны , чем это показывает , в первый раз , чтобы представить
4, с помощью функции заголовка рулевого управления, так что даже если пользователь не использует кнопку обновления , чтобы повторно отправить форму
5, добавить уникальное ограничение или создать уникальный индекс в базе данных, дублирование данных предотвратить, что является наиболее эффективным способом предотвращения дублирования данных , представленный
6, печенье , записанные с помощью состояния формы, исходя из его статуса можно проверить форма представляется ли этот путь , если клиент отключается печенье подкачки не вступили в силу

9.js и JQ общей функцией селектора и

JS: Fun (это)
JQ: $ (это)
2. Получить Родительская
JS: document.getElementById ( "***") ParentNode.
JQ:. $ ( "***") родителя ()
3. получение подлейбл
JS:. document.getElementById ( "***") в ChildNodes
JQ: $ ( "***") Дети ().
4. получение этикетки
JS: document.getElementById ( "Test") previouselementsibling.
JQ: $ ( . "#test") ПРЕД ()
5. следующий тег получает
JS: document.getElementById ( "Test") , то NextSibling.
JQ: $ ( "# Test") следующий ().

JS также быть образованы с помощью getElementsByName (), то getElementsByTagName (), getElementsByClassName (), querySelector (), querySelectorAll ()
А: getElementById (ID): Возвращает указанный идентификатор объекта является ссылкой, если поиск конкретного документа, элементы, наиболее эффективный способом является getElementById ()
B: getElementsByName (имя): возвращает имя атрибут документа является значением имени элемента, потому что значение атрибута имени не является уникальным, запрос к результатам вероятного возвращению является массивом, и не является элементом.
С: getElementsByTagName (тэг): Возвращает тег элемента , указанного в документе
D: getElementsByClassName (): возвращает имя класса в документе от указанного элемента
E: querySelector (): возвращает первый соответствующий элемент документа указывает селектор CSS
F: querySelectorAll (): возвращает первый соответствующий элемент документа указывает селектор CSS

JQ удобнее, $ ( "") и формулировка селектор , как CSS селектор
Ссылка: https: //www.cnblogs.com/codingcc1/p/11073083.html

10. Как предотвратить проблемы мусора

1) Если представление является пост, не хочет искажен, только вам нужно установить кодировку может запросить объекты.
Request.setCharacterEncoding ( "UTF - 8.");
Response.setCharacterEncoding ( "GB2312"); Теперь , когда отправляет серверу уведомление код данных таблицы //
response.setContentType ( "текст / html; кодировка = gb2312"); // уведомляет браузер в том, что секундомер работает
Примечание: данные клиента представляется , каким образом, запрос должен быть установлен в какой кодировке.

2) Если представление будет получить, установить кодировку объекта запроса является недействительной, не хочет искаженное, только ручное преобразования.

строковые данные = «???????»; // строка искажения
источника байт [] = data.getBytes ( « iso8859-1»); // получить исходные данные , представленные клиентскими
данными = новая строка (данных. GetBytes ( "iso8859-1"), " UTF-8"); // решить мусор

// эквивалентно

Данные = новый String (источник, "UTF-8");

3) искаженные .get путь, также может быть достигнуто путем изменения способа конфигурации сервера. Измените файл server.xml в каталоге конф из Tomact.

 

 

рекомендация

отwww.cnblogs.com/zn19961006/p/11879092.html