我们在使用Servlet和表单进行交互的时候,不管是传参和接参经常要写一些路径。关于具体的Servlet的传参和接参我后面会有详细的整理,这里先整理一下不怎么常用的到一些HttpServletRequest的方法,这些我们其实都应该是知道的。
OK,我们用myeclipse new一个jsp页面的时候,最上面的2行会带出信息说:
<% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + 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);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
Servlet--HttpServletRequest一些关于路径的方法
原文:http://blog.csdn.net/u011794238/article/details/46795273