728x90
반응형
이번 글에서는 컨테이너에서 서블릿으로 넘겨준 요청 값인 HttpRequest를 사용하는 방법을 알아보도록 하겠습니다.
1.Project 생성
체크박스는 체크하면 배포 서술자인(DD) web.xml를 프로젝트 내부에 만들어 줍니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="test.do" method="POST">
<select name="fruits"> <!-- name 속성을 이름으로 request 객체에서 값을 찾아 올수 있습니다 -->
<option value="apple">사과</option>
<option value="appleSeed">사과씨앗</option>
<option value="orange">오렌지</option>
</select><br>
<input type="submit" value="서브밋 버튼">
</form>
</body>
</html>
index.jsp 를 열어서 위처럼 코딩해주시면 됩니다. 여기서 중요하게 볼 점은 <form> 태그 안에 action 속성과 method 속성입니다.
먼저 action 속성은 어느 서블릿으로 보낼지 지정해 주는 속성 임으로 보낼 서블릿의 맵핑명을 작성해 줍니다.
method 속성은 http 메소드중 Get / Post 어느 방식으로 보낼 건지를 정하는 것이며 method 속성을 생략하게 되면 defalute 값으로 Get방식으로 요청을 보냅니다. 우리는 값을 보내기 위해 Post 방식을 사용하겠습니다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>RequestTest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>servlet_1</servlet-name>
<servlet-class>com.servlet.request.servlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet_1</servlet-name>
<url-pattern>test.do</url-pattern>
</servlet-mapping>
</web-app>
그다음 web.xml 파일에서 servlet을 맵핑하기 위한 코드를 작성하여 줍니다.
package com.servlet.request;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class servlet1
*/
@WebServlet("/test.do") /* << ---- 이 부분에서 맵필을 하여도 됩니다.*/
public class servlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public servlet1() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 값을 받을 String 변수를 만들어 준 뒤 요청을 보내온 request 객체 내부에서 jsp에서 작성한 name 값으로 파라미터를 꺼내 봅시다.
String result = request.getParameter("fruits");
System.out.println("result : " + result);
}
}
위처럼 코드를 작성해 주시고 이제 서버를 실행시켜 줍니다.
그 외 request 객체에서 얻을 수 있는 정보들 몇 가지를 정리하여 봅시다.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 값을 받을 String 변수를 만들어 준 뒤 요청을 보내온 request 객체 내부에서 jsp에서 작성한 name 값으로 파라미터를 꺼내 봅시다.
String result = request.getParameter("fruits");
System.out.println("result : " + result);
//파라미터를 배열형태로 받을 경우
String[] resultArr = request.getParameterValues("name");
//클라이언트의 플랫폼 정보 및 브라우저 정보
String client = request.getHeader("user-Agnet");
//쿠기정보
Cookie[] cookies = request.getCookies();
//세션정보
HttpSession session = request.getSession();
//Http 메소드
String theMethod = request.getMethod();
}
서블릿에서 클라이언트가 보낸 요청정보를 받는 법을 알아보았습니다.
감사합니다.
728x90
반응형
'Servlet & Jsp' 카테고리의 다른 글
[sendRedirect 사용하기] - Head Frist Servlet & Jsp (0) | 2020.12.21 |
---|---|
[sendRedirect 사용하기] - Head Frist Servlet & Jsp (0) | 2020.12.21 |
[Selvet HttpResponse 사용하기] - Head Frist Servlet & Jsp (0) | 2020.12.21 |
[Servlet & 컨테이너] - Head Frist Servlet & Jsp (0) | 2020.12.19 |
[웹의 기본개념과 Servlet의 역할] - Head Frist Servlet & Jsp (0) | 2020.12.19 |