【转】request获取网址

转载地址:http://jun1986.iteye.com/blog/1308637



获取地址栏上地址方式为 request.getRequestURL() + "?" + request.getQueryString();




test1.jsp=======================

<a href ="test.jsp?p=fuck">跳转到test2</a>

test2.jsp=======================

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

out.println("basePath:"+basePath);
out.println("<br/>");
out.println("getContextPath:"+request.getContextPath());
out.println("<br/>");
out.println("getServletPath:"+request.getServletPath());
out.println("<br/>");
out.println("getRequestURI:"+request.getRequestURI());
out.println("<br/>");
out.println("getRequestURL:"+request.getRequestURL());
out.println("<br/>");
out.println("getRealPath:"+request.getRealPath("/"));
out.println("<br/>");
out.println("getServletContext().getRealPath:"+getServletContext().getRealPath("/"));
out.println("<br/>");
out.println("getQueryString:"+request.getQueryString());

%>

显示结果:

basePath:http://localhost:8080/test/

getContextPath:/test 
getServletPath:/test.jsp 
getRequestURI:/test/test.jsp 
getRequestURL:http://localhost:8080/test/test.jsp 
getRealPath:D:\Tomcat 6.0\webapps\test\ 
getServletContext().getRealPath:D:\Tomcat 6.0\webapps\test\ 
getQueryString:p=fuck

在一些应用中,未登录用户请求了必须登录的资源时,提示用户登录,此时要记住用户访问的当前页面的URL,当他登录成功后根据记住的URL跳回用户最后访问的页面:

String lastAccessUrl = request.getRequestURL() + "?" + request.getQueryString();

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";







Request对象的主要方法: 

setAttribute(String name,Object):设置名字为name的request 的参数值 

getAttribute(String name):返回由name指定的属性值 

getAttributeNames():返回request 对象所有属性的名字集合,结果是一个枚举的实例 

getCookies():返回客户端的所有 Cookie 对象,结果是一个Cookie 数组 

getCharacterEncoding() :返回请求中的字符编码方式 

getContentLength() :返回请求的 Body的长度 

getHeader(String name) :获得HTTP协议定义的文件头信息 

getHeaders(String name) :返回指定名字的request Header 的所有值,结果是一个枚举的实例 

getHeaderNames() :返回所以request Header 的名字,结果是一个枚举的实例 

getInputStream() :返回请求的输入流,用于获得请求中的数据 

getMethod() :获得客户端向服务器端传送数据的方法 

getParameter(String name) :获得客户端传送给服务器端的有 name指定的参数值 

getParameterNames() :获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实

例 

getParameterValues(String name):获得有name指定的参数的所有值 

getProtocol():获取客户端向服务器端传送数据所依据的协议名称 

getQueryString() :获得查询字符串 

getRequestURI() :获取发出请求字符串的客户端地址 

getRemoteAddr():获取客户端的 IP 地址 

getRemoteHost() :获取客户端的名字 

getSession([Boolean create]) :返回和请求相关 Session 

getServerName() :获取服务器的名字 

getServletPath():获取客户端所请求的脚本文件的路径 

getServerPort():获取服务器的端口号 

removeAttribute(String name):删除请求中的一个属性


猜你喜欢

转载自blog.csdn.net/yx1214442120/article/details/49489553