diff --git a/javax-servlets/src/main/java/com/baeldung/filters/EmptyParamFilter.java b/javax-servlets/src/main/java/com/baeldung/filters/EmptyParamFilter.java new file mode 100644 index 0000000000..b0b5392237 --- /dev/null +++ b/javax-servlets/src/main/java/com/baeldung/filters/EmptyParamFilter.java @@ -0,0 +1,35 @@ +package com.baeldung.filters; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebFilter; +import java.io.IOException; + +@WebFilter(urlPatterns = "/uppercase") +public class EmptyParamFilter implements Filter { + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, + FilterChain filterChain) throws IOException, ServletException { + String inputString = servletRequest.getParameter("input"); + + if (inputString != null && inputString.matches("[A-Za-z0-9]+")) { + filterChain.doFilter(servletRequest, servletResponse); + } else { + servletResponse.getWriter().println("Missing input parameter"); + } + } + + @Override + public void destroy() { + } + +} diff --git a/javax-servlets/src/main/java/com/baeldung/listeners/AppListener.java b/javax-servlets/src/main/java/com/baeldung/listeners/AppListener.java new file mode 100644 index 0000000000..ed16dd1654 --- /dev/null +++ b/javax-servlets/src/main/java/com/baeldung/listeners/AppListener.java @@ -0,0 +1,21 @@ +package com.baeldung.listeners; + +import javax.servlet.ServletContext; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; +import javax.servlet.annotation.WebListener; + +@WebListener +public class AppListener implements ServletContextListener { + + @Override + public void contextInitialized(ServletContextEvent event) { + ServletContext context = event.getServletContext(); + context.setAttribute("counter", 0); + } + + @Override + public void contextDestroyed(ServletContextEvent event) { + + } +} diff --git a/javax-servlets/src/main/java/com/baeldung/listeners/RequestListener.java b/javax-servlets/src/main/java/com/baeldung/listeners/RequestListener.java new file mode 100644 index 0000000000..7f0c37b666 --- /dev/null +++ b/javax-servlets/src/main/java/com/baeldung/listeners/RequestListener.java @@ -0,0 +1,24 @@ +package com.baeldung.listeners; + +import javax.servlet.ServletContext; +import javax.servlet.ServletRequestEvent; +import javax.servlet.ServletRequestListener; +import javax.servlet.annotation.WebListener; +import javax.servlet.http.HttpServletRequest; + +@WebListener +public class RequestListener implements ServletRequestListener { + + @Override + public void requestInitialized(ServletRequestEvent event) { + } + + @Override + public void requestDestroyed(ServletRequestEvent event) { + HttpServletRequest request = (HttpServletRequest)event.getServletRequest(); + if (!request.getServletPath().equals("/counter")) { + ServletContext context = event.getServletContext(); + context.setAttribute("counter", (int)context.getAttribute("counter") + 1); + } + } +} diff --git a/javax-servlets/src/main/java/com/baeldung/servlets/CounterServlet.java b/javax-servlets/src/main/java/com/baeldung/servlets/CounterServlet.java new file mode 100644 index 0000000000..a11f084db2 --- /dev/null +++ b/javax-servlets/src/main/java/com/baeldung/servlets/CounterServlet.java @@ -0,0 +1,21 @@ +package com.baeldung.servlets; + +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(urlPatterns = "/counter", name = "counterServlet") +public class CounterServlet extends HttpServlet { + + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + PrintWriter out = response.getWriter(); + + int count = (int)request.getServletContext().getAttribute("counter"); + + out.println("Request counter: " + count); + } + +} diff --git a/javax-servlets/src/main/java/com/baeldung/servlets/UppercaseServlet.java b/javax-servlets/src/main/java/com/baeldung/servlets/UppercaseServlet.java new file mode 100644 index 0000000000..766ec2e6ff --- /dev/null +++ b/javax-servlets/src/main/java/com/baeldung/servlets/UppercaseServlet.java @@ -0,0 +1,20 @@ +package com.baeldung.servlets; + +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +@WebServlet(urlPatterns = "/uppercase", name = "uppercaseServlet") +public class UppercaseServlet extends HttpServlet { + + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + String inputString = request.getParameter("input").toUpperCase(); + + PrintWriter out = response.getWriter(); + + out.println(inputString); + } +}