서블릿으로 웹앱 만들기

항목은 다룹니다


  • HTML 페이지에서 서블릿 호출
  • 서블릿(HttpServlet을 확장하는 클래스) 만들기
  • HttpServletRequest 및 HttpServletResponse를 사용하여 html 페이지에서 값 가져오기
  • 서블릿 클래스 매핑
  • doPost() 메서드

  • 서블릿으로 간단한 웹앱 만들기
    우리는 두 개의 숫자를 더하는 앱을 만들 것입니다.

    전제 조건: Java에 대한 기본 지식.
  • IDE(Java EE 개발자용 Eclipse 권장).
  • 웹 서버(Tomcat 선호).

  • Step 0: 프로젝트를 만들기 전에 tomcat 서버를 설정하자.

    하단 패널에 서버 탭이 표시되지 않는 경우.
  • 창( 탐색 표시줄에서 )으로 이동합니다.
  • 쇼 보기를 클릭하십시오
  • 서버
  • 를 클릭합니다.

    이제 아래쪽 패널에 서버가 표시되고 Tomcat을 구성하려면 클릭하고(Tomcat 코어 및 소스 코드를 다운로드하고 파일의 압축을 풀어야 함) 버전과 경로를 선택합니다.

    확인하려면 http:8080으로 이동하십시오.

    이제 서버가 구성되었습니다.

    1단계: Eclipse를 시작하고 새 "Dynamic Webapp"프로젝트를 엽니다.

    아래 그림과 같이.
  • com.app 패키지 만들기



  • 2단계: HTML 코드를 작성할 HTML 파일을 만듭니다.
  • 두 개의 입력으로 간단한 양식을 만듭니다. 첫 번째는 첫 번째 번호입니다. & 두 번째 아니오 및 하나의 제출 버튼에 대한 두 번째.
  • HTML 양식에서 양식 태그 내에서 작업 속성을 정의하고 여기에 추가 경로를 지정합니다(예: action="add” ).

  • <form method="get" action="add">
      Enter 1st no.  <input type="text" name="num1"><br>
      Enter 2nd no. <input type="text" name="num2"><br>
     <button >Submit</button>
    </form>
    

    3단계: HttpServlet을 확장하는 서블릿 또는 클래스 생성(필요한 패키지 가져오기)
  • 두 매개 변수 HttpServletRequest를 req로 사용하고 HttpServletRespone을 res로 사용하는 서비스 메서드를 정의합니다.
  • 이제 메서드 내에서 두 개의 숫자를 더하는 논리를 작성합니다.

  • int i = Integer.parseInt(req.getParameter("num1"));
    int j = Integer.parseInt(req.getParameter("num2"));  
    
    int k = i+j;
    
    //Print the out put
    PrintWriter out = res.getWriter();
    out.println(k);
    

    그러나 잠시만 기다리십시오. 서버는 어떤 서블릿을 호출해야 할지 모르기 때문에 오류가 발생합니다.

    4단계: 이 문제는 HTML 페이지를 서블릿과 매핑하여 해결할 수 있습니다. "web.xml"또는 배포 설명자 파일을 사용하기 때문입니다.

    <servlet>
       <servlet-name>My servlet</servlet-name>
       <servlet-class>com.app.AppServlet</servlet-class>
    </servlet>
    <servlet-mapping>
       <servlet-name>My servlet</servlet-name>
       <url-pattern>/add</url-pattern>
    </servlet-mapping>
    


    이제 서버를 시작하고 두 개의 아니오를 입력하고 제출하십시오.

    답을 얻었습니다 👍

    하지만 여기서 다시 한 가지 문제가 있습니다. 우리가 보내는 데이터는 URL에 노출됩니다. 그것을 숨길 수 있는 방법과 노출되는 이유가 있습니까?

    양식 기본 메서드가 "get"이기 때문에 "post"즉 method=”post” 로 변환해야 합니다.

    그러나 브라우저 검사 도구에서 HTTP 메서드 매개변수를 변경할 수 있으므로 문제를 완전히 해결하려면 서비스 메서드를 사용하는 대신 서블릿에서 메서드를 변경해야 합니다. 우리는 게시 메서드에 doPost 메서드를 사용할 것입니다. 이것은 문제를 해결할 것입니다.

    소스 코드: https://github.com/priyanshupardhi/ServletApp

    🎉만세!🎉 방금 서블릿을 사용하여 첫 번째 웹 앱을 만들었습니다.

    좋은 웹페이지 즐겨찾기