// // ======================================================================== // Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd. // ------------------------------------------------------------------------ // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // and Apache License v2.0 which accompanies this distribution. // // The Eclipse Public License is available at // http://www.eclipse.org/legal/epl-v10.html // // The Apache License v2.0 is available at // http://www.opensource.org/licenses/apache2.0.php // // You may elect to redistribute this code under either of these licenses. // ======================================================================== // package com.acme; import java.io.IOException; import java.io.OutputStreamWriter; 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; import org.eclipse.jetty.util.StringUtil; /* ------------------------------------------------------------ */ /** Rego Servlet - tests being accessed from servlet 3.0 programmatic * configuration. * */ public class RegTest extends HttpServlet { /* ------------------------------------------------------------ */ @Override public void init(ServletConfig config) throws ServletException { super.init(config); } /* ------------------------------------------------------------ */ @Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /* ------------------------------------------------------------ */ @Override public void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); PrintWriter pout=null; try { pout =response.getWriter(); } catch(IllegalStateException e) { pout=new PrintWriter(new OutputStreamWriter(response.getOutputStream(),"UTF-8")); } try { pout.write("<html>\n<body>\n"); pout.write("<h1>Rego Servlet</h1>\n"); pout.write("<table width=\"95%\">"); pout.write("<tr>\n"); pout.write("<th align=\"right\">getMethod: </th>"); pout.write("<td>" + notag(request.getMethod())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getContentLength: </th>"); pout.write("<td>"+Integer.toString(request.getContentLength())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getContentType: </th>"); pout.write("<td>"+notag(request.getContentType())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getRequestURI: </th>"); pout.write("<td>"+notag(request.getRequestURI())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getRequestURL: </th>"); pout.write("<td>"+notag(request.getRequestURL().toString())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getContextPath: </th>"); pout.write("<td>"+request.getContextPath()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getServletPath: </th>"); pout.write("<td>"+notag(request.getServletPath())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getPathInfo: </th>"); pout.write("<td>"+notag(request.getPathInfo())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getPathTranslated: </th>"); pout.write("<td>"+notag(request.getPathTranslated())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getQueryString: </th>"); pout.write("<td>"+notag(request.getQueryString())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getProtocol: </th>"); pout.write("<td>"+request.getProtocol()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getScheme: </th>"); pout.write("<td>"+request.getScheme()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getServerName: </th>"); pout.write("<td>"+notag(request.getServerName())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getServerPort: </th>"); pout.write("<td>"+Integer.toString(request.getServerPort())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getLocalName: </th>"); pout.write("<td>"+request.getLocalName()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getLocalAddr: </th>"); pout.write("<td>"+request.getLocalAddr()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getLocalPort: </th>"); pout.write("<td>"+Integer.toString(request.getLocalPort())+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getRemoteUser: </th>"); pout.write("<td>"+request.getRemoteUser()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getUserPrincipal: </th>"); pout.write("<td>"+request.getUserPrincipal()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getRemoteAddr: </th>"); pout.write("<td>"+request.getRemoteAddr()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getRemoteHost: </th>"); pout.write("<td>"+request.getRemoteHost()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getRemotePort: </th>"); pout.write("<td>"+request.getRemotePort()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">getRequestedSessionId: </th>"); pout.write("<td>"+request.getRequestedSessionId()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">isSecure(): </th>"); pout.write("<td>"+request.isSecure()+"</td>"); pout.write("</tr><tr>\n"); pout.write("<th align=\"right\">isUserInRole(admin): </th>"); pout.write("<td>"+request.isUserInRole("admin")+"</td>"); pout.write("</tr></table>"); } catch (Exception e) { getServletContext().log("dump "+e); } pout.write("</body>\n</html>\n"); pout.close(); } /* ------------------------------------------------------------ */ @Override public String getServletInfo() { return "Rego Servlet"; } /* ------------------------------------------------------------ */ @Override public synchronized void destroy() { } private String notag(String s) { if (s==null) return "null"; s=StringUtil.replace(s,"&","&"); s=StringUtil.replace(s,"<","<"); s=StringUtil.replace(s,">",">"); return s; } }