자바 개발 의 request 대상 상용 방법 정리
본 고 는 주로 자바 의 request 대상 을 소개 하고 request 대상 에서 자주 사용 하 는 방법 에 대해 정 리 를 했 습 니 다.만약 에 자바 초보 자 라면 이 글 이 도움 이 될 것 입 니 다.
HttpServletRequest 대상 은 클 라 이언 트 의 요청 을 대표 합 니 다.클 라 이언 트 가 HTTP 프로 토 콜 을 통 해 서버 에 접근 할 때 HTTP 요청 헤더 의 모든 정 보 는 이 대상 에 봉 인 됩 니 다.개발 자 는 이 대상 의 방법 을 통 해 클 라 이언 트 의 정 보 를 얻 을 수 있 습 니 다.
request 상용 방법:
1.클 라 이언 트 환경 정 보 를 얻 는 흔 한 방법:
1.getRequestURL 방법 은 클 라 이언 트 가 요청 할 때의 전체 URL 을 되 돌려 줍 니 다.
2.getRequestURI 방법 은 요청 줄 의 자원 이름 부분 을 되 돌려 줍 니 다.
3.getQueryString 방법 은 요청 줄 의 인자 부분 을 되 돌려 줍 니 다.
4.getRemoteAddr 방법 은 요청 한 클 라 이언 트 의 IP 주 소 를 되 돌려 줍 니 다.
5.getRemoteHost 방법 은 요청 한 클 라 이언 트 의 전체 호스트 이름 을 되 돌려 줍 니 다.
6.getRemotePort 방법 은 클 라 이언 트 가 사용 하 는 네트워크 포트 번 호 를 되 돌려 줍 니 다.
7.getLocalAddr 방법 은 WEB 서버 의 IP 주 소 를 되 돌려 줍 니 다.
8.getLocalName 방법 은 WEB 서버 의 호스트 이름 을 되 돌려 줍 니 다.
9.getMethod 클 라 이언 트 요청 방식 을 받 습 니 다.
package com.yyz.request;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RequestDemo extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/**
* URL URI 。
* URI 。
* URL 。
*/
System.out.println(request.getRequestURL());// URL
System.out.println(request.getRequestURI());//
System.out.println(request.getQueryString());
System.out.println(request.getRemoteAddr());// IP
System.out.println(request.getRemoteHost());
// dns 127.0.0.1, , www.baidu.com
System.out.println(request.getRemotePort());//
System.out.println(request.getMethod());//
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
브 라 우 저 주소 표시 줄 에 입력:http://localhost:8080/test/servlet/RequestDemo후,배경 출력 은 다음 그림 에 들 어 갑 니 다:2.클 라 이언 트 요청 헤드 획득:
1.getHeader(String name)방법
2.getHeaders(String name)방법
3.getHeaderNames()방법
package com.yyz.request;
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 RequestDemo extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String head = request.getHeader("Accept-Encoding");
//
if(head.contains("gzip")){
//
}else{
//
}
//
Enumeration e = request.getHeaders("Accept-Encoding");
while(e.hasMoreElements()){
String value = (String ) e.nextElement();
System.out.println(value);
}
System.out.println("------------------------");
//
e = request.getHeaderNames();
while(e.hasMoreElements()){
String name = (String)e.nextElement();
String value = request.getHeader(name);
System.out.println(name+"="+value);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
브 라 우 저 에서 이 프로그램 을 방문 하면 배경 출력 은 다음 과 같 습 니 다.3.클 라 이언 트 요청 파라미터 획득(클 라 이언 트 가 제출 한 데이터):
1.getParameter(name)방법
2.getParameterValues(String name)방법
3.getParameterNames 방법
4.getParameterMap 방법,프레임 을 만 들 때 대량으로 사용
package com.yyz.request;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//
public class RequestDemo extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//http://localhost:8080/test/servlet/RequestDemo?name=yyz
String value = request.getParameter("name");
System.out .println(value);
//http://localhost:8080/test/servlet/RequestDemo?like=sing&like=dance
String likes[] = request.getParameterValues("like");
if(likes!=null){
for(String like : likes){
System.out.println(like);
}
}
// , ( )
for(int i=0;likes!=null&&i<likes.length;i++){
System.out.println(likes[i]);
}
// ,
Enumeration e = request.getParameterNames();
while(e.hasMoreElements()){
String name = (String) e.nextElement();
value = request.getParameter(name);
System.out.println(name+"="+value);
}
System.out.println("----------------------");
// request Map
Map<String,String[]> map = request.getParameterMap();
for(Entry<String, String[]> me : map.entrySet()){
String name = me.getKey();
String [] v = me.getValue();
System.out.println(name+"="+v[0]);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.