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을 통해 입력된 내용을 홈페이지에 출력할 수 있는 기능을 제공합니다.
request를 이용해 name 값을 받아오면, response로 name Hello World!라는 출력문을 작성해준다는 뜻입니다.
따라서 name 값을 직접 url 주소창에 작성해주기만 하면 됩니다. 이때 경로와 이름 값 사이는 '?'를 작성해줍니다.
ex. localhost:8080/helloworld?name=gyusuk
위처럼 url을 작성해주면, name 값을 get으로 받아와 출력되는 모습을 볼 수 있습니다.
지금까지는 기본적인 서블릿을 활용해 클라이언트가 http get으로 데이터를 전송하는 방법에 대해서 알아보았습니다.
다음은 실제 홈페이지가 구성되어 있는 구조에 대해 알아보겠습니다.
'JSP > Servlet과JSP로 사용자 관리 시스템 구현' 카테고리의 다른 글
Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 5 (0) | 2018.07.23 |
---|---|
Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 4 (0) | 2018.07.11 |
Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - TDD (0) | 2018.07.06 |
Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 3 (0) | 2018.07.06 |
Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 2 (0) | 2018.07.06 |