Maven Web Project 만들기

소개



테스트용 Web Project를 만들고, 끝나면 삭제한다면 Maven일 필요도 없습니다만, 잠시 사용하는 것을 고려해 Maven을 사용할 수 있도록 합니다.

Eclipse Plugin 준비



New > Other > Maven > Maven Project에서 메뉴를 찾을 수 없으면 플러그인이 부족하기 때문에 Install합니다.
Help > Install New Software에서 다음과 같이 선택하여 배포합니다.


Maven Project 만들기




  • Project의 배치 위치를 지정합니다. 조건이 없으면 기본값을 지정합니다.
  • Archetype이 Liberty 용 webapp-j2ee-liberty 다른 응용 프로그램 서버를 사용하는 경우 maven-arcehtype-webapp를 선택합니다.
  • Project 이름은 다음과 같이 했습니다.

  • GropuId : qiita.keniooi//여기 페이지 용이라는 의미에서,
    ArtifactId : sampleWeb//프로젝트 이름으로,
    버전 : 기본
    Package : sample.web



    Finish를 누르면 완성됩니다.

    pom.xml 편집



    필요한 라이브러리를 pom.xml에 작성하여 사용할 수 있도록 합니다. 여기 JSON 라이브러리를 추가합니다.

    JSON In Java
    이 사이트에서 20180130을 클릭하여 다음 부분에서 복사합니다.


    복사한 텍스트를 sampleWeb 프로젝트에 있는 pom.xml을 열어 dependencies 태그 안에 추가합니다.

    pom.xml
    ...
        <dependencies>
            <dependency>
                <groupId>net.wasdev.maven.tools.targets</groupId>
                <artifactId>liberty-target</artifactId>
                <version>RELEASE</version>
                <type>pom</type>
                <scope>provided</scope>
            </dependency>
    
        <!-- https://mvnrepository.com/artifact/org.json/json -->
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20180130</version>
            </dependency>
        </dependencies>
    ...
    

    이 설정을 사용하면 Maven Dependencies에 추가되었는지 확인할 수 있습니다.



    서블릿 만들기



    JSON을 POST로 받아 처리하는 서블릿을 작성해 나갈 예정입니다만, 여기서는 서블릿 중에서 String을 JSONArray, JSONObject로 처리하는 서블릿을 만들어 보겠습니다. doPost()에 쓰기 때문에 테스트용 doGet()는 그대로 doPost()를 호출하고 있습니다.

    TestServlet.java
    @WebServlet("/TestServlet")
    public class TestServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public TestServlet() {
            super();
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doPost(request, response);
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("application/json;charset=UTF-8");
            String json = "[{\"name\":\"Satoh Taro\",\"id\":\"123\",\"mail\":\"[email protected]\"},"
                    + "{\"name\":\"Suzuki Hana\",\"id\":\"124\",\"mail\":\"[email protected]\"}]";
            JSONArray ja = new JSONArray(json);
            ArrayList<Person> list = new ArrayList<Person>();
            for(Object o : ja) {
                JSONObject jo =(JSONObject) o;
                Person p = new Person();
                p.setName(jo.getString("name"));
                p.setId(jo.getString("id"));
                p.setMail(jo.getString("mail"));
                list.add(p);
                System.out.println(p.getId() + "," + p.getName() + "," + p.getMail());
            }
            response.getWriter().println(json);
    
        }
    
    }
    
    class Person {
        String name;
        String id;
        String mail;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getMail() {
            return mail;
        }
        public void setMail(String mail) {
            this.mail = mail;
        }
    }
    
    
    

    이 서블릿에 Firefox로 액세스하면 다음과 같습니다.


    Liberty의 로그에는

    stdout
    123,Satoh Taro,[email protected]
    124,Suzuki Hana,[email protected]
    

    로 출력됩니다.

    참고



    Eclipse+Maven이라는 편리한 개발 환경을 설치부터 프로젝트 작성까지
    【Java】JSON 데이터를 표준 API, Jackson, JSON in Java로 취급하는 방법

    좋은 웹페이지 즐겨찾기