Сервлеты Запуск сервлетов Программирование сервлетов Классы javax.servlet.*: Servlet это интерфейс, который определяет методы: init(), service(), destroy(),

Презентация:



Advertisements
Похожие презентации
Java на стороне сервера. Сервлеты и JSP Server-side Java: Servlets & JSP.
Advertisements

Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Язык Java. JSP.. Java. Синтаксис. Перевод строчки эквивалентен пробелу Регистр в именах различается // Комментарии до конца строки /* Многострочные комментарии.
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Программирование на стороне сервера.
Лекция 17 СЕРВЛЕТЫ Сервлеты – компоненты приложений Java 2 Platform Enterprise Edition, выполняющиеся на стороне сервера, способные обрабатывать клиентские.
1 Java J2EE. Servlet Технологии. 2 Сервлеты Сервлеты – это компоненты приложений Java Enterprise Edition, выполняющиеся на стороне сервера, способные.
Исключения в Java Макаревич Л. Г.. Исключения – это механизм взаимодействия между кодом, приведшим к ошибке, и кодом, обрабатывающим ошибку Исключение.
Обработка исключительных ситуаций, работа с файлами Исключительные ситуации Классы File, InputStream, RandomAccessFile, FileReader, BufferedReader, BufferedWriter,
WORK WITH XML-files in Java Для студентов старших курсов университетов Ст.преподаватель Дудник О.А.
Java Server Pages(JSP). JavaServer Pages (JSP) позволяют вам отделить динамическую часть ваших страниц от статического HTML. Вы, как обычно, пишете обычный.
Work with databases in Java. JDBC Tutorial for students of universities Author: Dudnik Oxana.
Test 16 Вопрос 1. class Clazz { { System.out.println("non-static init"); } public static void main(String a[]) { System.out.println("main"); Clazz ob1.
Практическое использование Java Макаревич Л. Г.. Инсталляция Java Документация в docs Прописать PATH (каталог bin в JSDK) Прописать CLASSPATH (путь к.
Java Server Pages (JSP). JSP Позволяет веб разработчикам динамически генерировать HTML, XML - и другие веб страницы. Страницы компилируются JSP- компилятором.
Test 4 Вопрос 1. public class TestOutput { public static void main(String[] args) throws IOException { PrintStream out = new PrintStream( new BufferedOutputStream(
Work with server by XMLRPC – library in Java For students Author: Dudnik Oxana.
Test 14 Вопрос 1. class Main { public void method() { static class One { public One() { System.out.println("From one"); } } public static void main(String...
Уровень представления Протокол HTTP, веб-приложение, сервлеты,сеансы.
Test 10 Вопрос 1. public class Test implements Iterator { // 1 private List list = new ArrayList (); // 2 public void addList(T... ts) { Collections.addAll(list,
Транксрипт:

Сервлеты

Запуск сервлетов

Программирование сервлетов Классы javax.servlet.*: Servlet это интерфейс, который определяет методы: init(), service(), destroy(), getServletConfig(), getServletInfo(). GenericServlet обеспечивает самую простую реализацию интерфейса Servlet. Обычно нужно перекрыть метод service(). HttpServlet расширяет GenericServlet, чтобы обеспечить HTTP-обработку. Нужно перекрыть методы doGet(), doPost(), или оба. В классе реализовать метод service(), который вызывает необходимый метод doXXX, в зависимости от типа запроса. ServletRequest это интерфейс, который содержит данные от клиента для запускаемого сервлета. Реализован интерфейс в классе ServletRequestWrapper. HttpServletRequestWrapperрасширение класса ServletRequestWrapper, содержащее запрос в формате HTTP. Этот класс доступен через ссылку на интерфейс ServletRequest. ServletResponse Этот интерфейс определяет удобный способ взаимодействия с данными, которые сервлет посылает клиенту через контейнер. Реализация интерфейса – класс ServletResponse Wrapper. HttpServletResponseWrapper расширение класса ServletResponseWrapper, при этом полагается, что ответ в формате HTTP. Этот класс получаем по ссылке на интерфейс ServletResponse. Информация о сервлете

Протоколонезависимый сервлет import javax.servlet.*; import java.io.*; public class GenericHello extends GenericServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void destroy() { } public void service(ServletRequest req, ServletResponse resp) throws ServletException, java.io.IOException { resp.setContentType("text/html"); java.io.PrintWriter out = resp.getWriter(); out.println("Hello from the GenericHello Servlet"); out.close(); } public String getServletInfo() { return "This servlet tests the GenericServlet class"; }

HTTP-сервлет import javax.servlet.*; import javax.servlet.http.*; public class HTTPHello extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void destroy() { } protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { response.setContentType("text/html"); java.io.PrintWriter out = response.getWriter(); out.println(" "); out.println(" "); out.println(" HTTPHello "); out.println(" "); out.println(" "); out.println("Hello from the HTTPHello Servlet"); out.println(" "); out.println(" "); out.close(); } /** Обработка HTTP GET. */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { processRequest(request, response); } /** Обработка HTTP POST. */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { processRequest(request, response); } /** Описание сервлета. */ public String getServletInfo() { return "This is the HTTPHello Servlet"; } }

Размещение сервлета 1. В качестве контейнера установить Tomcat-сервер. 2. Добавить к переменной CLASSPATH путь C:\Programm Files\ApacheSoftware Foundation\Tomcat 5.5\common\lib\servlet-api.jar 3. Запустить компилятор: javac GenericHello.java 4. Поместить сервлет в каталог...\webapps\servlets-examples\WEB- INF\classes 5. Исправить файл C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\servlets-examples\WEB-INF\web.xml GenericHello GenericHello /servlet/GenericHello Ввести адрес в браузер

Передача параметров сервлету Passing Parameters to Java Servlets Enter Values for all three Parameters Name: Age: Favorite Sport: Method Get examples/servlet/PassParam?UserName=Lilia&UserAge=30&UserSp ort=tennis

HTML формы и сервлеты import javax.servlet.*; import javax.servlet.http.*; public class PassParam extends HttpServlet { … protected void processRequest(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException { resp.setContentType("text/html"); java.io.PrintWriter out = resp.getWriter(); // output your page here out.println(" "); out.println(" "); out.println(" " + "Parameter Passing" + " "); out.println(" "); out.println(" "); out.println(" "); out.println("Here are the Parameters"); out.println(" "); out.println(" The UserName is "); out.println(req.getParameter("UserName") + " "); out.println(" "); out.println(" The UserAge is "); out.println(req.getParameter("UserAge") + " "); out.println(" "); out.println(" The UserSport is "); out.println(req.getParameter("UserSport") + " "); out.println(" "); out.println(" "); out.println(" "); out.close(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { processRequest(request, response); }

Сохранение параметров в Cookies import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class CookieExample extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); Cookie[] cookies = req.getCookies(); for (int i = 0; i < cookies.length; i++) { Cookie c = cookies[i]; // получение Сookie String name = c.getName(); String value = c.getValue(); out.println(name + " = " + value); // отправка назад в браузер клиента } String name = req.getParameter("cookieName"); // получение из браузера параметров if (name != null && name.length() > 0) { String value = req.getParameter("cookieValue"); Cookie c = new Cookie(name, value); resp.addCookie(c); } // отсылка cookie } } javax.servlet.http.Cookie

Сохранение параметров в Session import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class SessionExample extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); HttpSession session = req.getSession(true); //создание сессии Date created = new Date(session.getCreationTime()); Date accessed = new Date(session.getLastAccessedTime()); out.println("ID " + session.getId()); //пересылка данных о сессии клиенту out.println("Created: " + created); out.println("Last Accessed: " + accessed); String dataName = req.getParameter("dataName"); // запись параметров в сессию if (dataName != null && dataName.length() > 0) { String dataValue = req.getParameter("dataValue"); session.setAttribute(dataName, dataValue); } Enumeration e = session.getAttributeNames(); // получить переменные сессии while (e.hasMoreElements()) { String name = (String)e.nextElement(); String value = session.getAttribute(name).toString(); out.println(name + " = " + value); //пересылка параметров клиенту } } } } javax.servlet.HttpSession