snipt

Ctrl+h for KB shortcuts

Java

Servlet access to URL

// http://hostname.com:80/mywebapp/servlet/MyServlet/a/b;c=123?d=789
public static String getUrl3(HttpServletRequest req) {
    String scheme = req.getScheme();             // http
    String serverName = req.getServerName();     // hostname.com
    int serverPort = req.getServerPort();        // 80
    String contextPath = req.getContextPath();   // /mywebapp
    String servletPath = req.getServletPath();   // /servlet/MyServlet
    String pathInfo = req.getPathInfo();         // /a/b;c=123
    String queryString = req.getQueryString();          // d=789

    // Reconstruct original requesting URL
    String url = scheme+"://"+serverName+":"+serverPort+contextPath+servletPath;
    if (pathInfo != null) {
        url += pathInfo;
    }
    if (queryString != null) {
        url += "?"+queryString;
    }
    return url;
}
https://snipt.net/embed/a60f97128de7259d87ca14660c4d71b1/
/raw/a60f97128de7259d87ca14660c4d71b1/
a60f97128de7259d87ca14660c4d71b1
java
Java
21
2019-08-24T23:15:57
True
False
False
/api/public/snipt/17847/
servlet-access-to-url
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a> <a href="#L-20">20</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="c1">// http://hostname.com:80/mywebapp/servlet/MyServlet/a/b;c=123?d=789</span> </span><span id="L-2"><a name="L-2"></a><span class="kd">public</span> <span class="kd">static</span> <span class="n">String</span> <span class="nf">getUrl3</span><span class="o">(</span><span class="n">HttpServletRequest</span> <span class="n">req</span><span class="o">)</span> <span class="o">{</span> </span><span id="L-3"><a name="L-3"></a> <span class="n">String</span> <span class="n">scheme</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="na">getScheme</span><span class="o">();</span> <span class="c1">// http</span> </span><span id="L-4"><a name="L-4"></a> <span class="n">String</span> <span class="n">serverName</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="na">getServerName</span><span class="o">();</span> <span class="c1">// hostname.com</span> </span><span id="L-5"><a name="L-5"></a> <span class="kt">int</span> <span class="n">serverPort</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="na">getServerPort</span><span class="o">();</span> <span class="c1">// 80</span> </span><span id="L-6"><a name="L-6"></a> <span class="n">String</span> <span class="n">contextPath</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="na">getContextPath</span><span class="o">();</span> <span class="c1">// /mywebapp</span> </span><span id="L-7"><a name="L-7"></a> <span class="n">String</span> <span class="n">servletPath</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="na">getServletPath</span><span class="o">();</span> <span class="c1">// /servlet/MyServlet</span> </span><span id="L-8"><a name="L-8"></a> <span class="n">String</span> <span class="n">pathInfo</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="na">getPathInfo</span><span class="o">();</span> <span class="c1">// /a/b;c=123</span> </span><span id="L-9"><a name="L-9"></a> <span class="n">String</span> <span class="n">queryString</span> <span class="o">=</span> <span class="n">req</span><span class="o">.</span><span class="na">getQueryString</span><span class="o">();</span> <span class="c1">// d=789</span> </span><span id="L-10"><a name="L-10"></a> </span><span id="L-11"><a name="L-11"></a> <span class="c1">// Reconstruct original requesting URL</span> </span><span id="L-12"><a name="L-12"></a> <span class="n">String</span> <span class="n">url</span> <span class="o">=</span> <span class="n">scheme</span><span class="o">+</span><span class="s">&quot;://&quot;</span><span class="o">+</span><span class="n">serverName</span><span class="o">+</span><span class="s">&quot;:&quot;</span><span class="o">+</span><span class="n">serverPort</span><span class="o">+</span><span class="n">contextPath</span><span class="o">+</span><span class="n">servletPath</span><span class="o">;</span> </span><span id="L-13"><a name="L-13"></a> <span class="k">if</span> <span class="o">(</span><span class="n">pathInfo</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span> </span><span id="L-14"><a name="L-14"></a> <span class="n">url</span> <span class="o">+=</span> <span class="n">pathInfo</span><span class="o">;</span> </span><span id="L-15"><a name="L-15"></a> <span class="o">}</span> </span><span id="L-16"><a name="L-16"></a> <span class="k">if</span> <span class="o">(</span><span class="n">queryString</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span> </span><span id="L-17"><a name="L-17"></a> <span class="n">url</span> <span class="o">+=</span> <span class="s">&quot;?&quot;</span><span class="o">+</span><span class="n">queryString</span><span class="o">;</span> </span><span id="L-18"><a name="L-18"></a> <span class="o">}</span> </span><span id="L-19"><a name="L-19"></a> <span class="k">return</span> <span class="n">url</span><span class="o">;</span> </span><span id="L-20"><a name="L-20"></a><span class="o">}</span> </span></pre></div> </td></tr></table>
"url parts", servlet