728x90
반응형
* DD - Deploymet Descriptor : 배포 기술서
- url-pattern / init-param 등이 이에 속함
http://ip:port/serverProgramUrl?name=value |
처리할 서버 프로그램
: RequestResponseServlet → url-pattern : rr (web.xml)
: doGet(request, reponse)
web.xml
<?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_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>webstudy4-servlet-basic</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>step1.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/h</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>RequestResponseServlet</servlet-name>
<servlet-class>step2.RequestResponseServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RequestResponseServlet</servlet-name>
<url-pattern>/rr</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>PostServlet</servlet-name>
<servlet-class>step3.PostServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PostServlet</servlet-name>
<url-pattern>/PostServlet</url-pattern>
</servlet-mapping>
</web-app>
GET 방식
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- action : 처리할 서버 프로그램 url(서버상에는 web.xml에 설정)
method는 따로 기술하지 않으면, get 방식이 기본
http://ip:port/serverProgramUrl?name=valu e
처리할 서버 프로그램
: RequestResponseServlet → url-pattern : rr (web.xml)
: doGet(request, reponse)
-->
<form action="rr">
이름 <input type="text" name="userName">
<input type="submit" value="서버로 전송">
</form>
<hr>
<!-- 링크 방식으로 요청 : get 방식으로 요청된다 -->
<a href="rr?userName=javaking">Servlet 실행</a>
</body>
</html>
java (sevlet)
package step2;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// HttpServlet을 상속받아 사용한다
// Servlet 사용 환경 적용
public class RequestResponseServlet extends HttpServlet{
//객체 직렬화 과정에서 항상성 유지를 위한 것
private static final long serialVersionUID = 1L;
//Get 방식
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// response Header 부분
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter( );
//client가 보낸 정보를 반환받는다
//client는 정보를 http://ip:port/serverProgramUrl?name=value 형태로 전송
String name = request.getParameter("userName");
out.println("클라이언트가 보낸 메세지: "+name);
//flush 됨
out.close();
}
}
브라우저 결과
POST 방식
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>post 방식 요청</title>
</head>
<body bgcolor="yellow">
<!--
서버 프로그램은 step3.PostServlet이고
web.xml(DD)에 url-pattern을 PostServlet으로 설정
-->
<form method="post" action="PostServlet">
<input type="text" name="message">
<input type="submit" value="메세지 전송">
</form>
</body>
</html>
java(servlet)
package step3;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PostServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// 응답시 content type 및 한글 처리를 설정
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
//POST 방식은 url로 데이터가 전달되는 것이 아니라,
//http request body 영역에 저장되어 전달되므로 한글처리를 한다.
request.setCharacterEncoding("utf-8");
//클라이언트 메세지 : [message]
String message = request.getParameter("message");
out.println("클라이언트 메세지: "+message);
out.close();
}
}
브라우저 결과
728x90
반응형
'Java Web Programming > 3. Servlet' 카테고리의 다른 글
[Servlet] 서블릿 Life Cycle 생명주기 (0) | 2020.08.21 |
---|---|
[Servlet] 서블릿 Hierarchy 계층 구조 (Web Container, Web Server) (0) | 2020.08.21 |
CODE [Servlet] check box 연습 예제 (3) | 2020.08.21 |
[Servlet] form 연동 (2) | 2020.08.20 |
[Servlet] 서블릿 Servlet 이란? (get방식, post방식) (0) | 2020.08.19 |