Maven 개발 웹 응용 상세 절차 사용

웹 응용 을 개발 하 는 사고방식
간단 한 JSP/servlet 을 실현 합 니 다.
웹 응용 프로젝트 를 만 드 는 환경 을 구축 합 니 다웹 응용 프로젝트 를 만 듭 니 다웹 응용 프로젝트 의 디 렉 터 리 구조웹 서버 와 결합 하여 웹 애플 리 케 이 션 을 발표 합 니 다웹 애플 리 케 이 션 의 개발 과 발표 테스트 과정 을 체험 합 니 다클래식 한 MVC 버 전 을 구현 한 사용자 CRUD.
4.567917.첫 번 째 단계 의 몇 가지 측면 에 익숙 하 다4.567917.전형 적 인 업무 논 리 를 결합 하여 CRUD 를 실현 한다웹 판 HelloWorld 구현
1)File→New→Others 명령 을 선택한다.Create Maven Project 명령 을 선택 하고'다음'단 추 를 누 르 십시오.웹 애플 리 케 이 션 을 만 드 는 Archetype 을 선택 하 십시오.그림 1 참조.
图 1 选择Web Archetype
다른 유사 한 것 도 선택 할 수 있 습 니 다.웹 애플 리 케 이 션 을 만 드 는 것 도 가능 합 니 다.예 를 들 어 maven-archetype-webapp 도 가능 합 니 다.물론 인터넷 에서 좌 표를 찾 은 Archetype 플러그 인 을 선택 하여 설치 할 수도 있다.
새로운 Archetype 을 어떻게 설치 합 니까?그림 에 있 는 Add Archetype...단 추 를 누 르 면 나타 나 는 창 에 인터넷 에서 찾 은 플러그 인 좌표 정 보 를 입력 합 니 다.그림 2 참조.
图 2 添加 Archetype
OK 단 추 를 누 르 면 MyEclipse 에서 이 구조물 을 자동 으로 다운로드 합 니 다.프로젝트 를 만 드 는 마법사 페이지 를 다시 열 면 방금 추 가 된 Archetype 플러그 인 이 추가 되 었 습 니 다.그림 3 참조.
图 3 选择 webapp-javaee6 Archetype
2)"next"를 누 르 면 다음 화면 에 새로 만 든 웹 프로젝트 의 좌표 정보 와 가방 이름 을 입력 합 니 다.그림 4 참조.
图 4 Maven项目坐标
3)Finish 단 추 를 누 르 면 M2Eclipse 는 자동 으로 웹 프로젝트 MvnDemo 02 를 만 듭 니 다.src/main 디 렉 터 리 에 웹 앱 디 렉 터 리 를 추 가 했 습 니 다.웹 애플 리 케 이 션 특유 의 WEB-INF 디 렉 터 리,웹.xml,index.jsp 등 이 있 습 니 다.
이 가운데 웹 앱 디 렉 터 리 와 안에 있 는 파일 및 구 조 는 Maven 에서 도 고정 되 어 있다.이렇게 해서 웹 응용 프로젝트 를 만 들 었 습 니 다.
샘플 코드 작성
프로젝트 가 만 들 어 졌 습 니 다.다음 단 계 는 테스트 코드 를 쓰 는 것 입 니 다.다음은 세 개의 코드(jsp 2 개 와 servlet 1 개)를 쓸 것 이다.
index.jsp,입력 상 자 를 표시 합 니 다.입력 한 내용 을 제출 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Index JSP</title>
  </head>
  <body>
    <form action="welcomeServlet" method="post">
             :<input type='text' name="name"/><br/>
      <input type='submit' value='  '/>
    </form>
  </body>
</html>
welcome.jsp,인사 정 보 를 표시 합 니 다.코드 는 다음 과 같 습 니 다.

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Welcome JSP</title>
  </head>
  <body>
        :${welcome }
  </body>
</html>
welcome Servlet,index.jsp 가 보 낸 이름 을 받 아 인사 메 시 지 를 생 성하 여 welcome.jsp 에 표시 합 니 다.

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class WelcomeServlet
*/
public class WelcomeServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;

  /**
   * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
   *   response)
   */
  protected void service(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    String name = request.getParameter("name");
    String welcome = "Hello," + name;
    request.setAttribute("welcome", welcome);
    request.getRequestDispatcher("/index.jsp").forward(request, response);
  }
}
물론 코드 작성 외 에 웹.xml,servlet,웹.xml 코드 를 설정 해 야 합 니 다.

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5">
  <display-name>MvnDemo02</display-name>
  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>WelcomeServlet</display-name>
    <servlet-name>WelcomeServlet</servlet-name>
    <servlet-class>com.mengma.demo.MvnDemo02.WelcomeServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>WelcomeServlet</servlet-name>
    <url-pattern>/WelcomeServlet</url-pattern>
  </servlet-mapping>
</web-app>
웹 프로젝트 구축
초기의 구축 과정 은 앞의 기본 적 인 자바 프로젝트 와 마찬가지 로 자신의 수요 에 따라 pom.xml 에 해당 하 는 기능 의 플러그 인 을 설정 하고 해당 하 는 그래 픽 메뉴 명령 을 실행 하면 됩 니 다.여기 서 중복 설명 을 하지 않 습 니 다.
웹 애플 리 케 이 션 이 구축 되면 컴 파일 패키지 만 설치 하 는 것 이 아니 라 웹 서버 에 발표 하여 테스트 디 버 깅 을 해 야 합 니 다.톰 캣 7 서버 에 발 표 된 테스트 를 시작 하 는 두 가지 방식 을 소개 한다.프로젝트 개발 과정 에서 자신의 수요 에 따라 그 중 하 나 를 선택 할 수 있다.
1.Maven 의 Jetty 플러그 인 을 사용 하여 웹 배치
pom.xml 에 Jetty 플러그 인의 좌표 정 보 를 추가 합 니 다.내용 은 다음 과 같 습 니 다.

<plugin>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>maven-jetty-plugin</artifactId>
  <version>6.1.26</version>
  <configuration>
    <webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory>
  </configuration>
</plugin>
MyEclipse 에 웹 서버 실행 환경 을 설정 합 니 다.
MyEclipse 메뉴 Window→Preferences 명령 을 선택 하고 Preferences 창 을 열 고 왼쪽 트 리 Server→Runtime Environment 를 선택 하 십시오.그림 5 참조.
图 5 MyEclipse的Web服务器
오른쪽 에 있 는 Add...단 추 를 누 르 면 서버 를 선택 하 는 창 이 팝 업 됩 니 다.창 에 있 는 Apache Tomcat v 7.0 서버 를 선택 하 십시오.그림 6 참조.
图 6 添加 Tomcat 7.0
Next 단 추 를 누 르 면 선택 한 Tomat Server 설정 페이지 에 들 어가 Tomcat 의 설치 디 렉 터 리 와 JRE 실행 환경(JDK)을 선택 합 니 다.그림 7 참조.
图 7 添加 Tomcat 的 Java home
Finish 와 Apply and Close 단 추 를 누 르 면 모든 설정 창 을 닫 고 MyEclipse 의 웹 서버 설정 을 완료 합 니 다.
'프로젝트'를 오른쪽 클릭 하고 Run As→Maven build 명령 을 선택 하여 사용자 정의 launch 창 을 열 고 Goals 에 시작 하 는 플러그 인 이름과 대상'Jetty:run'을 입력 합 니 다.그림 8 참조.
图 8 运行 jetty
Run 단 추 를 누 르 면 한 번 실행 한 후,매번 Run As→Maven build 명령 에서 중복 실행 을 선택 할 수 있 습 니 다.
서버 가 시작 되 었 습 니 다.다음 브 라 우 저 를 열 고 입력 하 십시오:http://localhost:8080/MvnDemo02/index.jsp이렇게 하면 첫 번 째 페이지 에 접근 할 수 있다.
2.cargo-maven2-plugin 플러그 인 을 사용 하여 웹 배치
cargo 플러그 인 을 사용 하 는 것 은 상대 적 으로 간단 합 니 다.pom.xml 에서 설정 하고 배치 응용 에 필요 한 정 보 를 지정 한 다음 에 Run As→Maven install 명령 을 실행 하면 cargo 플러그 인 은 자동 으로 war 패키지 로 만 든 응용 을 지정 한 웹 서버 의 발표 디 렉 터 리 에 발표 합 니 다.
다음은 웹 서버 를 시작 하고 이전 방식 으로 브 라 우 저 탐색 페이지 를 엽 니 다.
Gargo 의 pom.xml 플러그 인 설정 은 다음 과 같 습 니 다.

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>cn.com.mvnbook.demo</groupId>
  <artifactId>MvnDemo02</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>MvnDemo02 Web App</name>

  <properties>
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-web-api</artifactId>
      <version>6.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.26</version>
        <configuration>
          <webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory>
        </configuration>
      </plugin>
      <plugin>
        <!--            -->
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <version>1.4.8</version>
        <configuration>
          <!--    ,  start、stop                   -->
          <wait>true</wait>
          <!--       -->
          <container>
            <!--   tomcat   -->
            <containerId>tomcat7x</containerId>
            <!--     :standalone, installed  -->
            <type>installed</type>
            <!--   Tomcat   , catalina.home -->
            <home>C:\work\servers\apache-tomcat-7.0.69</home>
          </container>
          <!--       -->
          <configuration>
            <!--   ,existing:   -->
            <type>existing</type>
            <!-- Tomcat   , catalina.home -->
            <home>C:\work\servers\apache-tomcat-7.0.69</home>
          </configuration>
          <deployables>  <!--      -->
            <deployable>  <!--    War    -->
              <groupId>cn.com.mvnbook.demo</groupId>
              <artifactId>MvnDemo02</artifactId>
              <type>war</type>
              <properties>
                <context>MvnDemo02</context>  <!--      -->
              </properties>
            </deployable>
          </deployables>
          <deployer>    <!--      -->
            <type>installed</type>    <!--    -->
          </deployer>
        </configuration>
        <executions>
          <!--       -->
          <execution>
            <id>verify-deployer</id>
            <phase>install</phase>   <!--   install -->
            <goals>
              <goal>deployer-deploy</goal>
            </goals>
          </execution>
          <execution>
            <id>clean-deployer</id>
            <phase>clean</phase>
            <goals>
              <goal>deployer-undeploy</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
          <compilerArguments>
            <endorseddirs>${endorsed.dir}</endorseddirs>
          </compilerArguments>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.1</version>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <outputDirectory>${endorsed.dir}</outputDirectory>
              <silent>true</silent>
              <artifactItems>
                <artifactItem>
                  <groupId>javax</groupId>
                  <artifactId>javaee-endorsed-api</artifactId>
                  <version>6.0</version>
                  <type>jar</type>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <finalName>MvnDemo02</finalName>
  </build>
</project>
'프로젝트'를 오른쪽 클릭 하고 Run As→Maven install 명령 을 선택 하면 Tomcat 7 의 발표 디 렉 터 리 에서 MvnDemo 02.war 를 발견 할 수 있 습 니 다.시작 하면 자동 으로 발표 되 고 접근 할 수 있 습 니 다.
테스트
앞의 어떤 방식 이 든 서버 를 시작 한 후 브 라 우 저 를 열 고 입력 합 니 다.http://localhost:8080/MvnDemo02/index.jsp 링크 후 테스트 를 진행 할 수 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기