mvc mkyong form example docs spring-mvc base-url

mkyong - Obtener URL de raíz/base en Spring MVC



spring mvc button onclick example (9)

¿Cuál es la mejor manera de obtener la URL raíz / base de una aplicación web en Spring MVC?

Base Url = http://www.example.com o http://www.example.com/VirtualDirectory




En el controlador, use HttpServletRequest.getContextPath() .

En JSP usa la librería de etiquetas de Spring: o jstl


Si la url base es " http://www.example.com ", use lo siguiente para obtener la parte " www.example.com ", sin la "http: //"

Desde un controlador:

@RequestMapping(value = "/someURL", method = RequestMethod.GET) public ModelAndView doSomething(HttpServletRequest request) throws IOException{ //Try this: request.getLocalName(); // or this request.getLocalAddr(); }

Desde JSP:

Declara esto en la parte superior de tu documento:

<c:set var="baseURL" value="${pageContext.request.localName}"/> //or ".localAddr"

Luego, para usarlo, haga referencia a la variable:

<a href="http://${baseURL}">Go Home</a>


Simplemente :

String getBaseUrl(HttpServletRequest req) { return req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + req.getContextPath(); }


También puedes crear tu propio método para obtenerlo:

public String getURLBase(HttpServletRequest request) throws MalformedURLException { URL requestURL = new URL(request.getRequestURL().toString()); String port = requestURL.getPort() == -1 ? "" : ":" + requestURL.getPort(); return requestURL.getProtocol() + "://" + requestURL.getHost() + port; }


request.getRequestURL (). toString (). replace (request.getRequestURI (), request.getContextPath ())


UriCompoenentsBuilder un UriCompoenentsBuilder :

@RequestMapping(yaddie yadda) public void doit(UriComponentBuilder b) { //b is pre-populated with context URI here }

. O hazlo tú mismo (similar a la respuesta de Salims):

// Get full URL (http://user:[email protected]/root/some?k=v#hey) URI requestUri = new URI(req.getRequestURL().toString()); // and strip last parts (http://user:[email protected]/root) URI contextUri = new URI(requestUri.getScheme(), requestUri.getAuthority(), req.getContextPath(), null, null);

Luego puedes usar UriComponentsBuilder desde esa URI:

// http://user:[email protected]/root/some/other/14 URI complete = UriComponentsBuilder.fromUri(contextUri) .path("/some/other/{id}") .buildAndExpand(14) .toUri();