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>
為什麼都用最新版本?因為
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會一遍配置,一遍簡要的說明一下。