Java/Servlets/URL
Содержание
- 1 Get Base Url for servlet
- 2 Get Relative Url for servlet
- 3 Servlet: URL redirect
- 4 Servlet: URL rewrite
- 5 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>
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("