본문 바로가기

java spring/servlet&jsp9

서블릿 5( 동적 페이지의 필요성) 현재 웹 계산기는 동적인 html코드를 서버에서 클라이언트에게 보내준다. 정적 페이지는 만약 사용자가 요청을 보내면 서버에서 이미 만들어져있는 페이지를 보내준다. 하지만 동적 페이지는 요청으로 들어온 사항을 토대로 서버에서 바로 페이지를 새로 만들어서 클라이언트에게 보내준다. 그러니 우리가 만들어야하는 페이지는 동적이어야 한다. 본격적으로 들어가기 전에 이번 포스팅에서는 아주 힘든 방법으로 동적 페이지를 만들어 보려한다. 먼저 동적 페이지 계산기를 한번 봐보자. 나는 분명 3+4의 결과인 7을 출력하고 싶은데 html파일에서 3+4를 7로 계산해줄리가 없다. 그래서 우리는 다음과 같은 방식으로 서블릿에 동적 페이지를 만들 수 있다. 정말 고된 작업이다.... 모든 html태그들을 서블릿에서 출력해주는 것.. 2021. 4. 1.
서블릿4(application, session, cookie) 전까지 클라이언트에서 값 2개 또는 그 이상을 한번에 날려서 덧셈을 하고 그 값을 클라이언트에게 뿌려주었다. 이제 클라이언트에서 날라오는 값을 서버에 저장해보자. Servlet Context 서블릿 컨텍스는 저장소다. 여기에 클라이언트에서 날린 데이터를 저장할 수 있다. servlet context에 값을 저장하는방법에는 몇 가지가 있는데, 첫번째로 applicrion 객체를 사용하는 방법을 알아보자. 1. application 객체를 이용한 값 저장 전체적인 흐름은 계산기에서 사용자가 박스에 5을 입력하고 (+)버튼을 클릭하면 5는 application 저장소에 저장되고, 다시 사용자가 3을 입력하고 (=)버튼을 클릭하면 서버에서 application저장소에 저장된 3을 찾아서! 5+3의 결과를 클라이.. 2021. 4. 1.
서블릿3(여러 개의 버튼 post보내기) 웹에 여러개의 버튼들이 있고, 그 버튼들은 저마다 기능이 다르다. 두 개의 버튼으로 하나는 덧셈, 다른 하나는 뺄셈을 할 수 있도록 해보자. 위와 같은 폼은 두개의 버튼이 있다. 그런데 서버입장에서 두 개의 버튼을 구분할 수 없다. post로 오는 데이터를 left:2 , right:3 이렇게만 받는다. 그렇다면 서버에 "+"버튼은 덧셈이고, "-"버튼은 뺄셈이야! 라고 알려줘야 한다. 이는 text타입의 input에만 name을 주는게 아니라, submit의 input에도 name을 주면 된다. 위에서 제출용 input에도 name ="operator"가 추가되었다. 이렇게 페이지에서 left:3, right:3 을 "+"버튼을 눌러 제출하면 다음과 같이 데이터를 날린다. 이제 서버가 어떤 버튼을 눌렀.. 2021. 3. 31.
서블릿 2 (post, 필터) post요청을 받아서 처리해보자. 요청을 post로 해서 쿼리스트링으로 날라가지 않게 했다. 앞에서 cnt를 쿼리스트링으로 날리는 것에는 무리가 있다. 왜냐하면 쿼리스트링은 길이 제한이 있다. 내용을 입력하고 여기서 이제 등록을 누르면 서블릿에 매핑된 주소 notice-reg로 데이터를 날린다. notice-reg 서블릿은 여기 NoticeReg에 매핑되어 있다. 근데 여기서 주의해야할 것이 저기 별표친 request.setCharacterEncoding("UTF-8"); 에서 보이는 것처럼 요청을 할때 utf-8의 인코딩 방식으로 들어오게 해줘야 한다. 저게 없으면 한글은 깨질 것이다. (원래 톰캣의 인코딩은 ISO 8859-1인데 이를 톰캣 설정을 바꿀수도 있지만 이는 추천하지 않는 방법.) 그럼 결.. 2021. 3. 30.