Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 1
JSP/Servlet과JSP로 사용자 관리 시스템 구현

Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 1

반응형

Servlet/JSP로 사용자 관리 시스템 구현하기 과정 


링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526852


회원가입 기능 구현의 예외처리까지 진행한 과정에 대해서 한번 더 복습하는 차원에서 정리해보겠습니다.





우선 포트8080에서 서버를 만들어야 합니다. 우리는 이로써 localhost:8080 주소를 통해 우리가 만들어갈 웹 사이트를 확인할 수 있습니다.


WebServerLauncher.java


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package net.slipp;
 
import java.io.File;
 
import org.apache.catalina.connector.Connector;
import org.apache.catalina.startup.Tomcat;
 
public class WebServerLauncher {
    public static void main(String[] args) throws Exception {
        String webappDirLocation = "webapp/";
        Tomcat tomcat = new Tomcat();
        tomcat.setPort(8080);
 
        tomcat.addWebapp("/"new File(webappDirLocation).getAbsolutePath());
        System.out.println("configuring app with basedir: " + new File("./" + webappDirLocation).getAbsolutePath());
 
        tomcat.start();
        tomcat.getServer().await();
    }
}
cs


우리가 메인 홈페이지(index.jsp), 로그인이나 폼 구현 등 jsp를 저장할 폴더를 만들고 (저는 webapp로 생성했습니다)


서버 구동 코드에서 이 Location을 설정해줍니다.


String webappDirLocation = "webapp/";




다음으로는 서블릿 파일을 생성해서, 실제로 잘 출력되는지 확인해보겠습니다.


HelloWorldServlet.java


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package net.slipp;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet(name="helloworld", urlPatterns={"/helloworld""/hello""/hello/world"}) // annotation을 활용한 매핑
public class HelloWorldServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String name = req.getParameter("name");
        resp.getWriter().print(name + " Hello World!");
    }
}
 
cs



서블릿을 이용할 때, 이동 경로는 보통 web.xml을 이용해서 설정해줄 수 있습니다.


web.xml 내용


<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

  <display-name>slipp</display-name>

  

  <servlet>

  <servlet-name>HelloWorld</servlet-name>

  <servlet-class>net.slipp.HelloWorldServlet</servlet-class>

  </servlet>

  

  <servlet-mapping>

  <servlet-name>HelloWorld</servlet-name>

  <url-pattern>/helloworld</url-pattern>

  </servlet-mapping>

  

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>



이처럼 서블릿 매핑을 통해 경로 설정이 가능합니다. 하지만 이는 나중에 경로를 수정해야할 때 계속 직접 바꿔야하는 번거로움이 발생합니다.

그래서 java 파일에서 annotation이라는 매핑 기능을 이용하면 편리하게 지정할 수 있는 장점이 있습니다.


@WebServlet(name="helloworld", urlPatterns={"/helloworld""/hello""/hello/world"}) // annotation을 활용한 매핑


이처럼 여러가지 경로를 설정해주는 것도 가능합니다. 위의 경우를 예시로 들면, "/helloworld""/hello""/hello/world"에서 똑같은 출력 값을 볼 수 있게 됩니다.


메인 클래스에 존재하는 doGet 메소드는, get이기 때문에 url을 통해 입력된 내용을 홈페이지에 출력할 수 있는 기능을 제공합니다.


@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String name = req.getParameter("name");
        resp.getWriter().print(name + " Hello World!");
    }


request를 이용해 name 값을 받아오면, response로 name Hello World!라는 출력문을 작성해준다는 뜻입니다.


따라서 name 값을 직접 url 주소창에 작성해주기만 하면 됩니다. 이때 경로와 이름 값 사이는 '?'를 작성해줍니다.


ex. localhost:8080/helloworld?name=gyusuk


위처럼 url을 작성해주면, name 값을 get으로 받아와 출력되는 모습을 볼 수 있습니다.


지금까지는 기본적인 서블릿을 활용해 클라이언트가 http get으로 데이터를 전송하는 방법에 대해서 알아보았습니다.



다음은 실제 홈페이지가 구성되어 있는 구조에 대해 알아보겠습니다. 






반응형