DEV/Java

· DEV/Java
Spring MVC의 Redirect와 Forward 웹 애플리케이션 개발에서는 한 웹 페이지에서 다른 웹 페이지로 네비게이션해야 하는 상황이 발생합니다. Spring MVC에서는 이를 리다이렉트와 포워딩을 통해 구현할 수 있습니다. Redirect 리다이렉트는 두 번의 요청과 두 번의 응답을 포함합니다. 리다이렉트가 발생하면 다음과 같은 과정을 거칩니다 클라이언트가 서버에 요청을 보냅니다. 서버는 클라이언트에게 응답을 보내 다른 URL로 새로운 요청을 보내도록 알립니다. 클라이언트는 지정된 URL로 새로운 요청을 보냅니다. 서버는 새 URL로부터 클라이언트에게 응답을 보냅니다. 리다이렉트는 클라이언트에서 서버로의 두 번의 왕복을 포함하기 때문에 포워드보다 느립니다. Forward 리다이렉트와 달리 포워..
· DEV/Java
DispatcherServlet DispatcherServlet은 Spring MVC 프레임워크의 핵심 요소 중 하나로, 모든 HTTP 요청을 최초로 받아들이는 ‘프론트 컨트롤러’ 역할을 합니다. Spring의 web MVC 프레임워크의 중앙 서블릿인 DispatcherServlet는 클라이언트의 요청을 받아 적절한 컨트롤러에게 전달하고, 그 컨트롤러에서의 처리 결과를 바탕으로 적절한 뷰를 선택해주는 중요한 역할을 합니다 DispatcherServlet의 주요 역할은 다음과 같습니다: 요청 분석: 클라이언트로부터 오는 HTTP 요청을 분석합니다. 핸들러 매핑: 분석된 요청을 해당하는 컨트롤러에게 전달하기 위해 핸들러 맵핑을 수행합니다. 요청 처리: 매핑된 컨트롤러가 요청을 처리하고 결과를 반환하면, Di..
· DEV/Java
Spring은 어떻게 매개변수만 적으면 라우팅을 해주는걸까 Spring의 라우팅은 URI가 서버의 특정 리소스에 직접 연결된 기존 웹 애플리케이션과 상당히 다릅니다. 대신 Spring은 들어오는 웹 요청을 처리하는 방법을 결정하기 위해 컨트롤러, 메소드 및 주석 시스템을 사용합니다. Understanding Controllers and Request Mapping Spring에서 컨트롤러는 들어오는 웹 요청을 처리하는 클래스입니다. 클래스에 @Controller 주석을 추가하여 컨트롤러로 지정됩니다. 이러한 컨트롤러 클래스 내에서 다양한 유형의 요청을 처리하기 위한 메서드가 정의됩니다. 이러한 메서드는 @RequestMapping 주석을 사용하여 특정 URL 또는 URL 패턴에 매핑됩니다. 예를 들면 다..
· DEV/Java
Spring MVC에서 @ModelAttribute 이해하기 Spring MVC의 @ModelAttribute 주석은 메소드 인수 또는 메소드 반환 값을 명명된 모델 속성에 바인딩하여 웹 뷰에 노출하는 데 사용됩니다. @ModelAttribute 주석은 다음 두 가지 주요 시나리오에서 사용할 수 있습니다: 1. 메소드 인자 이 시나리오는 주로 양식 처리와 관련이 있으며, 여기서 객체가 요청 매개 변수로 채워진 후 메소드로 전달됩니다. 채워진 객체는 자동으로 모델에 추가됩니다. 예를 들어 사용자가 개인 정보를 제출할 수 있는 양식 페이지를 만들고 있는 상황입니다 우리는 다음과 같은 User 클래스를 가지고 있습니다 public class User { private String name; private St..
· DEV/Java
Servlet Filter Servlet 필터는 Java Servlet 기술의 핵심 기능 중 하나로 웹 애플리케이션에서 요청과 응답을 가로채고 처리할 수 있습니다. 필터는 요청과 응답에 대해 전처리와 후처리 작업을 수행하며, 필요한 경우 수정할 수도 있습니다. 필터는 중복 코드 없이 여러 서블릿에 공통 기능을 적용할 수 있는 방법을 제공함으로써 웹 애플리케이션 작업의 효율성과 효과성을 크게 향상시킵니다. 다음은 Servlet 필터에 대한 주요 포인트를 간결하게 정리한 내용입니다: 주요 특징 구현: 필터는 javax.servlet.Filter 인터페이스를 구현하는 Java 클래스입니다. 다중 필터: 웹 애플리케이션에 여러 필터를 사용할 수 있으며, 필터 매핑 구성에 따라 정의된 순서대로 실행됩니다. 등록 ..
· DEV/Java
Expression Language EL은 JSP에서 Java 코드에 대한 보다 간단한 대안을 제공하는 Java 표현 언어의 약자입니다. EL을 사용하면 JavaBeans 구성 요소에 저장된 애플리케이션 데이터에 더 쉽게 액세스할 수 있습니다. 예제로 알아보자 아래 User 클래스를 생성하고, 서블릿에 요청 속성으로 추가해봅시다 public class User { private String name; private String email; // constructor, getters, setters... } User user = new User(); user.setName("John Doe"); user.setEmail("john@example.com"); request.setAttribute("user"..
· DEV/Java
Servlet의 상태 정보 저장 Servlet의 상태 정보는 크게 4가지가 있다. 어플리케이션, 페이지 컨텍스트, request, 세션 저장소인데, 공부하면서 브라우저에서 쓰이는 것도 동일하지 않나 싶었다 1. 페이지 컨텍스트(Page Context) 현재 페이지의 지속 시간 동안 사용 가능한 저장 영역입니다. 페이지 내에서 여러 번 액세스되는 데이터를 저장하는 데 사용되지만 페이지를 넘어 지속될 필요는 없습니다. 페이지 컨텍스트에 저장된 데이터는 다른 페이지나 구성 요소에서 사용할 수 없습니다. 이는 저장소들 중 가장 좁은 범위이며 저장된 데이터는 현재 페이지 처리가 완료되면 지워집니다. 요청 저장소(Request) 이 저장소 영역은 현재 HTTP 요청 기간 동안 사용할 수 있습니다. 서블릿에서 JSP..
· DEV/Java
Servlet 서블릿은 요청-응답 프로그래밍 모델을 통해 액세스되는 애플리케이션을 호스트하는 서버의 기능을 확장하는 데 사용되는 Java의 클래스입니다. 일반적으로 웹 서버에서 호스팅하는 응용 프로그램을 확장하는 데 사용됩니다. Servlet Lifecycle 서블릿의 수명 주기는 서블릿 컨테이너에 의해 제어되며 다음 단계로 구성됩니다. 아래 과정은 컨테이너가 자동으로 호출을 해주기 때문에 개발자들은 필요한 것들을 채워주기만 하면 됩니다 로드 및 인스턴스화 서블릿 컨테이너는 시작하는 동안 또는 첫 번째 요청이 있을 때 서블릿 클래스를 로드합니다. 서블릿 인스턴스는 Class 클래스의 newInstance() 메서드를 사용하여 생성됩니다. 초기화 서블릿 컨테이너는 init() 메서드를 호출하고 Servle..
· DEV/Java
Spring MVC Spring MVC는 Spring Framework의 일부로서 웹 애플리케이션을 개발하기 위한 프레임워크입니다. MVC는 Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나입니다. 이 패턴은 애플리케이션의 논리를 쉽게 이해하고, 개발하고, 유지보수하게 해주는 유용한 구조를 제공합니다. Spring의 View Rendering Spring의 View 렌더링하는 방법을 알아보겠습니다. 먼저 모델을 생성하고 채웁니다. 이 과정에서 애플리케이션에서 사용할 데이터를 수집하고 구성합니다 @Controller public class MyController { @RequestMapping("/somePath") public String handleRequest(Mode..
· DEV/Java
Java 런타임에 매개변수 이름 얻는 방법 Reflection API Java에서 Reflection API는 프로그램이 컴파일 시점에 특정 타입을 알지 못해도 런타임에 객체를 조작할 수 있게 해줍니다. 이는 런타임에 클래스, 인터페이스, 필드, 메소드를 조사할 수 있게 하여, 컴파일 시점에 인터페이스, 필드, 메소드 등의 이름을 알지 못해도 됩니다. 매개 변수와 관련하여 Reflection API를 사용하면 런타임에 메소드 매개 변수를 조사할 수 있습니다. 다음은 예시입니다: Method[] methods = MyClass.class.getMethods(); for (Method method : methods) { Parameter[] parameters = method.getParameters(); ..
berom
'DEV/Java' 카테고리의 글 목록 (4 Page)