diff options
author | Max Romanov <max.romanov@gmail.com> | 2019-02-28 18:02:42 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@gmail.com> | 2019-02-28 18:02:42 +0300 |
commit | 5bfdebb9e4161a689113d73775498949a09d7fb5 (patch) | |
tree | fcb69169e3da983db0eb1f48d2dccc2ac2ff867b /test/java | |
parent | ec7319d32c9c41597a99a9422ff324c97a92bb21 (diff) | |
download | unit-5bfdebb9e4161a689113d73775498949a09d7fb5.tar.gz unit-5bfdebb9e4161a689113d73775498949a09d7fb5.tar.bz2 |
Introducing Java Servlet Container beta.
Diffstat (limited to '')
39 files changed, 1352 insertions, 0 deletions
diff --git a/test/java/content_type/app.java b/test/java/content_type/app.java new file mode 100644 index 00000000..7d8a7418 --- /dev/null +++ b/test/java/content_type/app.java @@ -0,0 +1,89 @@ + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + if (request.getServletPath().equals("/1")) { + response.setContentType("text/plain;charset=utf-8"); + response.setHeader("X-Character-Encoding", response.getCharacterEncoding()); + response.setHeader("X-Content-Type", response.getContentType()); + return; + } + + if (request.getServletPath().equals("/2")) { + response.setContentType("text/plain"); + response.setHeader("X-Character-Encoding", response.getCharacterEncoding()); + response.setHeader("X-Content-Type", response.getContentType()); + return; + } + + if (request.getServletPath().equals("/3")) { + response.setContentType("text/plain;charset=utf-8"); + response.setCharacterEncoding("windows-1251"); + response.setHeader("X-Character-Encoding", response.getCharacterEncoding()); + response.setHeader("X-Content-Type", response.getContentType()); + return; + } + + if (request.getServletPath().equals("/4")) { + response.setCharacterEncoding("windows-1251"); + response.setContentType("text/plain"); + response.setHeader("X-Character-Encoding", response.getCharacterEncoding()); + response.setHeader("X-Content-Type", response.getContentType()); + return; + } + + if (request.getServletPath().equals("/5")) { + response.setContentType("text/plain;charset=utf-8"); + response.setCharacterEncoding(null); + response.setHeader("X-Character-Encoding", response.getCharacterEncoding()); + response.setHeader("X-Content-Type", response.getContentType()); + return; + } + + if (request.getServletPath().equals("/6")) { + response.setContentType("text/plain;charset=utf-8"); + response.setContentType(null); + response.setHeader("X-Character-Encoding", response.getCharacterEncoding()); + response.setHeader("X-Content-Type", response.getContentType()); + return; + } + + if (request.getServletPath().equals("/7")) { + response.setContentType("text/plain;charset=utf-8"); + + PrintWriter out = response.getWriter(); + + response.setCharacterEncoding("windows-1251"); + response.setHeader("X-Character-Encoding", response.getCharacterEncoding()); + response.setHeader("X-Content-Type", response.getContentType()); + return; + } + + if (request.getServletPath().equals("/8")) { + response.setContentType("text/plain;charset=utf-8"); + + PrintWriter out = response.getWriter(); + + response.setContentType("text/html;charset=windows-1251"); + response.setHeader("X-Character-Encoding", response.getCharacterEncoding()); + response.setHeader("X-Content-Type", response.getContentType()); + return; + } + + response.sendError(404); + } +} diff --git a/test/java/cookies/app.java b/test/java/cookies/app.java new file mode 100644 index 00000000..13cea6d1 --- /dev/null +++ b/test/java/cookies/app.java @@ -0,0 +1,30 @@ + +import java.io.IOException; + +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; + +@WebServlet(urlPatterns = "/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie c : cookies) { + if (c.getName().equals("var1")) { + response.addHeader("X-Cookie-1", c.getValue()); + } + if (c.getName().equals("var2")) { + response.addHeader("X-Cookie-2", c.getValue()); + } + } + } + } +} diff --git a/test/java/empty/app.java b/test/java/empty/app.java new file mode 100644 index 00000000..b0fca631 --- /dev/null +++ b/test/java/empty/app.java @@ -0,0 +1,18 @@ + +import java.io.IOException; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { } +} diff --git a/test/java/filter/app.java b/test/java/filter/app.java new file mode 100644 index 00000000..a5da3997 --- /dev/null +++ b/test/java/filter/app.java @@ -0,0 +1,54 @@ + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +@WebServlet(urlPatterns = "/") +public class app extends HttpServlet +{ + @WebFilter(urlPatterns = "") + public static class filter implements Filter + { + @Override + public void init(FilterConfig filterConfig) + { + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException + { + response.getOutputStream().println("Extra Info"); + response.setCharacterEncoding("utf-8"); + + ((HttpServletResponse) response).addHeader("X-Filter-Before", "1"); + + chain.doFilter(request, response); + + ((HttpServletResponse) response).setHeader("X-Filter-After", "1"); + } + + @Override + public void destroy() + { + } + } + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.getOutputStream().println("This is servlet response"); + response.setHeader("X-Filter-After", "0"); + } +} diff --git a/test/java/forward/app.java b/test/java/forward/app.java new file mode 100644 index 00000000..0dea17d6 --- /dev/null +++ b/test/java/forward/app.java @@ -0,0 +1,138 @@ + +import java.io.IOException; +import java.io.PrintWriter; + +import java.util.Map; + +import javax.servlet.DispatcherType; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpServletResponseWrapper; + +public class app extends HttpServlet +{ + private String id; + + private class RequestWrapper extends HttpServletRequestWrapper + { + public RequestWrapper(HttpServletRequest r) + { + super(r); + } + } + + private class ResponseWrapper extends HttpServletResponseWrapper + { + public ResponseWrapper(HttpServletResponse r) + { + super(r); + } + } + + @Override + public void init(ServletConfig sc) + throws ServletException + { + id = sc.getInitParameter("id"); + } + + private RequestDispatcher getRequestDispatcher(HttpServletRequest request, String str) + { + String disp = request.getParameter("disp"); + + if (disp != null && disp.equals("ctx")) { + return request.getServletContext().getRequestDispatcher(str); + } + + if (disp != null && disp.equals("name")) { + return request.getServletContext().getNamedDispatcher(str); + } + + if (disp == null || disp.equals("req")) { + return request.getRequestDispatcher(str); + } + + return null; + } + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + String dtype = "" + request.getDispatcherType(); + + response.addHeader("X-" + dtype + "-Id", id); + response.addHeader("X-" + dtype + "-Request-URI", "" + request.getRequestURI()); + response.addHeader("X-" + dtype + "-Servlet-Path", "" + request.getServletPath()); + response.addHeader("X-" + dtype + "-Path-Info", "" + request.getPathInfo()); + response.addHeader("X-" + dtype + "-Query-String", "" + request.getQueryString()); + response.addHeader("X-" + dtype + "-Dispatcher-Type", "" + request.getDispatcherType()); + + response.setContentType("text/plain; charset=utf-8"); + + Map<String, String[]> pmap = request.getParameterMap(); + + for (Map.Entry<String,String[]> p : pmap.entrySet()) { + response.addHeader("X-" + dtype + "-Param-" + p.getKey(), "" + String.join(",", p.getValue())); + } + + PrintWriter out = response.getWriter(); + + if (id.equals("fwd")) { + String uri = request.getParameter("uri"); + + if (uri != null && request.getDispatcherType() != DispatcherType.FORWARD) { + response.addHeader("X-Forward-To", "" + uri); + + out.println("Before forwarding."); + + RequestDispatcher d = getRequestDispatcher(request, uri); + + if (d == null) { + out.println("Dispatcher is null"); + return; + } + + try { + d.forward(new RequestWrapper(request), new ResponseWrapper(response)); + } catch(Exception e) { + response.addHeader("X-Exception", "" + e); + } + + response.addHeader("X-After-Forwarding", "you-should-not-see-this"); + + out.println("After forwarding."); + + return; + } + } + + if (id.equals("data")) { + response.addHeader("X-" + RequestDispatcher.FORWARD_REQUEST_URI, "" + request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI)); + response.addHeader("X-" + RequestDispatcher.FORWARD_CONTEXT_PATH, "" + request.getAttribute(RequestDispatcher.FORWARD_CONTEXT_PATH)); + response.addHeader("X-" + RequestDispatcher.FORWARD_SERVLET_PATH, "" + request.getAttribute(RequestDispatcher.FORWARD_SERVLET_PATH)); + response.addHeader("X-" + RequestDispatcher.FORWARD_PATH_INFO, "" + request.getAttribute(RequestDispatcher.FORWARD_PATH_INFO)); + response.addHeader("X-" + RequestDispatcher.FORWARD_QUERY_STRING, "" + request.getAttribute(RequestDispatcher.FORWARD_QUERY_STRING)); + + out.println("app.doGet(): #" + this + ", " + id); + out.println("RequestURI: " + request.getRequestURI()); + out.println("ServletPath: " + request.getServletPath()); + out.println("PathInfo: " + request.getPathInfo()); + out.println("DispType: " + request.getDispatcherType()); + out.println("QueryString: " + request.getQueryString()); + + for (Map.Entry<String,String[]> p : pmap.entrySet()) { + out.println("- " + p.getKey() + "=" + String.join(",", p.getValue())); + } + + return; + } + + response.sendError(404); + } +} diff --git a/test/java/forward/index.html b/test/java/forward/index.html new file mode 100644 index 00000000..4f5a6379 --- /dev/null +++ b/test/java/forward/index.html @@ -0,0 +1 @@ +<html><body>This is index.html.</body></html> diff --git a/test/java/forward/web.xml b/test/java/forward/web.xml new file mode 100644 index 00000000..994adb37 --- /dev/null +++ b/test/java/forward/web.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8" ?> + +<web-app xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" + version="3.0"> + + <servlet> + <servlet-name>fwd</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>fwd</param-value></init-param> + </servlet> + + <servlet-mapping> + <servlet-name>fwd</servlet-name> + <url-pattern>/fwd/*</url-pattern> + </servlet-mapping> + + + <servlet> + <servlet-name>data</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>data</param-value></init-param> + </servlet> + + <servlet-mapping> + <servlet-name>data</servlet-name> + <url-pattern>/data/*</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>data</servlet-name> + <url-pattern>/WEB-INF/index.html</url-pattern> + <url-pattern>/index.html</url-pattern> + </servlet-mapping> + +</web-app> + diff --git a/test/java/get_header/app.java b/test/java/get_header/app.java new file mode 100644 index 00000000..c981835d --- /dev/null +++ b/test/java/get_header/app.java @@ -0,0 +1,21 @@ + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.addHeader("X-Reply", request.getHeader("X-Header")); + } +} diff --git a/test/java/get_header_names/app.java b/test/java/get_header_names/app.java new file mode 100644 index 00000000..cd2f3097 --- /dev/null +++ b/test/java/get_header_names/app.java @@ -0,0 +1,27 @@ + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Enumeration; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + Enumeration<String> header_names = request.getHeaderNames(); + + for (int i = 0; header_names.hasMoreElements(); i++) { + response.addHeader("X-Reply-" + Integer.toString(i), + header_names.nextElement()); + } + } +} diff --git a/test/java/get_headers/app.java b/test/java/get_headers/app.java new file mode 100644 index 00000000..f2930a61 --- /dev/null +++ b/test/java/get_headers/app.java @@ -0,0 +1,27 @@ + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Enumeration; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + Enumeration<String> headers = request.getHeaders("X-Header"); + + for (int i = 0; headers.hasMoreElements(); i++) { + response.addHeader("X-Reply-" + Integer.toString(i), + headers.nextElement()); + } + } +} diff --git a/test/java/get_params/app.java b/test/java/get_params/app.java new file mode 100644 index 00000000..1965ae2a --- /dev/null +++ b/test/java/get_params/app.java @@ -0,0 +1,50 @@ + +import java.io.IOException; + +import java.util.Enumeration; +import java.util.Map; + +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; + +@WebServlet(urlPatterns = "/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.addHeader("X-Var-1", request.getParameter("var1")); + response.addHeader("X-Var-2", "" + (request.getParameter("var2") != null)); + response.addHeader("X-Var-3", "" + (request.getParameter("var3") != null)); + response.addHeader("X-Var-4", request.getParameter("var4")); + + Enumeration<String> parameter_names = request.getParameterNames(); + + String names = ""; + for (int i = 0; parameter_names.hasMoreElements(); i++) { + names = names.concat(parameter_names.nextElement() + " "); + } + response.addHeader("X-Param-Names", names); + + String[] parameter_values = request.getParameterValues("var4"); + + String values = ""; + for (int i = 0; i < parameter_values.length; i++) { + values = values.concat(parameter_values[i] + " "); + } + response.addHeader("X-Param-Values", values); + + Map <String, String[]> parameter_map = request.getParameterMap(); + + String map = ""; + for (Map.Entry <String, String[]> p : parameter_map.entrySet()) { + map = map.concat(p.getKey() + "=" + String.join(",", p.getValue()) + " "); + } + response.addHeader("X-Param-Map", map); + } +} diff --git a/test/java/header/app.java b/test/java/header/app.java new file mode 100644 index 00000000..02d56f4d --- /dev/null +++ b/test/java/header/app.java @@ -0,0 +1,34 @@ + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.setHeader("X-Set-Utf8-Value", "тест"); + response.setHeader("X-Set-Utf8-Name-Имя", "x"); + + response.addHeader("X-Add-Utf8-Value", "тест"); + response.addHeader("X-Add-Utf8-Name-Имя", "y"); + + response.addHeader("X-Add-Test", "v1"); + response.addHeader("X-Add-Test", null); + + response.setHeader("X-Set-Test1", "v1"); + response.setHeader("X-Set-Test1", null); + + response.setHeader("X-Set-Test2", "v1"); + response.setHeader("X-Set-Test2", ""); + } +} diff --git a/test/java/header_date/app.java b/test/java/header_date/app.java new file mode 100644 index 00000000..cedd569c --- /dev/null +++ b/test/java/header_date/app.java @@ -0,0 +1,22 @@ + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.setDateHeader("X-Set-Date", 1000); + response.addDateHeader("X-Get-Date", request.getDateHeader("X-Header")); + } +} diff --git a/test/java/header_int/app.java b/test/java/header_int/app.java new file mode 100644 index 00000000..3ac5478e --- /dev/null +++ b/test/java/header_int/app.java @@ -0,0 +1,22 @@ + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.setIntHeader("X-Set-Int", 1); + response.addHeader("X-Get-Int", Integer.toString(request.getIntHeader("X-Header"))); + } +} diff --git a/test/java/include/app.java b/test/java/include/app.java new file mode 100644 index 00000000..d7e36fc6 --- /dev/null +++ b/test/java/include/app.java @@ -0,0 +1,136 @@ + +import java.io.IOException; +import java.io.PrintWriter; + +import java.util.Map; + +import javax.servlet.DispatcherType; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpServletResponseWrapper; + +public class app extends HttpServlet +{ + private String id; + + private class RequestWrapper extends HttpServletRequestWrapper + { + public RequestWrapper(HttpServletRequest r) + { + super(r); + } + } + + private class ResponseWrapper extends HttpServletResponseWrapper + { + public ResponseWrapper(HttpServletResponse r) + { + super(r); + } + } + + @Override + public void init(ServletConfig sc) + throws ServletException + { + id = sc.getInitParameter("id"); + } + + private RequestDispatcher getRequestDispatcher(HttpServletRequest request, String str) + { + String disp = request.getParameter("disp"); + + if (disp != null && disp.equals("ctx")) { + return request.getServletContext().getRequestDispatcher(str); + } + + if (disp != null && disp.equals("name")) { + return request.getServletContext().getNamedDispatcher(str); + } + + if (disp == null || disp.equals("req")) { + return request.getRequestDispatcher(str); + } + + return null; + } + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + String dtype = "" + request.getDispatcherType(); + + response.addHeader("X-" + dtype + "-Id", id); + response.addHeader("X-" + dtype + "-Request-URI", "" + request.getRequestURI()); + response.addHeader("X-" + dtype + "-Servlet-Path", "" + request.getServletPath()); + response.addHeader("X-" + dtype + "-Path-Info", "" + request.getPathInfo()); + response.addHeader("X-" + dtype + "-Query-String", "" + request.getQueryString()); + response.addHeader("X-" + dtype + "-Dispatcher-Type", "" + request.getDispatcherType()); + + response.setContentType("text/plain; charset=utf-8"); + + PrintWriter out = response.getWriter(); + + if (id.equals("inc")) { + String uri = request.getParameter("uri"); + + if (uri != null && request.getDispatcherType() != DispatcherType.INCLUDE) { + response.addHeader("X-Include", "" + uri); + + out.println("Before include."); + + RequestDispatcher d = getRequestDispatcher(request, uri); + + if (d == null) { + out.println("Dispatcher is null"); + return; + } + + try { + d.include(new RequestWrapper(request), new ResponseWrapper(response)); + } catch(Exception e) { + response.addHeader("X-Exception", "" + e); + out.println("Exception: " + e); + } + + response.addHeader("X-After-Include", "you-should-see-this"); + + out.println("After include."); + + return; + } + } + + if (id.equals("data")) { + out.println("app.doGet(): #" + this + ", " + id); + out.println("RequestURI: " + request.getRequestURI()); + out.println("ServletPath: " + request.getServletPath()); + out.println("PathInfo: " + request.getPathInfo()); + out.println("DispType: " + request.getDispatcherType()); + out.println("QueryString: " + request.getQueryString()); + + Map<String, String[]> pmap = request.getParameterMap(); + + for (Map.Entry<String,String[]> p : pmap.entrySet()) { + out.println("- " + p.getKey() + "=" + String.join(",", p.getValue())); + } + + out.println(RequestDispatcher.INCLUDE_REQUEST_URI + ": " + request.getAttribute(RequestDispatcher.INCLUDE_REQUEST_URI)); + out.println(RequestDispatcher.INCLUDE_CONTEXT_PATH + ": " + request.getAttribute(RequestDispatcher.INCLUDE_CONTEXT_PATH)); + out.println(RequestDispatcher.INCLUDE_SERVLET_PATH + ": " + request.getAttribute(RequestDispatcher.INCLUDE_SERVLET_PATH)); + out.println(RequestDispatcher.INCLUDE_PATH_INFO + ": " + request.getAttribute(RequestDispatcher.INCLUDE_PATH_INFO)); + out.println(RequestDispatcher.INCLUDE_QUERY_STRING + ": " + request.getAttribute(RequestDispatcher.INCLUDE_QUERY_STRING)); + + return; + } + + response.sendError(404); + } +} diff --git a/test/java/include/index.html b/test/java/include/index.html new file mode 100644 index 00000000..4f5a6379 --- /dev/null +++ b/test/java/include/index.html @@ -0,0 +1 @@ +<html><body>This is index.html.</body></html> diff --git a/test/java/include/web.xml b/test/java/include/web.xml new file mode 100644 index 00000000..2ed86f1d --- /dev/null +++ b/test/java/include/web.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8" ?> + +<web-app xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" + version="3.0"> + + <servlet> + <servlet-name>inc</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>inc</param-value></init-param> + </servlet> + + <servlet> + <servlet-name>data</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>data</param-value></init-param> + </servlet> + + <servlet-mapping> + <servlet-name>inc</servlet-name> + <url-pattern>/inc/*</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>data</servlet-name> + <url-pattern>/data/*</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>data</servlet-name> + <url-pattern>/WEB-INF/index.html</url-pattern> + <url-pattern>/index.html</url-pattern> + </servlet-mapping> + +</web-app> + diff --git a/test/java/jsp/index.jsp b/test/java/jsp/index.jsp new file mode 100644 index 00000000..0af00a46 --- /dev/null +++ b/test/java/jsp/index.jsp @@ -0,0 +1,2 @@ +<%@ page contentType="text/plain"%>This is plain text response for "<%= request.getMethod() %> <%= request.getRequestURI() %>". +<% response.addHeader("X-Unit-JSP", "ok"); %> diff --git a/test/java/mirror/app.java b/test/java/mirror/app.java new file mode 100644 index 00000000..45bc1d0d --- /dev/null +++ b/test/java/mirror/app.java @@ -0,0 +1,37 @@ + +import java.io.*; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet("/") +public class app extends HttpServlet +{ + @Override + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + StringBuilder buffer = new StringBuilder(); + BufferedReader reader = request.getReader(); + String line; + + while ((line = reader.readLine()) != null) { + buffer.append(line); + } + + String data = buffer.toString(); + + String dataLength = Integer.toString(data.length()); + response.setHeader("Content-Length", dataLength); + + response.setContentType("text/html"); + + PrintWriter out = response.getWriter(); + out.print(data); + out.flush(); + } +} diff --git a/test/java/path_translation/app.java b/test/java/path_translation/app.java new file mode 100644 index 00000000..ce0b9368 --- /dev/null +++ b/test/java/path_translation/app.java @@ -0,0 +1,56 @@ + +import java.io.IOException; +import java.io.PrintWriter; +import java.io.InputStream; + +import java.util.Set; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet( urlPatterns = { "/", "/pt/*" } ) +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.addHeader("X-Request-URI", "" + request.getRequestURI()); + response.addHeader("X-Servlet-Path", "" + request.getServletPath()); + response.addHeader("X-Path-Info", "" + request.getPathInfo()); + response.addHeader("X-Query-String", "" + request.getQueryString()); + response.addHeader("X-Path-Translated", "" + request.getPathTranslated()); + + response.setContentType("text/plain; charset=utf-8"); + + PrintWriter out = response.getWriter(); + ServletContext ctx = request.getServletContext(); + + String path = request.getParameter("path"); + + if (path != null) { + response.addHeader("X-Real-Path", "" + ctx.getRealPath(path)); + response.addHeader("X-Resource", "" + ctx.getResource(path)); + + Set<String> paths = ctx.getResourcePaths(path); + + response.addHeader("X-Resource-Paths", "" + paths); + + InputStream is = ctx.getResourceAsStream(path); + + response.addHeader("X-Resource-As-Stream", "" + is); + + if (is != null) { + final byte[] buf = new byte[1024]; + int r = is.read(buf); + + out.println(new String(buf, 0, r, "utf-8")); + } + } + } +} diff --git a/test/java/path_translation/index.html b/test/java/path_translation/index.html new file mode 100644 index 00000000..4f5a6379 --- /dev/null +++ b/test/java/path_translation/index.html @@ -0,0 +1 @@ +<html><body>This is index.html.</body></html> diff --git a/test/java/post_params/app.java b/test/java/post_params/app.java new file mode 100644 index 00000000..0ed73d42 --- /dev/null +++ b/test/java/post_params/app.java @@ -0,0 +1,22 @@ + +import java.io.IOException; + +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; + +@WebServlet(urlPatterns = "/") +public class app extends HttpServlet +{ + @Override + public void doPost(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.addHeader("X-Var-1", request.getParameter("var1")); + response.addHeader("X-Var-2", "" + (request.getParameter("var2") != null)); + response.addHeader("X-Var-3", "" + (request.getParameter("var3") != null)); + } +} diff --git a/test/java/query_string/app.java b/test/java/query_string/app.java new file mode 100644 index 00000000..7962336b --- /dev/null +++ b/test/java/query_string/app.java @@ -0,0 +1,20 @@ + +import java.io.IOException; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebServlet( urlPatterns = { "/" } ) +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.addHeader("X-Query-String", "" + request.getQueryString()); + } +} diff --git a/test/java/request_listeners/app.java b/test/java/request_listeners/app.java new file mode 100644 index 00000000..6cbf7860 --- /dev/null +++ b/test/java/request_listeners/app.java @@ -0,0 +1,79 @@ + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.ServletRequestEvent; +import javax.servlet.ServletRequestListener; +import javax.servlet.ServletRequestAttributeEvent; +import javax.servlet.ServletRequestAttributeListener; +import javax.servlet.annotation.WebServlet; +import javax.servlet.annotation.WebListener; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@WebListener +@WebServlet(urlPatterns = "/") +public class app extends HttpServlet implements + ServletRequestListener, + ServletRequestAttributeListener +{ + private static String request_initialized = ""; + private static String request_destroyed = ""; + private static String attribute_added = ""; + private static String attribute_removed = ""; + private static String attribute_replaced = ""; + + @Override + public void requestInitialized(ServletRequestEvent sre) + { + HttpServletRequest r = (HttpServletRequest) sre.getServletRequest(); + + request_initialized = r.getRequestURI(); + } + + @Override + public void requestDestroyed(ServletRequestEvent sre) + { + HttpServletRequest r = (HttpServletRequest) sre.getServletRequest(); + + request_destroyed = r.getRequestURI(); + + attribute_added = ""; + attribute_removed = ""; + attribute_replaced = ""; + } + + @Override + public void attributeAdded(ServletRequestAttributeEvent event) + { + attribute_added += event.getName() + "=" + event.getValue() + ";"; + } + + @Override + public void attributeRemoved(ServletRequestAttributeEvent event) + { + attribute_removed += event.getName() + "=" + event.getValue() + ";"; + } + + @Override + public void attributeReplaced(ServletRequestAttributeEvent event) + { + attribute_replaced += event.getName() + "=" + event.getValue() + ";"; + } + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + request.setAttribute("var", request.getParameter("var1")); + request.setAttribute("var", request.getParameter("var2")); + request.setAttribute("var", request.getParameter("var3")); + + response.addHeader("X-Request-Initialized", request_initialized); + response.addHeader("X-Request-Destroyed", request_destroyed); + response.addHeader("X-Attr-Added", attribute_added); + response.addHeader("X-Attr-Removed", attribute_removed); + response.addHeader("X-Attr-Replaced", attribute_replaced); + } +} diff --git a/test/java/session/app.java b/test/java/session/app.java new file mode 100644 index 00000000..84d3fa55 --- /dev/null +++ b/test/java/session/app.java @@ -0,0 +1,30 @@ +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +@WebServlet(urlPatterns = "/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + HttpSession s = request.getSession(); + String old_var1 = (String) s.getAttribute("var1"); + s.setAttribute("var1", request.getParameter("var1")); + + if (old_var1 == null) { + response.addHeader("X-Var-1", "null"); + } else { + response.addHeader("X-Var-1", old_var1); + } + + response.addHeader("X-Session-Id", s.getId()); + response.addHeader("X-Session-New", "" + s.isNew()); + } +} diff --git a/test/java/session_inactive/app.java b/test/java/session_inactive/app.java new file mode 100644 index 00000000..f338fc89 --- /dev/null +++ b/test/java/session_inactive/app.java @@ -0,0 +1,27 @@ +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +@WebServlet(urlPatterns = "/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + HttpSession s = request.getSession(); + + if (s.isNew()) { + s.setMaxInactiveInterval(2); + } + + response.addHeader("X-Session-Id", s.getId()); + response.addDateHeader("X-Session-Last-Access-Time", s.getLastAccessedTime()); + response.addIntHeader("X-Session-Interval", s.getMaxInactiveInterval()); + } +} diff --git a/test/java/session_invalidate/app.java b/test/java/session_invalidate/app.java new file mode 100644 index 00000000..3f66290f --- /dev/null +++ b/test/java/session_invalidate/app.java @@ -0,0 +1,23 @@ +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +@WebServlet(urlPatterns = "/") +public class app extends HttpServlet +{ + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + HttpSession s = request.getSession(); + + s.invalidate(); + + response.addHeader("X-Session-Id", s.getId()); + } +} diff --git a/test/java/session_listeners/app.java b/test/java/session_listeners/app.java new file mode 100644 index 00000000..603cc932 --- /dev/null +++ b/test/java/session_listeners/app.java @@ -0,0 +1,80 @@ + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpSessionAttributeListener; +import javax.servlet.http.HttpSessionBindingEvent; +import javax.servlet.http.HttpSessionEvent; +import javax.servlet.http.HttpSessionIdListener; +import javax.servlet.http.HttpSessionListener; + +@WebServlet(urlPatterns = "/") +public class app extends HttpServlet implements + HttpSessionListener, + HttpSessionIdListener, + HttpSessionAttributeListener +{ + private static String session_created = ""; + private static String session_destroyed = ""; + private static String session_id_changed = ""; + private static String attribute_added = ""; + private static String attribute_removed = ""; + private static String attribute_replaced = ""; + + @Override + public void sessionCreated(HttpSessionEvent se) + { + session_created += se.getSession().getId(); + } + + @Override + public void sessionDestroyed(HttpSessionEvent se) + { + session_destroyed += se.getSession().getId(); + } + + @Override + public void sessionIdChanged(HttpSessionEvent event, String oldId) + { + session_id_changed += " " + oldId + "->" + event.getSession().getId(); + } + + @Override + public void attributeAdded(HttpSessionBindingEvent event) + { + attribute_added += event.getName() + "=" + event.getValue(); + } + + @Override + public void attributeRemoved(HttpSessionBindingEvent event) + { + attribute_removed += event.getName() + "=" + event.getValue(); + } + + @Override + public void attributeReplaced(HttpSessionBindingEvent event) + { + attribute_replaced += event.getName() + "=" + event.getValue(); + } + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + HttpSession s = request.getSession(); + s.setAttribute("var1", request.getParameter("var1")); + + response.addHeader("X-Session-Id", s.getId()); + response.addHeader("X-Session-Created", session_created); + response.addHeader("X-Session-Destroyed", session_destroyed); + response.addHeader("X-Attr-Added", attribute_added); + response.addHeader("X-Attr-Removed", attribute_removed); + response.addHeader("X-Attr-Replaced", attribute_replaced); + } +} diff --git a/test/java/session_listeners/web.xml b/test/java/session_listeners/web.xml new file mode 100644 index 00000000..aedfe175 --- /dev/null +++ b/test/java/session_listeners/web.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> + +<web-app xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" + version="3.0"> + <listener> + <listener-class>app</listener-class> + </listener> + <listener> + <listener-class>app</listener-class> + </listener> +</web-app> + diff --git a/test/java/url_pattern/app.java b/test/java/url_pattern/app.java new file mode 100644 index 00000000..88b071a2 --- /dev/null +++ b/test/java/url_pattern/app.java @@ -0,0 +1,39 @@ + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class app extends HttpServlet +{ + private String id; + + @Override + public void init(ServletConfig sc) + throws ServletException + { + id = sc.getInitParameter("id"); + } + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.addHeader("X-Id", id); + response.addHeader("X-Request-URI", "" + request.getRequestURI()); + response.addHeader("X-Servlet-Path", "" + request.getServletPath()); + response.setHeader("X-Path-Info", "" + request.getPathInfo()); + + response.setContentType("text/plain; charset=utf-8"); + + PrintWriter out = response.getWriter(); + out.println("app.doGet(): #" + this + ", " + id); + out.println("RequestURI: " + request.getRequestURI()); + out.println("ServletPath: " + request.getServletPath()); + out.println("PathInfo: " + request.getPathInfo()); + } +} diff --git a/test/java/url_pattern/web.xml b/test/java/url_pattern/web.xml new file mode 100644 index 00000000..048400a6 --- /dev/null +++ b/test/java/url_pattern/web.xml @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="utf-8" ?> + +<web-app xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" + version="3.0"> + + <servlet> + <servlet-name>servlet0</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>servlet0</param-value></init-param> + </servlet> + + <servlet> + <servlet-name>servlet1</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>servlet1</param-value></init-param> + </servlet> + + <servlet> + <servlet-name>servlet2</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>servlet2</param-value></init-param> + </servlet> + + <servlet> + <servlet-name>servlet3</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>servlet3</param-value></init-param> + </servlet> + + <servlet> + <servlet-name>servlet4</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>servlet4</param-value></init-param> + </servlet> + + <servlet> + <servlet-name>default</servlet-name> + <servlet-class>app</servlet-class> + <init-param><param-name>id</param-name><param-value>default</param-value></init-param> + </servlet> + + <servlet-mapping> + <servlet-name>servlet0</servlet-name> + <url-pattern>/foo/*</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>servlet1</servlet-name> + <url-pattern>/foo/bar/*</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>servlet2</servlet-name> + <url-pattern>/baz/*</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>servlet3</servlet-name> + <url-pattern>/catalog</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>servlet4</servlet-name> + <url-pattern>*.bop</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>default</servlet-name> + <url-pattern>/</url-pattern> + </servlet-mapping> + +</web-app> + diff --git a/test/java/welcome_files/app.java b/test/java/welcome_files/app.java new file mode 100644 index 00000000..ce922531 --- /dev/null +++ b/test/java/welcome_files/app.java @@ -0,0 +1,67 @@ + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import javax.servlet.annotation.WebFilter; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public class app extends HttpServlet +{ + @WebFilter(urlPatterns = "*.jsp") + public static class jsp_filter implements Filter + { + @Override + public void init(FilterConfig filterConfig) { } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException + { + ((HttpServletResponse) response).addHeader("X-JSP-Filter", "1"); + + chain.doFilter(request, response); + } + + @Override + public void destroy() { } + } + + @WebFilter(urlPatterns = "*.txt") + public static class txt_filter implements Filter + { + @Override + public void init(FilterConfig filterConfig) { } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException + { + ((HttpServletResponse) response).addHeader("X-TXT-Filter", "1"); + + chain.doFilter(request, response); + } + + @Override + public void destroy() { } + } + + @Override + public void doGet(HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + response.addHeader("X-App-Servlet", "1"); + response.setContentType("text/plain; charset=utf-8"); + + PrintWriter out = response.getWriter(); + out.println("App Servlet"); + } +} diff --git a/test/java/welcome_files/dir1/index.txt b/test/java/welcome_files/dir1/index.txt new file mode 100644 index 00000000..e7784d20 --- /dev/null +++ b/test/java/welcome_files/dir1/index.txt @@ -0,0 +1 @@ +This is index.txt. diff --git a/test/java/welcome_files/dir2/default.jsp b/test/java/welcome_files/dir2/default.jsp new file mode 100644 index 00000000..48627641 --- /dev/null +++ b/test/java/welcome_files/dir2/default.jsp @@ -0,0 +1,3 @@ +<%@ page contentType="text/html"%> +<html><body><p>You should see this on <a href="/dir2/">/dir2/</a> URL.</p></body></html> +<% response.addHeader("X-Unit-JSP", "ok"); %> diff --git a/test/java/welcome_files/dir2/index.html b/test/java/welcome_files/dir2/index.html new file mode 100644 index 00000000..5b111825 --- /dev/null +++ b/test/java/welcome_files/dir2/index.html @@ -0,0 +1 @@ +<html><body><p>You should see this on <a href="/dir2/">/dir2/</a> URL.</p></body></html> diff --git a/test/java/welcome_files/dir3/index.txt b/test/java/welcome_files/dir3/index.txt new file mode 100644 index 00000000..8a2b7dea --- /dev/null +++ b/test/java/welcome_files/dir3/index.txt @@ -0,0 +1 @@ +You should never see this. diff --git a/test/java/welcome_files/dir4/index.html b/test/java/welcome_files/dir4/index.html new file mode 100644 index 00000000..2cef75e2 --- /dev/null +++ b/test/java/welcome_files/dir4/index.html @@ -0,0 +1 @@ +<html><body><p>You should see this for <a href="/dir4/index.html">/dir4/index.html</a> or <a href="/dir4/">/dir4/</a> url.</body></html> diff --git a/test/java/welcome_files/index.htm b/test/java/welcome_files/index.htm new file mode 100644 index 00000000..97e34cf5 --- /dev/null +++ b/test/java/welcome_files/index.htm @@ -0,0 +1 @@ +<html><body><p>You should see this ONLY for <a href="/index.htm">/index.htm</a> url.</body></html> diff --git a/test/java/welcome_files/web.xml b/test/java/welcome_files/web.xml new file mode 100644 index 00000000..6bbc7c8e --- /dev/null +++ b/test/java/welcome_files/web.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8" ?> + +<web-app xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" + version="3.0"> + + <welcome-file-list> + <welcome-file>index.txt</welcome-file> + <welcome-file>default.jsp</welcome-file> + <welcome-file>index.html</welcome-file> + </welcome-file-list> + + <servlet> + <servlet-name>app</servlet-name> + <servlet-class>app</servlet-class> + </servlet> + + <servlet-mapping> + <servlet-name>app</servlet-name> + <url-pattern>/dir3/index.txt</url-pattern> + <url-pattern>/dir4/index.txt</url-pattern> + <url-pattern>/dir5/index.html</url-pattern> + </servlet-mapping> + +</web-app> + |