Hvordan få en URL i en Servlet
I Java programmeringsspråk, er en servlet en klasse som brukes til å forlenge en server evne som blir tilgjengelig ved en vertsprogram. Dette utføres vanligvis ved en forespørsel-respons programmeringsmodellen. HTTP-spesifikke servlets gi doGet og doPost metoder for håndtering av disse tjenestene. Å få eller hente den anmodende URL i en servlet gjøres via bruk av visse Java forespørsler. Følgende URL antas i trinnene nedenfor: http://hostname.com/mywebapp/servlet/MyServlet/a/b;c=123?d=789.
Bruksanvisning
1 Bruk ServletRequest.getRequestURL ():
public static String getUrl (HttpServletRequest req) {
String reqUrl = req.getRequestURL().toString();
String QueryString = req.getQueryString (); // D = 789
if (QueryString! = null) {
reqUrl + = + QueryString »?";
}
tilbake reqUrl;
}
Denne metoden returnerer alt, men søkestrengen.
2 Bruk ServletRequest.getRequestURI () hvis du ikke trenger vertsnavn:
public static String getUrl (HttpServletRequest req) {
String reqUri = req.getRequestURI().toString();
String QueryString = req.getQueryString (); // D = 789
if (QueryString! = null) {
reqUri + = + QueryString »?";
}
tilbake reqUri;
}
3 Å konstruere URL fra grunnen av, bruker du følgende:
public static String getUrl (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
// Rekonstruere opprinnelige ber URL
String url = ordningen + ": //" + servername + ":" + serverPort + contextPath + servletPath; if (pathInfo! = null) {
url + = pathInfo;
}
if (QueryString! = null) {
url += "?"+queryString;
}
return url;
}