BAEL-1567 use optional (#3849)
* BAEL-1412 add java 8 spring data features * BAEL-21 new HTTP API overview * BAEL-21 fix executor * BAEL-1432 add custom gradle task * BAEL-1567 add samples of cookie and session in serlvet * BAEL-1567 use stream api * BAEL-1567 fix optional
This commit is contained in:
parent
e6024bfdd0
commit
b2eaf0af58
|
@ -3,6 +3,7 @@ package com.baeldung.servlets;
|
|||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Arrays;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Created by adam.
|
||||
|
@ -26,14 +27,13 @@ public class CookieReader {
|
|||
* Reads cookie by key from request.
|
||||
*
|
||||
* @param key the key of a cookie
|
||||
* @return returns cookie value (or null if cookie with given key does not exist)
|
||||
* @return returns cookie value
|
||||
*/
|
||||
public String readCookie(String key) {
|
||||
public Optional<String> readCookie(String key) {
|
||||
return Arrays.stream(request.getCookies())
|
||||
.filter(c -> key.equals(c.getName()))
|
||||
.map(Cookie::getValue)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
.findFirst();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import javax.servlet.ServletException;
|
|||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.*;
|
||||
import java.io.IOException;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Created by adam.
|
||||
|
@ -15,12 +16,12 @@ public class LoginServlet extends HttpServlet {
|
|||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
CookieReader cookieReader = new CookieReader(request);
|
||||
String uiColor = cookieReader.readCookie("uiColor");
|
||||
String userName = cookieReader.readCookie("userName");
|
||||
Optional<String> uiColor = cookieReader.readCookie("uiColor");
|
||||
Optional<String> userName = cookieReader.readCookie("userName");
|
||||
|
||||
request.setAttribute("uiColor", uiColor != null ? uiColor : "blue");
|
||||
request.setAttribute("uiColor", uiColor.isPresent() ? uiColor.get() : "blue");
|
||||
|
||||
if (userName == null || userName.isEmpty()) {
|
||||
if (!userName.isPresent()) {
|
||||
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/login.jsp");
|
||||
dispatcher.forward(request, response);
|
||||
} else {
|
||||
|
|
|
@ -8,6 +8,7 @@ import javax.servlet.http.HttpServlet;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Created by adam.
|
||||
|
@ -18,15 +19,16 @@ public class WelcomeServlet extends HttpServlet {
|
|||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
CookieReader cookieReader = new CookieReader(request);
|
||||
String uiColor = cookieReader.readCookie("uiColor");
|
||||
String userName = cookieReader.readCookie("userName");
|
||||
Optional<String> uiColor = cookieReader.readCookie("uiColor");
|
||||
Optional<String> userName = cookieReader.readCookie("userName");
|
||||
|
||||
if (userName == null || userName.isEmpty()) {
|
||||
if (!userName.isPresent()) {
|
||||
response.sendRedirect("/login");
|
||||
} else {
|
||||
request.setAttribute("uiColor", uiColor != null ? uiColor : "blue");
|
||||
request.setAttribute("userName", userName);
|
||||
request.setAttribute("sessionAttribute", request.getSession().getAttribute("sampleKey"));
|
||||
request.setAttribute("uiColor", uiColor.isPresent() ? uiColor.get() : "blue");
|
||||
request.setAttribute("userName", userName.get());
|
||||
request.setAttribute("sessionAttribute", request.getSession()
|
||||
.getAttribute("sampleKey"));
|
||||
|
||||
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/welcome.jsp");
|
||||
dispatcher.forward(request, response);
|
||||
|
|
Loading…
Reference in New Issue