summaryrefslogtreecommitdiffstats
path: root/documentation/advanced/advanced-requesthandler.asciidoc
diff options
context:
space:
mode:
authorIlia Motornyi <elmot@vaadin.com>2015-12-03 14:59:05 +0000
committerVaadin Code Review <review@vaadin.com>2015-12-03 14:59:12 +0000
commit2af72ba9636bec70046394c41744f89ce4572e35 (patch)
treeccb3dc2d2239585f8c3f79eb5f131ff61ca9ce86 /documentation/advanced/advanced-requesthandler.asciidoc
parent8aa5fabe89f2967e966a64842a608eceaf80d08f (diff)
downloadvaadin-framework-2af72ba9636bec70046394c41744f89ce4572e35.tar.gz
vaadin-framework-2af72ba9636bec70046394c41744f89ce4572e35.zip
Revert "Merge branch 'documentation'"7.6.0.beta2
This reverts commit f6874bde3d945c8b2d1b5c17ab50e2d0f1f8ff00. Change-Id: I67ee1c30ba3e3bcc3c43a1dd2e73a822791514bf
Diffstat (limited to 'documentation/advanced/advanced-requesthandler.asciidoc')
-rw-r--r--documentation/advanced/advanced-requesthandler.asciidoc96
1 files changed, 0 insertions, 96 deletions
diff --git a/documentation/advanced/advanced-requesthandler.asciidoc b/documentation/advanced/advanced-requesthandler.asciidoc
deleted file mode 100644
index df991bc5cd..0000000000
--- a/documentation/advanced/advanced-requesthandler.asciidoc
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: Request Handlers
-order: 4
-layout: page
----
-
-[[advanced.requesthandler]]
-= Request Handlers
-
-Request handlers are useful for catching request parameters or generating
-dynamic content, such as HTML, images, PDF, or other content. You can provide
-HTTP content also with stream resources, as described in
-<<dummy/../../../framework/application/application-resources#application.resources.stream,"Stream
-Resources">>. The stream resources, however, are only usable from within a
-Vaadin application, such as in an [classname]#Image# component. Request handlers
-allow responding to HTTP requests made with the application URL, including GET
-or POST parameters. You could also use a separate servlet to generate dynamic
-content, but a request handler is associated with the user session and it can
-easily access data associated with the session and the user.
-
-To handle requests, you need to implement the [interfacename]#RequestHandler#
-interface. The [methodname]#handleRequest()# method gets the session, request,
-and response objects as parameters.
-
-If the handler writes a response, it must return [literal]#++true++#. This stops
-running other possible request handlers. Otherwise, it should return
-[literal]#++false++# so that another handler could return a response.
-Eventually, if no other handler writes a response, a UI will be created and
-initialized.
-
-In the following example, we catch requests for a sub-path in the URL for the
-servlet and write a plain text response. The servlet path consists of the
-context path and the servlet (sub-)path. Any additional path is passed to the
-request handler in the [parameter]#pathInfo# of the request. For example, if the
-full path is [filename]#/myapp/myui/rhexample#, the path info will be
-[filename]#/rhexample#. Also, request parameters are available.
-
-
-[source, java]
-----
-// A request handler for generating some content
-VaadinSession.getCurrent().addRequestHandler(
- new RequestHandler() {
- @Override
- public boolean handleRequest(VaadinSession session,
- VaadinRequest request,
- VaadinResponse response)
- throws IOException {
- if ("/rhexample".equals(request.getPathInfo())) {
- // Generate a plain text document
- response.setContentType("text/plain");
- response.getWriter().append(
- "Here's some dynamically generated content.\n");
- response.getWriter().format(Locale.ENGLISH,
- "Time: %Tc\n", new Date());
-
- // Use shared session data
- response.getWriter().format("Session data: %s\n",
- session.getAttribute("mydata"));
-
- return true; // We wrote a response
- } else
- return false; // No response was written
- }
-});
-----
-
-A request handler can be used by embedding it in a page or opening a new page
-with a link or a button. In the following example, we pass some data to the
-handler through a session attribute.
-
-
-[source, java]
-----
-// Input some shared data in the session
-TextField dataInput = new TextField("Some data");
-dataInput.addValueChangeListener(event ->
- VaadinSession.getCurrent().setAttribute("mydata",
- event.getProperty().getValue()));
-dataInput.setValue("Here's some");
-
-// Determine the base path for the servlet
-String servletPath = VaadinServlet.getCurrent()
- .getServletContext().getContextPath()
- + "/book"; // Servlet
-
-// Display the page in a pop-up window
-Link open = new Link("Click to Show the Page",
- new ExternalResource(servletPath + "/rhexample"),
- "_blank", 500, 350, BorderStyle.DEFAULT);
-
-layout.addComponents(dataInput, open);
-----
-
-
-