본문 바로가기

Java152

[JSP] forward 와 sendRedirect의 차이 간단하게 요약하면, forward는 request(요청) 이고, sendRedirect는 response(응답)이다. forward나 sendRedirect는 주로 컨트롤러나 index 페이지에서 사용된다. String strPath = "/WEB-INF/view/list.jsp"; Request dispatcher = request.getRequestDispatcher( strPath ); dispatcher.forward( request, response ); ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ String strPath = "/WEB-INF/view/list.jsp"; response.sendRedirect( strPath ); 우선, request가 forward 되는 상황을 이.. 2023. 1. 24.
[JSP] request.getParameter() null 처리 getParameter() 메서드는 아래와 같이 동작한다. request.getParameter() HTTP 요청의 매개변수 값 반환 해당 매개변수가 없을 경우 null 반환 해당 매개변수가 없을 경우 null을 반환하기 때문에 if (id == null)로 데이터를 검증했다. 하지만 로직 에러가 발생하였고, id 값을 출력해봤다. 당당하게 null이라고 나와서 잠시 혼란스러웠지만 디버깅에서 바로 원인을 알 수 있었다. String id = request.getParameter("id"); 에서 만일 id가 존재하지 않으면 null이 아니라 스트링 "null"이 할당된 것이다. ??? 안전하게 다음과 같이 데이터를 검증하도록하자. if (id == null || "null".equals(id)) 2023. 1. 22.
[JSP] Rest API에 대해서 간략하게 Rest란? Rest는 Representational State Transfer의 약자로 직역하면 "대표로 상태를 전송하는 것" 이다. 제대로 된 의미는 "데이터의 이름으로 상태를 구분하여 전송하는 방식" 이다. 예를 들면.. 데이터의 이름 "이것은 유저에 대한 데이터야" → user( 유저 데이터라고 알려줌. ) 상태 "나 데이터 생성할거야: → create( 데이터를 생성한다고 알려줌. ) 전송 "유저 데이터 생성해줘" → Create user( 유저 데이터를 생성해 달라고 요청함. ) 이와 같이 데이터의 이름으로 상태를 구분하여 전송하는 방식임. 사용하는 이유는. 가장 대표적인 이유는 "HTTP 프로토콜" 이라고 생각한다. REST API는 HTTP 프로토콜 인프라를 그대로 사용하기 때문에 HTTP.. 2023. 1. 19.
[Java] 클래스, 메서드, 변수에 대한 Naming Rulue 클래스 명명 규칙 클래스명에는 파스칼을 사용 public class HelloWorld {} 인터페이스에는 특별한 접두사나 접미사를 사용하지 않고 파스칼을 사용 public interface Animal {} 인터페이스를 구현한 클래스에는 특별한 접두사나 접미사를 사용하지 않고 파스칼을 사용 public class Tiger implements animal {} 추상 클래스에는 특별한 접두사 및 접미사를 사용하지 않고 파스칼을 사용한다. public abstract class Animal {} 메서드명 메서드명에는 파스칼 표기법을 사용한다. public void SendMessage( String message ) {} 속성에 접근하는 메서드명의 접두사는 'get', 'set' 을 사용한다. public.. 2023. 1. 19.
[JSP] Filter를 활용한 request.setCharterEncoding("utf-8") 위와 같이 입력 후 전송 버튼을 누른다면 setCharterEncoding("utf-8") 설정을 안해줬다면 한글이 깨지는 현상이 발생한다. 이를 해결하기 위해 출력하는 jsp 페이지에서 아래와 같이 설정해준다면 한글이 문제없이 출력된다. request.setCharacterEncoding("utf-8"); 그러나, 위 내용을 100_000개가 넘는 JSP 페이지에 한다면? 이는 얼마나 힘든 작업일까? 이를 해결하기 위해서 FIlter라는 것을 제공한다. 아래와 같이 따라해보자. url-mapping을 해준다. 확장자가 .jsp인 파일을 요청하는 모든 페이지에 "utf-8"의 인코딩 방식을 사용하겠다는 것이다. 전처리 구간에 request.setCharacterEncoding("utf-8"); 를 기술한.. 2022. 11. 28.
[JSP] 모델1 구조의 게시판을 웹사이트 배포를 위한 명령 프롬프트 및 폴더 구조 설정 / (버전오류 발생 주의) / Java Build Path, Project Facets 버전으로 인한 오류는 톰캣과 버전을 맞춰줘야함. 2022. 11. 25.
[JSP] 세션(session)을 활용한 로그인 페이지 구현과 관련된 프로그래밍 흐름 [2] 2022. 11. 25.
[JSP] response.sendRedirect response 객체는 웹브라우저에서 서버쪽으로 request(요청)를 하면 요청 정보(헤더, 파라미터 정보)가 담긴 request객체가 생성됩니다. 이를 통해 우리는 response.getParameter() 등의 메서드를 이용해서 정보를 얻을 수 있습니다. 요청을 받으면 서버에서는 무조건 response 객체도 함께 생성됩니다. sendRedirect() 메서드는 별다른 결과값이 없을때 또는 처리를 하고 끝나는 상황이라면 다른 곳으로 요청하도록 링크를 만들어줍니다. 이를 받은 웹브라우저는 전달받은 url로 이동합니다. 웹 브라우저에서 10-1번으로 요청을 했을 때는 서버에서는 처리를 하며, 생성된 request 객체와 response 객체를 10-2번으로 그대로 전달(forwarding)해주는다는 의.. 2022. 11. 23.
[JSP] JSP 라이프사이클 공부 1. 클라이언트가 웹브라우저를 통해서 ex03.jsp 파일을 요청(request)한다. localhost:8080/jsp02/ex03.jsp 2. 톰캣은 클라이언트가 요청한 파일을 찾아보고, JSP 코드를 java 파일로 생성한다. ex03.jsp 파일은 ex03.java 로 변환되고, ex03.class 로 컴파일 되었다. 컴파일이 되었다는 말은 클래스(객체)를 생성한다는 말이다. new ex03_jsp(); 만약 Init(), Destroy() 메서드를 오버라이딩을 했다면 다형성의 원리로 인해서 메서드가 호출된다. Init() : 최초 한번 호출 Destroy() : 클래스가 제거될 때 호출 이를 통해서 메모리 상에서 계속 상주하게 되는 클래스가 됩니다. Service() 라는 메서드는 웹브라우저에 .. 2022. 11. 23.