1. 程式人生 > >Eclipse4.2+Tomcat7+Maven3+Servlet3.0 J2EE工程配置說明

Eclipse4.2+Tomcat7+Maven3+Servlet3.0 J2EE工程配置說明

OneCoder準備自己慢慢寫點東西,把離散的知識點彙總一下。給出的版本沒什麼特別的含義,只是OneCoder目前使用的環境而已。 <ul> <li> IDE:Eclipse4.2 JUNO。</li> <li> 應用伺服器:Tomcat7.0.30(Servlet3.0)</li> <li> 專案構建工具: Maven 3.0.4</li> <li> JDK版本:1.7.07</li> <li> 日誌元件:logback最新版</li> <li> 單元測試框架:Junit</li> </ul> <div> 為什麼都用最新版本?因為

OneCoder是個新版控呵呵。</div> <div> 為了以後管理方便,先建一個全域性的parent工程,統一控制jar包依賴的版本。然後新建一個Maven管理的Web工程,parent指定為onecoder-parent工程。</div>

Parent 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>onecoder-parent</groupId> <artifactId>onecoder-parent</artifactId> <version>0.1</version> <packaging>pom</packaging> <properties>
<logback.version>1.0.7</logback.version> <slf4j.version>1.7.1</slf4j.version> <junit.version>4.10</junit.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> </dependencies> </dependencyManagement> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <verbose>true</verbose> <fork>true</fork> <executable>${JAVA_HOME}/bin/javac</executable> <compilerVersion>1.7</compilerVersion> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.7.2</version> </plugin> </plugins> </pluginManagement> </build> </project>

logback的簡要配置:

<configuration>  
  <appender name="console" class="ch.qos.logback.core.ConsoleAppender">  
    <encoder  class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">  
      <pattern>%d{yyyy/MM/dd-HH:mm:ss} %level [%thread] %C - %msg%n</pattern>  
    </encoder >  
  </appender>  
  
  <root level="INFO">  
    <appender-ref ref="console" />  
  </root>  
</configuration>  

扔到src/main/resources下。

如果你此時不知所措,不放直接扔到Tomcat下啟動一下,看報什麼錯,就知道缺什麼了。解決錯誤的過程,可以學到很多東西。

接下來應該寫Servlet了。Servlet3.0的一大亮點就是支援註解配置。所以你會發現沒有了web.xml配置檔案。Servlet寫起來也很簡單。

/**
 * Servlet3.0 Servlet使用樣例
 * @author lihzh
 * @alia OneCoder
 * @blog http://www.coderli.com
 */
@WebServlet(name = "FirstServlet", urlPatterns = { "/firstservlet"})
public class FirstServlet extends HttpServlet {

	private static final long serialVersionUID = 3038754482452604279L;
	private static final Logger log = LoggerFactory.getLogger(FirstServlet.class);

        @Override
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		PrintWriter out = response.getWriter();
		log.info("This is log");
		out.println("hello,world...");
		out.close();
	}
}
一個簡單的Servlet就寫好了。

執行一下?等等。我們知道一個web工程執行時依賴的jar包是需要放到WEB-INF/lib下的,這裡明顯看到lib下空的,並且我們的jar包是通過Maven管理的,難道要手動拷貝過去嗎?OneCoder以前還真幹過這樣的啥事,甚至還自己開發了指令碼,做所謂的“一鍵自動化”工作。其實Eclipse裡已經幫你做好了。在工程的Properties配置項裡的Deployment Assembly配置裡,配好Maven的依賴和部署即可,如圖:

此時再執行一下,log正常輸出,說明jar依賴過來了,一切都ok了。 剩下的就是你想用什麼框架就引入什麼了。OneCoder會一遍配置,一遍簡要的說明一下。