📕🐘 도로락 - 코끼리를 냉장고에 넣는 방법

# jsp (109)

Servlet&Jsp 2018. 12. 26. 15:44

[서블릿/JSP] HttpServletResponse의 sendRedirect() 사용시 문제점

HttpServletResponse의 sendRedirect() 사용시 문제점JSP/Servlet 환경에서 특정 URL로 리다이렉트 시키고 싶은 경우에는 HttpServletResponse의 sendRedirect(String location) 메서드를 사용하게 됩니다.response.sendRedirect("/login.html");그러나 여기에는 주의사항이 있습니다. sendRedirect() 이후에 실행될 코드가 있는 경우 리다이렉트 되지 않고 해당 코드를 모두 실행한 뒤 리다이렉트 된다는 점입니다.response.sendRedirect("/login.html");..이후 코드가 있는 경우 모두 실행....코드가 모두 처리된 후 리다이렉트됨..이와 같은 문제가 발생하는 원인은 sendRedirect..

Servlet&Jsp 2018. 12. 25. 09:16

[서블릿/JSP] 요청 파라미터 한글 인코딩 처리 필터(Filter) 구현하기

Servlet/Jsp에서 요청 파라미터값을 읽는 방법일반적으로 클라이언트가 HTTP 요청시 넘긴 데이터는 다음과 같이 HttpServletRequest의 request.getParameter(String name) 메서드를 통해 얻습니다. HTTP GET방식 요청이든 POST 방식의 요청이든 param이라는 key에 해당하는 값을 넘겼다면 다음과 같이 값을 읽어올것입니다.String param = request.getParameter("param");톰캣에서의 요청 파라미터 인코딩 설정WAS의 사양이나 버전에 따라서는 getParameter() 사용시 데이터를 읽어오는 인코딩 설정이 달라지게 되는데, 톰캣7을 기준으로 보자면 기본적인 인코딩 설정값으로 ISO-8859-1를 사용하게 됩니다. 따라서 보통 ..

Servlet&Jsp 2018. 12. 18. 23:46

[서블릿/JSP] 쿠키가 차단되는 환경일때 SESSIONID URL로 넘기기 (URL ReWrite)

쿠키가 차단되는 환경일때 SESSIONID URL로 넘기기 (URL ReWrite)세션은 서버(웹컨테이너)에 저장되며, 해당 세션을 구분하기 위한 SESSIONID(Jsp/Servlet에서는 기본적으로 JSESSIONID라고함)는 쿠키를 통해 클라이언트인 브라우저에 저장됩니다. 그런데 사용자의 환경에 따라 쿠키가 차단되어 쿠키를 사용하지 못하는 경우가 있습니다.서블릿컨테이너는 HTTP 요청 메시지의 JSESSIONID 쿠키값을 가지고 세션을 구분하는데 쿠키가 차단된 환경의 브라우저는 세션ID 쿠키값을 저장하지 않으므로 요청 메시지에는 JSESSIONID 쿠키값이 존재하지 않으므로 요청시마다 매번 세션을 생성하게 됩니다. 그러므로 사용자의 로그인 정보등을 저장할 수 없게됩니다.해결책으로는 URL rewri..

Servlet&Jsp 2018. 12. 18. 00:35

[서블릿/JSP] 세션(session)을 명시적으로 종료시키는 방법

참고글[서블릿/JSP] 세션(Session)이란? 세션 생성하는 방법 및 세션 객체 설명[서블릿/JSP] 세션(session)의 마지막 접근시간 및 유효시간에 대해세션의 제거세션을 제거하는 방법에는 두 가지가 있습니다. 첫번째는 명시적으로 세션을 종료시켜 제거하는 방법이며 두번째는 유효시간을 지정해 유효시간이 지난 세션이 자동으로 종료되게 하는 방법입니다. 여기서는 세션을 명시적으로 종료시키는 방법에 대해 설명하며, 두번째 방법에 대해서는 참고글을 읽어주시기 바랍니다.세션을 종료할때에는 세션 객체의 invalidate() 메서드를 사용하면 됩니다. invalidate() 메서드를 호출할 경우 세션은 종료되며, 그에 따라서 세션에 저장되어 있는 여러가지 값들 또한 사라지게 됩니다. JSP에서는 sessio..

툴 [Tool] 2018. 11. 28. 20:55

[IntelliJ] 인텔리J에서 JSP 수정시 자동 리로드 되도록 설정하기

IntelliJ에서 JSP 수정시 자동 리로드 되도록 설정하기이클립스에서는 기본적으로 로컬 개발환경에서 JSP 페이지를 개발하는 경우 JSP 페이지가 변경되었을 때 자동으로 변경된 페이지가 리로드(Reload)되어 반영되었습니다.그러나 IntelliJ에서는 기본적인 설정으로는 자동으로 변경사항이 반영되지 않습니다.먼저 상단의 Run > Edit Configurations... 를 클릭하여 실행환경 설정으로 이동합니다.왼쪽의 Tomcat Server의 자신이 설정해둔 서버 항목을 선택하고 Server 탭에서 하단에 보면 On 'Update' action 과 On 'frame deactivation' 항목을 발견할 수 있습니다.콤보박스를 열어 Update classes and resources 를 각각 선택..

Servlet&Jsp 2018. 11. 8. 14:28

[서블릿/JSP] Client IP를 알기 위해 request.getRemoteAddr() 사용시 127.0.0.1만 리턴되는 문제 (with Proxy Server)

Proxy 환경에서 request.getRemoteAddr() 사용시 127.0.0.1만 리턴되는 문제nginx 프록시 웹서버와 Tomcat을 연동하여 사용중인 환경에서 request.getRemoteAddr() 사용시 모든 클라이언트의 IP가 127.0.0.1로 리턴되는 문제가 있었습니다.엄밀히 따지자면 최초에는 "엇 왜 다 127.0.0.1이 나오지?" 라고 생각하다가 이번에 버전을 업그레이드 시킨 톰캣문제인가 싶어서 Servlet API를 보니 마지막에 클라이언트 또는 마지막 프록시가 보낸 요청의 IP를 리턴한다는 사실을 알게되었습니다. 이때 "아차 nginX가 있구나." 라고 생각했죠.해결 방법구글링을 프록시를 사용하는 경우에는 getRemoteAddr()를 사용하지 않고 다음의 몇 가지 헤더값으..

Servlet&Jsp 2018. 10. 16. 09:46

[서블릿/JSP] 세션(Session)이란? 세션 생성하는 방법 및 세션 객체 설명

이전글[서블릿/JSP] 쿠키(Cookie)의 path 속성으로 전송 URL 지정하기[HTTP] HTTP 쿠키란(Cookie)? 쿠키 등장 배경 그리고 쿠키와 세션의 차이점.세션(Session)이란?세션은 HTTP 프로토콜을 이용하는 웹 환경에서 상태를 유지하기 위한 기술입니다. HTTP는 요청과 응답으로 이루어지며, 새로고침이나 특정 URL을 요청할때마다 새로운 HTTP 요청이 생성되기때문에 이들간에 상태를 유지할 수 있는 방법이 없습니다. 예를들어 /login.do 라는 URL에서 로그인을 했다고 하더라도 /boards 페이지로 이동하게 되면 새로운 HTTP 요청이므로 로그인을 했다는 정보를 어딘가에 확인할 수 없습니다. DB를 통해 로그인시에 login이라는 상태를 저장 후 logout시에 logou..

Servlet&Jsp 2018. 9. 20. 10:52

[서블릿/JSP] 쿠키(Cookie)의 path 속성으로 전송 URL 지정하기

이전글[서블릿/JSP] 쿠키(Cookie)의 domain 속성 설명. 쿠키 전송 범위 설정하기[서블릿/JSP] Servlet/JSP 환경에서 쿠키(Cookie) 사용 방법[서블릿/JSP] 쿠키(Cookie)에 한글 데이터 저장하고 가져오기[HTTP] HTTP 쿠키란(Cookie)? 쿠키 등장 배경 그리고 쿠키와 세션의 차이점.[서블릿/JSP] 쿠키(Cookie)의 path 속성으로 전송 URL 지정하기쿠키의 path 속성 및 속성에 따른 쿠키 전송 규칙쿠키의 path 속성을 이용하면 웹서버의 특정 URL에 대해서만 쿠키를 전송할 수 있습니다. path 속성은 웹서버의 디렉터리 단위로 지정이 가능하며, 디렉터리를 지정하면 지정한 해당 디렉터리와 그 하위 경로에만 쿠키가 전송됩니다. 디렉터리 단위라는 것은 ..

Servlet&Jsp 2018. 9. 15. 18:13

[서블릿/JSP] 쿠키(Cookie)의 domain 속성 설명. 쿠키 전송 범위 설정하기

이전글- [서블릿/JSP] Servlet/JSP 환경에서 쿠키(Cookie) 사용 방법- [HTTP] HTTP 쿠키란(Cookie)? 쿠키 등장 배경 그리고 쿠키와 세션의 차이점.- [서블릿/JSP] 쿠키(Cookie)의 path 속성으로 전송 URL 지정하기도메인 설정으로 HTTP 요청시 여러 웹서버로 전송하도록 하는 방법쿠키는 기본적으로 쿠키가 생성된 서버로만 전송됩니다. 예를 들어 google 서버에서 생성된 쿠키는 google로 요청시에만 전송되는것입니다. 그러나 대규모 웹 서비스를 운영하는 경우에는 하나의 웹서버가 아닌 여러 웹서버가 하나의 시스템을 이루면서 운영되는 경우가 있습니다. 하나의 서비스 시스템이기에 여러 서버간에 쿠키 데이터를 공유하여 사용해야 할 필요성이 있습니다.예를 들어 tis..

Servlet&Jsp 2018. 9. 12. 00:51

[서블릿/JSP] Servlet/JSP 환경에서 쿠키(Cookie) 사용 방법

이전글[HTTP] HTTP 쿠키란(Cookie)? 쿠키 등장 배경 그리고 쿠키와 세션의 차이점.쿠키의 동작 방식이전글에서 쿠키의 개념과 쿠키란 어떤것인지 대략적으로 살펴보았습니다. 이번 글에서는 실질적으로 쿠키를 어떤식으로 사용하는지 알아보도록 하겠습니다. 쿠키 사용방법에 앞서 간단히 쿠키가 처리되는 절차를 알아보자면 다음 그림과 같습니다.쿠키는 서버로부터 생성됩니다. 우리가 개발한 웹 컴포넌트(Servlet 또는 JSP)에서 Cookie 클래스를 이용하여 쿠키를 생성할 수 있습니다.생성된 쿠키는 HTTP 응답 메시지의 헤더에 추가되어 브라우저로 전송됩니다.브라우저는 받은 쿠키를 자신만의 공간에 저장합니다.브라우저는 이후 모든 요청시마다 현재 자신이 가지고 잇는 모든 쿠키들을 HTTP 요청 메시지에 추가..