Java/Servlets/URL

Материал из Java эксперт
Перейти к: навигация, поиск

Get Base Url for servlet

   <source lang="java">

/*

* Copyright (C) 2006 Methodhead Software LLC.  All rights reserved.
* 
* This file is part of TransferCM.
* 
* TransferCM is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
* 
* TransferCM is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
* details.
* 
* You should have received a copy of the GNU General Public License along with
* TransferCM; if not, write to the Free Software Foundation, Inc., 51 Franklin St,
* Fifth Floor, Boston, MA  02110-1301  USA
*/

import javax.servlet.http.HttpServletRequest; import java.io.File; public class ServletUtils {

 // constructors /////////////////////////////////////////////////////////////
 // constants ////////////////////////////////////////////////////////////////
 // classes //////////////////////////////////////////////////////////////////
 // methods //////////////////////////////////////////////////////////////////
 /**
  * NOT UNIT TESTED Returns the URL (including query parameters) minus the scheme, host, and
  * context path.  This method probably be moved to a more general purpose
  * class.
  */
 public static String getRelativeUrl(
   HttpServletRequest request ) {
   String baseUrl = null;
   if ( ( request.getServerPort() == 80 ) ||
        ( request.getServerPort() == 443 ) )
     baseUrl =
       request.getScheme() + "://" +
       request.getServerName() +
       request.getContextPath();
   else
     baseUrl =
       request.getScheme() + "://" +
       request.getServerName() + ":" + request.getServerPort() +
       request.getContextPath();
   StringBuffer buf = request.getRequestURL();
   if ( request.getQueryString() != null ) {
     buf.append( "?" );
     buf.append( request.getQueryString() );
   }
   return buf.substring( baseUrl.length() );
 }
 /**
  * NOT UNIT TESTED Returns the base url (e.g, http://myhost:8080/myapp) suitable for
  * using in a base tag or building reliable urls.
  */
 public static String getBaseUrl( HttpServletRequest request ) {
   if ( ( request.getServerPort() == 80 ) ||
        ( request.getServerPort() == 443 ) )
     return request.getScheme() + "://" +
            request.getServerName() +
            request.getContextPath();
   else
     return request.getScheme() + "://" +
            request.getServerName() + ":" + request.getServerPort() +
            request.getContextPath();
 }
 /**
  * Returns the file specified by path as returned by
  * ServletContext.getRealPath().
  */
 public static File getRealFile(
   HttpServletRequest request,
   String path ) {
   return
     new File( request.getSession().getServletContext().getRealPath( path ) );
 }
 // properties ///////////////////////////////////////////////////////////////
 // attributes ///////////////////////////////////////////////////////////////

}

 </source>
   
  
 
  



Get Relative Url for servlet

   <source lang="java">

/*

* Copyright (C) 2006 Methodhead Software LLC.  All rights reserved.
* 
* This file is part of TransferCM.
* 
* TransferCM is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
* 
* TransferCM is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
* details.
* 
* You should have received a copy of the GNU General Public License along with
* TransferCM; if not, write to the Free Software Foundation, Inc., 51 Franklin St,
* Fifth Floor, Boston, MA  02110-1301  USA
*/

import javax.servlet.http.HttpServletRequest; import java.io.File; public class ServletUtils {

 // constructors /////////////////////////////////////////////////////////////
 // constants ////////////////////////////////////////////////////////////////
 // classes //////////////////////////////////////////////////////////////////
 // methods //////////////////////////////////////////////////////////////////
 /**
  * NOT UNIT TESTED Returns the URL (including query parameters) minus the scheme, host, and
  * context path.  This method probably be moved to a more general purpose
  * class.
  */
 public static String getRelativeUrl(
   HttpServletRequest request ) {
   String baseUrl = null;
   if ( ( request.getServerPort() == 80 ) ||
        ( request.getServerPort() == 443 ) )
     baseUrl =
       request.getScheme() + "://" +
       request.getServerName() +
       request.getContextPath();
   else
     baseUrl =
       request.getScheme() + "://" +
       request.getServerName() + ":" + request.getServerPort() +
       request.getContextPath();
   StringBuffer buf = request.getRequestURL();
   if ( request.getQueryString() != null ) {
     buf.append( "?" );
     buf.append( request.getQueryString() );
   }
   return buf.substring( baseUrl.length() );
 }
 /**
  * NOT UNIT TESTED Returns the base url (e.g, http://myhost:8080/myapp) suitable for
  * using in a base tag or building reliable urls.
  */
 public static String getBaseUrl( HttpServletRequest request ) {
   if ( ( request.getServerPort() == 80 ) ||
        ( request.getServerPort() == 443 ) )
     return request.getScheme() + "://" +
            request.getServerName() +
            request.getContextPath();
   else
     return request.getScheme() + "://" +
            request.getServerName() + ":" + request.getServerPort() +
            request.getContextPath();
 }
 /**
  * Returns the file specified by path as returned by
  * ServletContext.getRealPath().
  */
 public static File getRealFile(
   HttpServletRequest request,
   String path ) {
   return
     new File( request.getSession().getServletContext().getRealPath( path ) );
 }
 // properties ///////////////////////////////////////////////////////////////
 // attributes ///////////////////////////////////////////////////////////////

}

 </source>
   
  
 
  



Servlet: URL redirect

   <source lang="java">

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class UrlRedirect extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, java.io.IOException {
       String contextPath= "http://www.jexp.ru";
   response.sendRedirect(response.encodeRedirectURL(contextPath + "/maps"));
 }

}


 </source>
   
  
 
  



Servlet: URL rewrite

   <source lang="java">

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class UrlRewrite extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, java.io.IOException {
   response.setContentType("text/html");
   java.io.PrintWriter out = response.getWriter();
   String contextPath = request.getContextPath();
   String encodedUrl = response.encodeURL(contextPath + "/default.jsp");
   out.println("<html>");
   out.println("<head>");
   out.println("<title>URL Rewriter</title>");
   out.println("</head>");
   out.println("<body>");
out.println("

This page will use URL rewriting if necessary</h2>"); out.println("Go to the default.jsp page ."); out.println("</body>"); out.println("</html>"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { doGet(request, response); } } </source>