![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ceNUwF/btq3osFLbNz/Kxv0qjZbgBuHtCXQHh46pk/img.png)
Cookie의 옵션 중 Path에 대해서 알아보자! Cookie의 Path 옵션이란? 여러 서블릿마다 필요한 Cookie가 다르다. 그래서 효율적으로 Cookie를 전달하기 위해서 사용하는 옵션이다. URL과 관련된 서블릿에게만 Cookie가 전달되도록 할 수 있다. 코드를 통해서 알아보자! /*Calc2.java 코드 일부*/ /*쿠키 생성 및 저장 */ Cookie valueCookie = new Cookie("value", String.valueOf(v)); //문자열만 사용 할 수 있기 때문에 String.valueOf()로 변환시켜준다. Cookie btnCookie = new Cookie("btn", btn); valueCookie.setPath("/"); //valueCookie는 모든 경로..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bphKUn/btq3m0bwO4H/3OQVkWwYPXBooKOHRjTfZk/img.jpg)
상태 유지를 위한 방법 중 Application과 Session은 WAS에 저장하고 사용하는 방법이다. 하지만 Cookie는 Client가 자신이 가지고 다니면서 상태를 유지하는 방법이다. 먼저 서버에 무언가를 요청하면 서버는 쿠키값을 만들어서 클라이언트에게 주고 값을 가지고 가라고 한다. 그래서 다음에 다시 접속하게 되면 그 클라이언트는 쿠키값을 가지고 서버로 들어가기 때문에 상태를 유지할 수 있다. 그러면 코드로 보도록 하자! /*쿠키 저장하기*/ Cookie cookie = new Cookie("c", String.valueof(result)); //쿠키는 키"c"와 값으로 나누어진다. response.addCookie(cookie); //브라우저에 출력하고, 출력은 response에도 저장된다. ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kF0lX/btq3hnTC3uX/hxWmzNBhu2kKaChe48x5nK/img.png)
이전 글에서는 Application 객체에 대해서 다루었다. 이번 글에서는 Session객체에 대해서 알아보자! //Calc2.java package com.newlecture.web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSer..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ZgPjL/btq3hVoQhev/ODXGnjpgPkQR0YJqAxNDX0/img.png)
Application을 이용한 객체 값 저장 방법에 대해서 알아보자! 서블릿 콘텍스트 ServletContext라는 것을 이용해서 저장한다. 서블릿 콘텍스트는 여러 서 블릿 또는 자신의 서블릿에서 값을 임시로 저장하는 공간을 말한다. 그리고 거기에 저장하고, 가져와서 그 객체들을 사용할 수 있게 한다. ServletContext application = request.getServletContext(); -> ServletContext 변수 application을 만든다. 1. 저장: application.setAttribute(name, object); -> application에 name으로 object를 저장한다. 2. 가져오기: request.getAttribute(); -> application..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/JLzr4/btq3hvKecAE/iLpedU1f6s7DCRUQ16Unt1/img.png)
두 개의 값을 입력받아서 더하는 프로그램을 만든 적이 있다. 이번에는 여러 개의 값을 받아서 만들어보도록 하자! 자~ 이렇게 만들어서 전달하면 될까? 혹시 10개가 되면 10개를 모두 이런 식으로 수정해야 하나? 그리고 서블릿에서는 이 전달받는 값들을 모두 수정해줘야 할까? 이번에 그렇게 하지 않고 해결하는 방법에 대해서 알아보겠다. 동일한 name속성(같은 키워드)으로 값을 전달할 경우 값이 중복되는 것이 아니라 배열로 전달하게 되어있다! 숫자만 입력하세요 결과? 모든 name을 num으로 통일! 그러면 서블릿에서는 어떻게 받아야 할까? 하나씩 차례로 받아서 배열에 저장하면 된다! //Add2.java package com.newlecture.web; import java.io.IOException; ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/l9fSH/btq3i8AToxV/HUX8H34XhOqkyGUfR4A39k/img.jpg)
Submit버튼이 한 개일 경우 form 태그의 action을 참조해서 웹 서블릿을 호출한다. 하지만 이번에는 여러 개의 Submit버튼을 사용한다면 모두 동일한 Submit을 호출하게 된다. Submit코드가 한개일 경우에 대해서 한번 보자! F12 개발자도구의 Newtwork를 통해서 버튼을 눌렀을 때 전달되는 값을 확인해보자. *참고: 웹브라우저에서 F12를 누르면 아래의 화면이 나오고, newtwork를 누르면 전달되는 내용이 나온다. Form Data의 값을보면 x=1&y=1 이렇게 값이 전달된다. 자 그러면 두개의 Submit이 있을 경우를 통해서 확인해보자! 두 개의 Submit버튼 모두 Add를 호출한다. 즉, 같은 값을 서블릿에 전달하게 된다. 이렇게 빼기를 눌렀지만 Form Data값은..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/vUKuM/btq3hasipb0/KTz0BqIERuScDmhB8nUaK1/img.jpg)
더하기 프로그램! 프로그램이라고 할 것도 없지만 일단 만들어보자! Add.html 두개의 숫자를 입력 Add.java package com.newlecture.web; 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; @WebServlet("/Add") public class ..