Servlet--HttpServletRequest一些不常用的方法

原创 2015年07月07日 22:31:28

我们在使用Servlet和表单进行交互的时候,不管是传参和接参经常要写一些路径。关于具体的Servlet的传参和接参我后面会有详细的整理,这里先整理一下不怎么常用的到一些HttpServletRequest的方法,这些我们其实都应该是知道的。

OK,我们用myeclipse new一个jsp页面的时候,最上面的2行会带出信息说:

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

这里的path就是我们在提交表单时候要写的绝对路径的开头,也就是项目名。

basePath是整个的提交请求时候的完整的路径。


我下面自己写一个Servlet,里面调用下这些方法,统一做一个整理,虽然不怎么用到,但是还是要知道这些方法的。

package linkin;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LinkinServlet extends HttpServlet
{
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
	{
		//请求的上下文路径     /linkin
		System.out.println(req.getContextPath());
		//请求的完整的URI /linkin/LinkinServlet
		System.out.println(req.getRequestURI());
		//请求的完整的URL http://localhost:8080/linkin/LinkinServlet
		System.out.println(req.getRequestURL());
		//请求的Servlet在项目中的路径	/LinkinServlet
		System.out.println(req.getServletPath());
		//请求的http请求类型	GET
		System.out.println(req.getMethod());
		//请求的协议类型	http
		System.out.println(req.getScheme());
		//请求的主机IP	localhost
		System.out.println(req.getServerName());
		//请求的主机的端口	8080
		System.out.println(req.getServerPort());
		//请求的header里面的信息,这里是get方式,所以里面都是null
		Enumeration enumeration = req.getHeaderNames();
		while (enumeration.hasMoreElements())
		{
			String header = (String) enumeration.nextElement();
			System.out.println(header + ":" + req.getHeader("header"));
			/*host:null
			connection:null
			cache-control:null
			accept:null
			user-agent:null
			accept-encoding:null
			accept-language:null*/
		}
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
	{
		this.doGet(req, resp);
	}

}

  • 获取请求行的相关信息

HTTP请求消息的请求行包括请求方式、资源路径和HTTP协议版本:
GET /lampbrother/servlet/RequestURI?param1=a&param2=b HTTP/1.1
getMethod:返回HTTP请求消息中的请求方式。
getRequestURI:返回请求行中的资源名部分。
getQueryString :返回请求行中的参数部分。
getProtocol:返回请求行中的协议名和版本。
getContextPath:返回请求资源所属于的WEB应用程序的路径。
getPathInfo:返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
getPathTranslated:返回URL中的额外路径信息所对应的资源的真实路径。 
getServletPath方法:Servlet的名称或Servlet所映射的路径。  

  • 获取网络连接信息
getRemoteAddr方法返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。 (*) 
getRemoteHost方法返回发出请求的客户机的完整主机名,即“pc1.atguigu.com”这种格式。
getRemotePort方法返回发出请求的客户机所使用的网络接口的端口号。
getLocalAddr方法返回WEB服务器上接收当前请求的网络接口的IP地址。
getLocalName方法返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。
getLocalPort方法返回WEB服务器上接收当前请求的网络接口的端口号。
getServerName方法返回当前请求所指向的主机名。 
getServerPort方法返回当前请求所连接的服务器端口号。
getScheme方法返回请求的协议名,例如http、https或ftp。
getRequestURL方法返回客户端发出请求时的完整URL。   

版权声明:本文为博主原创文章,欢迎大家转载。如有错误请多多指教。

相关文章推荐

Servlet--继承HttpServlet写自己的Servlet

前面2篇关注的都是Servlet接口,在实际编码中一般不直接实现这个接口,而是继承HttpServlet类。因为j2e的包里面写好了GenericServlet和HttpServlet类来让我们简化编...

HttpServletRequest、request常用方法、request常见应用、请求转发、RequestDispatcher

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。 ...

好记性不如烂笔头9-HttpServletRequest常用方法和样例

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 H...
  • ffm83
  • ffm83
  • 2015-01-28 13:46
  • 806

---servlet(三)HttpServletResponse对象和 HttpServletRequest对象

servlet总结四web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象和代表响应的response对象。request和response对象既然代表请...

Servlet--ServletRequest转换HttpServletRequest

Servlet--ServletRequest转换HttpServletRequest 一、为什么要转换 因为ServletRequest中只提供了获取基本信息的方法,没有获取用户请求...

Jsp/Servlet读书笔记(二) -- HttpServletRequest和HttpServletResponse

HttpServletRequest: 请求的转发forward和包含include 很多时候Servlet对某个请求的处理结果并不是直接发还给客户端,而是转交给下一个Servlet做进一步处理。转...

Servlet技术浅析(三)之-----ServletRequest接口和HttpServletRequest接口

在Servlet接口中的service(ServletRequest request , ServletResponse response)方法中有一个ServletRequest类型的参数。Serv...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)