JSP 예시로 이해하기

정키·2023년 3월 10일
0

JSP

목록 보기
4/7

FORM 태그

jsp에서 form 태그의 역할과 활용법을 알려줘
HTML의 form 태그는 사용자가 입력한 데이터를 서버로 전송하는 역할을 합니다. JSP에서도 HTML의 form 태그를 활용하여 사용자가 입력한 데이터를 서버로 전송할 수 있습니다.

form 태그의 속성 중 가장 중요한 속성은 action입니다. action은 데이터를 전송할 서버 측 프로그램의 주소를 지정합니다. method는 데이터 전송 방식을 지정하는 속성으로, 대부분 POST나 GET 중 하나를 사용합니다.

아래는 간단한 form 태그의 예시입니다.

<form action="process.jsp" method="post">
  <label for="name">이름:</label>
  <input type="text" name="name" id="name">
  <label for="email">이메일:</label>
  <input type="email" name="email" id="email">
  <input type="submit" value="제출">
</form>
이름: 이메일:

위 예시에서 action은 process.jsp로 지정되어 있고, method는 post로 지정되어 있습니다. 이 form은 이름과 이메일을 입력받아 process.jsp에 POST 방식으로 전송하는 역할을 합니다.

JSP에서는 form 태그 내부에 JSP 코드를 삽입하여 서버 측에서 동적으로 데이터를 처리할 수 있습니다. 예를 들어, 아래 예시는 사용자가 입력한 이름과 이메일을 출력하는 JSP 코드입니다.

<form action="process.jsp" method="post">
  <label for="name">이름:</label>
  <input type="text" name="name" id="name">
  <label for="email">이메일:</label>
  <input type="email" name="email" id="email">
  <input type="submit" value="제출">
</form>

<%
  String name = request.getParameter("name");
  String email = request.getParameter("email");
  out.println("이름: " + name);
  out.println("<br>");
  out.println("이메일: " + email);
%>

위 예시에서 request.getParameter() 메소드를 사용하여 사용자가 입력한 데이터를 가져올 수 있습니다. JSP 코드는 form 태그의 바로 아래에 위치해 있으며, 사용자가 입력한 데이터를 바로 출력하는 예시입니다. 이외에도 JSP에서는 form 데이터를 처리하고 다양한 로직을 구현할 수 있습니다.

JSP Servlet

JSP(Java Server Pages)와 Servlet은 모두 Java 기반의 웹 프로그래밍 기술이며, 서버 측에서 동적인 웹 페이지를 생성하기 위해 사용됩니다.

JSP는 HTML, CSS, JavaScript와 같은 웹 기술과 Java 코드를 혼합하여 웹 페이지를 생성합니다. JSP에서는 HTML 페이지 내에 Java 코드를 삽입하여 동적인 기능을 구현할 수 있습니다.

Servlet은 Java 코드로 구현된 서버 측 프로그램입니다. Servlet은 요청(Request)과 응답(Response)을 처리하는 데 사용됩니다. 클라이언트로부터 요청이 들어오면, Servlet은 요청을 처리하고 그에 따른 응답을 생성하여 클라이언트에게 전달합니다.

JSP와 Servlet은 서로 밀접하게 연관되어 있습니다. JSP는 보통 뷰(View)를 담당하고, Servlet은 모델(Model)과 컨트롤러(Controller)을 담당합니다. JSP는 HTML 페이지 내에서 Java 코드를 실행하여 동적인 기능을 구현하는 데 사용되며, Servlet은 Java 코드로 구현된 비즈니스 로직을 처리하고, JSP와 연동하여 결과를 클라이언트에게 전달하는 데 사용됩니다.

다음은 JSP와 Servlet을 함께 사용하여 로그인 기능을 구현하는 간단한 예시입니다.

1.JSP(Java Server Pages)와 Servlet은 모두 Java 기반의 웹 프로그래밍 기술이며, 서버 측에서 동적인 웹 페이지를 생성하기 위해 사용됩니다.

JSP는 HTML, CSS, JavaScript와 같은 웹 기술과 Java 코드를 혼합하여 웹 페이지를 생성합니다. JSP에서는 HTML 페이지 내에 Java 코드를 삽입하여 동적인 기능을 구현할 수 있습니다.

Servlet은 Java 코드로 구현된 서버 측 프로그램입니다. Servlet은 요청(Request)과 응답(Response)을 처리하는 데 사용됩니다. 클라이언트로부터 요청이 들어오면, Servlet은 요청을 처리하고 그에 따른 응답을 생성하여 클라이언트에게 전달합니다.

JSP와 Servlet은 서로 밀접하게 연관되어 있습니다. JSP는 보통 뷰(View)를 담당하고, Servlet은 모델(Model)과 컨트롤러(Controller)을 담당합니다. JSP는 HTML 페이지 내에서 Java 코드를 실행하여 동적인 기능을 구현하는 데 사용되며, Servlet은 Java 코드로 구현된 비즈니스 로직을 처리하고, JSP와 연동하여 결과를 클라이언트에게 전달하는 데 사용됩니다.

다음은 JSP와 Servlet을 함께 사용하여 로그인 기능을 구현하는 간단한 예시입니다.

login.jsp 파일

<html>
  <head>
    <meta charset="UTF-8">
    <title>로그인</title>
  </head>
  <body>
    <h1>로그인</h1>
    <form method="post" action="LoginServlet">
      <label>아이디:</label>
      <input type="text" name="username"><br>
      <label>비밀번호:</label>
      <input type="password" name="password"><br>
      <input type="submit" value="로그인">
    </form>
  </body>
</html>
로그인

로그인

아이디:
비밀번호:

2.LoginServlet.java 파일

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class LoginServlet extends HttpServlet {
  public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    // 요청에서 사용자 이름과 비밀번호를 가져옴
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    // 사용자 이름과 비밀번호를 확인하는 로직 수행
    // ...

    // 로그인 성공 시, 세션에 사용자 정보 저장
    HttpSession session = request.getSession();
    session.setAttribute("username", username);

    // 로그인 결과를 화면에 출력
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html><body>");
    out.println("<h1>로그인 결과</h1>");
    out.println("<p>아이디: " + username + "</p>");
    out.println("<p>비밀번호: " + password + "</p>");
    out.println("</body></html>");
  }
}

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

DAO와 DTO

JSP는 웹 애플리케이션을 구현하는 기술이므로 데이터베이스와의 데이터 처리가 필요합니다. 이를 위해 DAO(Data Access Object)와 DTO(Data Transfer Object)가 사용됩니다.

DAO(Data Access Object): DB와 데이터를 주고받는 역할을 합니다. DB와의 연결을 맺고, 쿼리문을 작성하고 실행하여 데이터베이스로부터 데이터를 가져옵니다. DAO는 비즈니스 로직과 데이터베이스 연동을 분리시켜 유지보수 및 확장성을 높이는 역할을 합니다.

DTO(Data Transfer Object): DB로부터 가져온 데이터를 객체로 표현합니다. DTO는 데이터를 표현하는 클래스로, 데이터베이스에서 가져온 데이터를 멤버 변수로 갖고 있는 객체입니다. DTO를 이용하여 DB와 JSP 간의 데이터 전송을 담당하며, 데이터를 캡슐화하여 유지보수성과 확장성을 높입니다.

따라서, JSP에서 DAO와 DTO는 데이터베이스와의 데이터 처리를 담당하며, 비즈니스 로직과 데이터베이스 연동을 분리시키기 위해 사용됩니다.

쉽게 말해서

예를 들어, 게시판을 만들기 위해 DAO와 DTO를 활용해보겠습니다.

DTO (Data Transfer Object) : 게시판 글 작성 시 입력 받은 정보를 담는 객체입니다.

DAO (Data Access Object) : 게시판 글 작성, 수정, 삭제 등의 데이터 처리를 담당하는 객체입니다.

그 이후

Controller : JSP에서 입력 받은 데이터를 DAO와 DTO를 활용하여 처리하는 역할을 합니다.
를 활용

DTO-> DAO -> CONTROLLER

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

(Set,get)Attribute

역할?

jsp에서 request.setAttribute역할?
JSP에서 request.setAttribute(String name, Object value) 메소드는 요청(Request) 객체에 데이터를 설정하는 역할을 합니다. 첫 번째 파라미터로는 데이터를 식별하기 위한 이름(String)을, 두 번째 파라미터로는 실제 데이터(Object)를 전달합니다.

이 메소드를 호출한 후, 해당 요청(Request) 객체는 서버에서 실행되는 다른 페이지(JSP, Servlet)에서 사용될 수 있습니다. 즉, setAttribute()를 사용하여 요청(Request) 객체에 데이터를 저장하고, 다른 페이지에서는 getAttribute() 메소드를 사용하여 요청(Request) 객체에 저장된 데이터를 가져올 수 있습니다.

예를 들어, 다음과 같은 코드를 작성하여 request 객체에 데이터를 설정할 수 있습니다.

request.setAttribute("name", "John Doe");
request.setAttribute("age", 30);
request.setAttribute("isMarried", true);

위와 같이 request.setAttribute()를 사용하여 데이터를 설정한 경우, 다른 페이지에서는 다음과 같이 request.getAttribute()를 사용하여 데이터를 가져올 수 있습니다.

String name = (String) request.getAttribute("name");
int age = (Integer) request.getAttribute("age");
boolean isMarried = (Boolean) request.getAttribute("isMarried");

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

jsp에서 web module의 path역할?

Web Module을 추가할 때 지정하는 Path는 해당 Web Module의 루트 경로를 지정하는 것입니다. Path에 지정한 값은 URL에 사용됩니다. 즉, 클라이언트가 접근할 수 있는 해당 Web Module의 시작 URL을 나타냅니다.

예를 들어, Path를 "/myapp"으로 지정하면 해당 Web Module의 시작 URL은 "http://localhost:8085/myapp"이 됩니다. 클라이언트는 이 URL을 통해 해당 Web Module에 접근할 수 있습니다.

또한, Path는 해당 Web Module이 배치(deploy)될 때, Web Module을 구분하는데 사용됩니다. 서버에 여러 개의 Web Module이 배치될 경우, 각각의 Web Module은 Path에 지정한 값으로 구분됩니다.

profile
bbbu

0개의 댓글