O objeto HttpServletRequest representa a solicitação do cliente. Quando o cliente acessa o servidor através do protocolo HTTP, todas as informações do cabeçalho da solicitação HTTP são encapsuladas neste objeto.
Métodos de solicitação comuns :
1. Métodos comuns para obter informações do ambiente do cliente :
1. O método getRequestURL retorna a URL completa quando o cliente faz a solicitação.
2. O método getRequestURI retorna a parte do nome do recurso na linha de solicitação.
3. O método getQueryString retorna a parte do parâmetro da linha de solicitação.
4. O método getRemoteAddr retorna o endereço IP do cliente que fez a solicitação.
5. O método getRemoteHost retorna o nome completo do host do cliente que fez a solicitação.
6. O método getRemotePort retorna o número da porta de rede usada pelo cliente.
7. O método getLocalAddr retorna o endereço IP do servidor WEB.
8. O método getLocalName retorna o nome do host do servidor WEB.
9.getMethod obtém o método de solicitação do cliente.
Copie o código do código da seguinte forma:
pacote com.yyz.request;
importar java.io.IOException;
importar java.io.OutputStream;
importar javax.servlet.ServletException;
importar javax.servlet.http.HttpServlet;
importar javax.servlet.http.HttpServletRequest;
importar javax.servlet.http.HttpServletResponse;
classe pública RequestDemo estende HttpServlet {
public void doGet (solicitação HttpServletRequest, resposta HttpServletResponse)
lança ServletException, IOException {
/**
*URL é um subconjunto de URI.
* URI é usado para identificar um recurso.
*URL é usado para identificar um recurso na Internet.
*/
System.out.println(request.getRequestURL());//Obtém o endereço URL da solicitação
System.out.println(request.getRequestURI());//Obtém o recurso solicitado
System.out.println(request.getQueryString());
System.out.println(request.getRemoteAddr());//Obtém o IP do visitante
System.out.println(request.getRemoteHost());
//Como não está registrado no DNS, o resultado da impressão ainda é 127.0.0.1. Se o Baidu acessar este programa, imprima www.baidu.com.
System.out.println(request.getRemotePort());//Obtém o recurso solicitado
System.out.println(request.getMethod());//Obtém o recurso solicitado
}
public void doPost (solicitação HttpServletRequest, resposta HttpServletResponse)
lança ServletException, IOException {
doGet(solicitação,resposta);
}
}
Digite: http://localhost:8080/test/servlet/RequestDemo na barra de endereço do navegador e a saída em segundo plano é a seguinte:
2. Obtenha o cabeçalho da solicitação do cliente :
Método 1.getHeader (nome da string)
Método 2.getHeaders (nome da string)
Método 3.getHeaderNames()
Copie o código do código da seguinte forma:
pacote com.yyz.request;
importar java.io.IOException;
importar java.util.Enumeration;
importar javax.servlet.ServletException;
importar javax.servlet.http.HttpServlet;
importar javax.servlet.http.HttpServletRequest;
importar javax.servlet.http.HttpServletResponse;
//Obter cabeçalhos de solicitação
classe pública RequestDemo estende HttpServlet {
public void doGet (solicitação HttpServletRequest, resposta HttpServletResponse)
lança ServletException, IOException {
String head = request.getHeader("Accept-Encoding");
//Alguns navegadores não suportam dados compactados
if(head.contains("gzip")){
//Saída de dados compactados
}outro{
//Saída de dados não compactados
}
//Obtém todos os valores do cabeçalho com o nome especificado
Enumeração e = request.getHeaders("Accept-Encoding");
while(e.hasMoreElements()){
Valor da string = (String) e.nextElement();
System.out.println(valor);
}
System.out.println("------------------------");
//Obtém todos os cabeçalhos e valores
e = request.getHeaderNames();
while(e.hasMoreElements()){
String nome = (String)e.nextElement();
Valor da string = request.getHeader(nome);
System.out.println(nome+"="+valor);
}
}
public void doPost (solicitação HttpServletRequest, resposta HttpServletResponse)
lança ServletException, IOException {
doGet(solicitação,resposta);
}
}
Acesse o programa em um navegador e a saída em segundo plano será a seguinte:
3. Obtenha os parâmetros da solicitação do cliente (dados enviados pelo cliente):
Método 1.getParameter (nome)
Método 2.getParameterValues (nome da string)
Método 3.getParameterNames
Método 4.getParameterMap, usado extensivamente ao criar estruturas
pacote com.yyz.request; importar java.io.IOException; importar java.util.ServletException; .HttpServlet importar javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; //Obter dados da solicitação public class RequestDemo estende HttpServlet { public void doGet (solicitação HttpServletRequest, resposta HttpServletResponse) lança ServletException, IOException { //http://localhost:8080/test/servlet/RequestDemo? nome=yyz String valor = request.getParameter("nome"); System.out .println(valor); //http://localhost:8080/test/servlet/RequestDemo?like=sing&like=dance String likes[] = request.getParameterValues("like"); ){ for(String like : likes){ System.out.println(like); //A seguir está uma maneira profissional de escrever esse tipo de travessia, uma maneira de obter dados de array (para evitar exceções de ponteiro nulo) for(int i=0;likes!=null&&i<likes.length;i++){ System.out .println(likes[ i] } //Obter todos os nomes e obter o valor com base no nome Enumeration e = request.getParameterNames(); e.nextElement(); valor = request.getParameter(nome); System.out.println(nome+"="+valor); ---------"); //Obter a coleção de mapas usada para encapsular dados no objeto de solicitação Map<String,String[]> map = request.getParameterMap(); for(Entry<String, String[ ] > eu: map.entrySet()){ String nome = me.getKey(); String [] v = me.getValue(); System.out.println(name+"="+v[0]); public void doPost(solicitação HttpServletRequest, resposta HttpServletResponse) lança ServletException, IOException { doGet(solicitação,resposta);