세션ID값은 처음부터 (최초에 요청했을 때) 만들어진다.

세션에는 user오브젝트 등을 저장한다. (변수를 저장하는게 아니라 값들을 묶는다는 의미)

 

이름 저장

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class SetNameServlet
 */
@WebServlet("/SetNameServlet")
public class SetNameServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SetNameServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session = request.getSession();
		session.setAttribute("name", "오정원");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		out.println("<h1>이름저장</h1>");
	}

}

 

이름 가져오기


import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class GetNameServlet
 */
@WebServlet("/GetNameServlet")
public class GetNameServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public GetNameServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		HttpSession session = request.getSession();
		String name = (String)session.getAttribute("name");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		out.println("<h1>name="+name+"</h1>");
	}

}

 

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>당신이 좋아하는 강아지를 선택 하세요</h1>
	<form action="choiceDog" method="post">
		<input type="checkbox" name="dog" value="pu.jpg"/>푸들
		<input type="checkbox" name="dog" value="jin.jpg"/>진돗개
		<input type="checkbox" name="dog" value="pung.jpg"/>풍산개
		<input type="checkbox" name="dog" value="sap.jpg"/>삽살개
		<input type="submit" value="선택">
	</form>
</body>
</html>

 


import java.io.IOException;
import java.io.PrintWriter;

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 ChoiceDogServlet
 */
@WebServlet("/choiceDog")
public class ChoiceDogServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ChoiceDogServlet() {
        super();
    }

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=euc-kr");
		PrintWriter out = response.getWriter();
		String[] dog =request.getParameterValues("dog");
		out.println("<!DOCTYPE html>\r\n" + 
				"<html lang=\"en\">\r\n" + 
				"<head>\r\n" + 
				"    <meta charset=\"UTF-8\">\r\n" + 
				"    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n" + 
				"    <title>Document</title>\r\n" + 
				"</head>\r\n" + 
				"<body bgcolor=\"black\">\r\n" + 
				"    <table align=\"center\" bgcolor=\"yellow\">\r\n" + 
				"        <tr>\r\n");
		for (int i = 0; i < dog.length; i++) {
			out.println("<td>");
			out.println("<imgsrc='"+dog[i]+"'/>");
			out.println("</td>");
		}
		out.println("        </tr>\r\n" + 
				"    </table>\r\n" + 
				"    \r\n" + 
				"</body>\r\n" + 
				"</html>");
	}

}

 

 

(이미지가 없어서 테이블만 테두리만 보임)

 

postman 다운로드

 

 

설치완료 화면

 

 

+를 클릭하여 새 테스트를 추가하자

 

 

콤보박스에서 원하는 전송방식을 선택하자

 

 

주소를 입력하고 send를 보내 테스트 해보자

put post 등을 테스트 할 때 유용하다

 

 

Params 또는 헤더와 바디를 이용해서 값을 전달 할 수 있다.

 

 

form-data 는 key:value 뿐만아니라 이미지 등 다른 데이터를 보낼 때 사용(나중에 배움)

 

 

바디에서 x-www-form-urlencoded를 선택하고 key:value를 입력하자

x-www-form-urlencoded 는 ( = 등호기호 ) 를 구분해서 파싱한다 + MIME타입(application/x-www-form-urlencoded)

자동으로 설정된다

 

 

바디에서 raw 타입으로 설정하고 MIME를 Text로 설정하자

 

 

BufferedReader br = request.getReader(); 를 이용하면 데이터 자체를 파싱하지 않고 받아온다

 

바디에서 JSON타입으로 데이터를 보내보자

 

버퍼드리더와 와일문으로 출력

 

 

바디에서 x-www-form-urlencoded 타입으로 보내본다

 

 

 

MIME 타입 - 클라이언트가 서버에 전송한 데이터가 어떤 타입인지 알려주기 위한 것

형태 - type/subtype
ex) image/png
ex) text/html

 

*문자는 inputStreamReader // 이미지 영상 오디오 등은 바이트이기 때문에 inputStream

*application데이터는 바이너리(json 등)

 

get 은 key:value 밖에 없기 때문에 타입이 필요없다 ( + 본문이 없다)

post 는 보낼 수 있는 데이터가 다양하기 때문에 타입을 지정해줘야한다

 

 

한글 입력

1번방식 web.xml(배포서술자) - 아이피 차단이나 문자형식 등 서버 입구에서 처리할 내용을 설정

더보기
	<!-- 입력문자 utf-8로 인코딩 -->
	<filter>
		<filter-name>setCharacterEncodingFilter</filter-name>
		<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>setCharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

--------------------------------------------

-----------------------------------

 

 

2번방식 서블릿에서 request.setCharacterEncoding("utf-8");

--

'Web > Jsp' 카테고리의 다른 글

Postman 프로그램을 이용한 서블릿 테스트  (0) 2020.05.26
MIME 타입  (0) 2020.05.26
서블릿 servlet - get / post / put / delete 전달 가능 방식  (0) 2020.05.26
200526  (0) 2020.05.26
버퍼드라이터 / 프린트라이터  (0) 2020.05.25

전달 가능 방식

get - key:value

post, put, delete - key:value + 텍스트 + json + 영상 이미지 등 byte + 등등등

---------------------------------------

doPut / doDelete는 x-www-formurlencoded 파싱이 안됨(겟파라미터 안됨)

-----------------------------

key:value 형식은 x-www-formurlencoded
모두 getParameter로 받으면 된다.
(doPut / doDelete는 x-www-formurlencoded 파싱이 안됨(겟파라미터 안됨))

나머지 모든 형식은 getReader()를 이용해 버퍼드리더로 받자.

* multidata 형식은 파일형식을 짬뽕하여 보내는 경우(추후 학습) 

'Web > Jsp' 카테고리의 다른 글

MIME 타입  (0) 2020.05.26
JSP 서블릿 한글 깨질 때 / 한글 입력 방법  (0) 2020.05.26
200526  (0) 2020.05.26
버퍼드라이터 / 프린트라이터  (0) 2020.05.25
클라이언트 아파치 요청방식/ xml매핑  (0) 2020.05.25

테스트페이지 생성

package com.cos.ch03;

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;

/**
 * 
 * 한글 테스트 데이터 전달
 *
 */

@WebServlet("/postman")
public class EncServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public EncServlet() {
		
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("doGet");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("doPost");
	}

	@Override
	protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("doPut");
	}

	@Override
	protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("doDelete");
	}
}

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Post 테스트</title>
</head>
<body>
	<form action="/postman" method="post">
		<input type="text" name="username" placeholder="username" />
		<input type="submit" value="전송" />
	</form>
</body>
</html>

 

 

----------------------------------------

 

getParameter

 

getParameter는 String을 리턴한다

-----------------------------------------

doDelete 함수에 insert나 다른 것을 사용해도 문제는 없다. 다만 약속이니 delete만 사용하자

-------------------------------------------

데이터를 쪼개서 보내는 이유

서킷스위칭 - 사람이 늘어날 때마다 선이 계속 늘어난다

패킷스위칭
- 데이터를 쪼개서 보낸다
- 순서보장이 안되기 때문에 헤더를 붙여서 보내는사람, 자료순서, 자료타입 등을 입력

-----------------------------------

라우터는 전송할 방향에 자신과 연결된 다른 라우터들 중에서 제일 빠른쪽으로 자료를 보낸다

라우터가 자료를 받을 때 용량이상으로 들어오면 대기열에 들어가는데 대기열까지 꽉찼다면 데이터가 유실된다

그럴 경우 원래 보냈던 쪽에서 다시 유실된 데이터를 보내야한다

--------------------------------------

라이브러리는 WEB-INF에 넣는다
(다이나믹웹프로젝트는 빌드패스가 필요없다 + 추후 메이븐 사용)

 

 

버퍼드 라이터 - 내려쓰기 플러시 수동

프린트 라이터 - 내려쓰기 플러시 자동

-----------------------------------

'Web > Jsp' 카테고리의 다른 글

서블릿 servlet - get / post / put / delete 전달 가능 방식  (0) 2020.05.26
200526  (0) 2020.05.26
클라이언트 아파치 요청방식/ xml매핑  (0) 2020.05.25
템플릿 엔진  (0) 2020.05.25
JSP 태그에 빨간줄이 뜬다면  (0) 2020.05.25

+ Recent posts