* 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
This commit is contained in:
abialas 2018-03-17 00:05:57 +01:00 committed by maibin
parent ffe7e39f51
commit d9e4ec2d2d
5 changed files with 162 additions and 0 deletions

View File

@ -0,0 +1,39 @@
package com.baeldung.servlets;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
/**
* Created by adam.
*
* Class which simplifies reading cookies from request.
*/
public class CookieReader {
private HttpServletRequest request;
/**
* The constructor.
*
* @param request request from which cookies will be read
*/
public CookieReader(HttpServletRequest request) {
this.request = request;
}
/**
* 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)
*/
public String readCookie(String key) {
return Arrays.stream(request.getCookies())
.filter(c -> key.equals(c.getName()))
.map(Cookie::getValue)
.findFirst()
.orElse(null);
}
}

View File

@ -0,0 +1,48 @@
package com.baeldung.servlets;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
/**
* Created by adam.
*/
@WebServlet(name = "LoginServlet", urlPatterns = "/login")
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");
request.setAttribute("uiColor", uiColor != null ? uiColor : "blue");
if (userName == null || userName.isEmpty()) {
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/login.jsp");
dispatcher.forward(request, response);
} else {
response.sendRedirect("/welcome");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
HttpSession session = request.getSession();
session.setAttribute("sampleKey", "Sample Value");
String uiColor = request.getParameter("color");
String userName = request.getParameter("name");
Cookie uiColorCookie = new Cookie("uiColor", uiColor);
response.addCookie(uiColorCookie);
Cookie userNameCookie = new Cookie("userName", userName);
response.addCookie(userNameCookie);
response.sendRedirect("/welcome");
}
}

View File

@ -0,0 +1,45 @@
package com.baeldung.servlets;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by adam.
*/
@WebServlet(name = "WelcomeServlet", urlPatterns = "/welcome")
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");
if (userName == null || userName.isEmpty()) {
response.sendRedirect("/login");
} else {
request.setAttribute("uiColor", uiColor != null ? uiColor : "blue");
request.setAttribute("userName", userName);
request.setAttribute("sessionAttribute", request.getSession().getAttribute("sampleKey"));
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/welcome.jsp");
dispatcher.forward(request, response);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
Cookie userNameCookieRemove = new Cookie("userName", "");
userNameCookieRemove.setMaxAge(0);
response.addCookie(userNameCookieRemove);
response.sendRedirect("/login");
}
}

View File

@ -0,0 +1,17 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>Hello New User:</title>
</head>
<body style="background: ${uiColor}">
<form name="userForm" action="login" method="POST">
<label>Your Name:</label>
<input type="text" name="name"/>
<label>UI Color:</label>
<input type="text" name="color"/>
<button type="submit">Confirm</button>
</form>
</body>
</html>

View File

@ -0,0 +1,13 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>Hello Known User:</title>
</head>
<body style="background: ${uiColor}">
<form action="welcome" method="POST">
<label>Your name: ${userName}</label>
<label>Session param: ${sessionAttribute}</label>
<button type="submit">Logout</button>
</form>
</body>
</html>