Java中的HttpServletRequest

Request:请求

  HttpServletRequest请求是获取请求行、请求头和请求体;可以通过这个方法设置防盗链,获取地址。牢记解决乱码的方式。

  怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,开始页面将会被重新调用。如果你不想看到这样的情况,则选择转发。

其实也可以单纯的认为是若是带数据的话就请求转发了,若改地址的话就重定向了。

获取HTTP请求:

获取请求行:

1、获得客户端的请求方式:

getMethod()   获得String类型;

2、获得请求的资源:

getContextPath() 获得String类型的 web应用的名称(项目名)

getQueryString() 获得 get提交url 地址后的参数字符串;

 getRequestURI() 获取URI地址String类型

 getRequestURL() 获取URL地址StringBuffer类型

request.getRemoteAddr() 获得访问的客户端IP地址

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 获取请求方式
        String method = request.getMethod();
        System.out.println("请求方式为:" + method);
        // 获取请求URI
        String URI = request.getRequestURI();
        System.out.println("URI为" + URI);
        // 获取请求URL
        StringBuffer URL = request.getRequestURL();
        System.out.println("URL为:" + URL);
        // URI为/WEB/LineServlet
        // URL为:http://localhost:8080/WEB/LineServlet
        // 获取WEB项目名称
        String name = request.getContextPath();
        System.out.println("WEB项目名称为:" + name);
        // 获取get请求后url后的字符串
        String query = request.getQueryString();
        System.out.println("get请求的参数为:" + query);
        // 获取客户端的ip地址
        String ip = request.getRemoteAddr();
        System.out.println("ip地址为:" + ip);
    }

获取请求头:

 getHeader(String name) 

referer 头的作用:获取该访问的来源,做防盗链

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 获取refere头
        String refere = request.getHeader("Referer");
        String content = null;
        if(refere.startsWith("http://localhost:8080")){
            content="真的离婚了!";        
        }else{
            content="你是小偷!";
        }
        //解决乱码
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().write(content);        
    }
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <a href="/WEB/RefereServlet">外面下雨了</a>
</body>
</html>

猜你喜欢

转载自www.cnblogs.com/heitaitou/p/12961208.html