Javaweb項目框架搭建-准備篇


前言
Java從大二開始學習到現在大四也有差不多兩年了,但是由於之前一直在玩,沒有認真學過,直到現在才開始重新學習。也是很湊巧,看到了黃勇老師的《架構探險》,於是便開始學習寫Java Web框架。

1.開發工具
《架構探險》書中提到說IntelliJ IDEA(簡稱IDEA)是業界最牛的Java開發工具,但是它有兩個版本,一個社區版不花錢,屬於開源的個人版,但是功能不全面,另一個是完全版,屬於收費的企業版,功能全面。於是我本着要用就用最好的的宗旨,毅然下載了收費版的,在安裝過程中也發現了這款開發工具的一個小Bug,因為這個工具收費版有30天的試用期,我們可以在安裝之前把電腦系統時間修改到推后半年,比如現在是2016年12月,我們可以改成2017年6月,這樣安裝完成后它的試用期就會到2017年7月,之后先關閉軟件再把系統時間改回來就OK了,它的試用期依然是2017年7月。

之后的安裝過程就比較簡單了,提醒一點的是,最好不要改的太多,推后的時間在一年之內,超過一年安裝會有報錯。

2.做一個小項目
在開始正式工作之前,先做一個Hello World(好像所有開發都離不開這一步)。一是熟悉一下Maven,二是復習一下Servlet和JSP。開始!!!

1.創建一個Maven的項目
Maven 是一個項目管理和構建自動化工具。不過對於程序員而言,更看重它的項目構建功能。但是對於使用IDEA作為開發工具,也不用單獨下載、配置Maven,因為IDEA默認將其整合了。使用IDEA創建Maven項目很簡單:
  a.點擊右上角工具欄的File/New/Project。
  b.在彈出框選擇Maven,然后Next。
  c.在接下來的窗口中,這三個是必填的,很重要的東西。GroupId建議為網站域名的倒排方式,確保唯一性,類似於Java的包名;ArtifactId是模塊名稱,這個自行起名。
  d.繼續Next,輸入Project name,然后Finish。
到此,Maven項目就創建完成了。

2.配置Maven
打開Maven配置文件pom.xml,之后進行一系列的配置,配置完成后的樣子:

<?xml version="1.0" encoding="UTF-8"?>
<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>org.smart4j</groupId>    
   <artifactId>chapter1</artifactId>    
   <version>1.0.0</version>
   <properties>    
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
   <build>    
     <plugins>        
       <!-- Compile -->        
       <plugin>            
          <groupId>org.apache.maven.plugins</groupId>            
          <artifactId> maven-compiler-plugin</artifactId>            
          <version>3.3</version>            
          <configuration>                
            <source>1.8</source>                
            <target>1.8</target>            
          </configuration>        
       </plugin>        
       <!-- Test -->        
       <plugin>            
         <groupId>org.apache.maven.plugins</groupId>             
         <artifactId>maven-surefire-plugin</artifactId>            
         <version>2.18.1</version>            
         <configuration>                
           <skipTests>true</skipTests>            
         </configuration>        
       </plugin>        
       <!-- Tomcat -->        
       <plugin>            
         <groupId>org.apache.tomcat.maven</groupId>            
         <artifactId>tomcat7-maven-plugin</artifactId>             
         <version>2.2</version>            
         <configuration>                
            <path>/${project.artifactId}</path>            
         </configuration>        
       </plugin>    
     </plugins>
   </build>

   <packaging>war</packaging>  
  
   <dependencies>        
     <!-- Servlet -->        
     <dependency>            
       <groupId>javax.servlet</groupId>            
       <artifactId>javax.servlet-api</artifactId>            
       <version>3.1.0</version>            
       <scope>provided</scope>        
     </dependency>        
     <!-- JSP -->        
     <dependency>            
       <groupId>javax.servlet.jsp</groupId>            
       <artifactId>jsp-api</artifactId>            
       <version>2.2</version>            
       <scope>provided</scope>        
     </dependency>        
     <!-- JSTL -->        
     <dependency>            
       <groupId>javax.servlet</groupId>            
       <artifactId>jstl</artifactId>            
       <version>1.2</version>            
       <scope>runtime</scope>        
     </dependency>    
   </dependencies>  
</project>

首先是配置編碼格式為UTF-8:

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>

然后配置JDK為1.8(這個看個人,因為我電腦里JDK版本為1.8)和Tomcat為7:

<build>    
   <plugins>        
   <!-- Compile -->        
   <plugin>            
      <groupId>org.apache.maven.plugins</groupId>            
      <artifactId> maven-compiler-plugin</artifactId>            
      <version>3.3</version>            
      <configuration>                
         <source>1.8</source>                
         <target>1.8</target>            
         </configuration>        
   </plugin>        
   <!-- Test -->        
   <plugin>            
      <groupId>org.apache.maven.plugins</groupId>             
      <artifactId>maven-surefire-plugin</artifactId>            
      <version>2.18.1</version>            
      <configuration>                
         <skipTests>true</skipTests>            
      </configuration>        
   </plugin>        
   <!-- Tomcat -->        
   <plugin>            
      <groupId>org.apache.tomcat.maven</groupId>            
      <artifactId>tomcat7-maven-plugin</artifactId>             
      <version>2.2</version>            
      <configuration>                
         <path>/${project.artifactId}</path>            
      </configuration>        
   </plugin>    
 </plugins>
</build>

再然后配置打包類型為war包:

<packaging>war</packaging>

最后配置Servlet、JSP、JSTL(Maven三坐標必須提供,之后的Servlet和JSP因為Tomcat自帶有相應的jar包,故scope設置為provided;而JSTL是在運行時需要,編譯時不需要,故scope設置為runtime):

<dependencies>        
   <!-- Servlet -->        
   <dependency>            
      <groupId>javax.servlet</groupId>            
      <artifactId>javax.servlet-api</artifactId>            
      <version>3.1.0</version>            
      <scope>provided</scope>        
   </dependency>        
   <!-- JSP -->        
   <dependency>            
      <groupId>javax.servlet.jsp</groupId>            
      <artifactId>jsp-api</artifactId>            
      <version>2.2</version>            
      <scope>provided</scope>        
   </dependency>        
   <!-- JSTL -->        
   <dependency>            
      <groupId>javax.servlet</groupId>            
      <artifactId>jstl</artifactId>            
      <version>1.2</version>            
      <scope>runtime</scope>        
   </dependency>    
</dependencies>

到此,Maven的配置也完成了(確實比Eclipse之類的配置簡單的多)。

3.轉換為Java Web項目
只需3步,輕松搞定,
a.在main目錄下新建webapp目錄。
b.在webapp目錄下新建WEB-INF目錄。
c.在WEB-INF目錄下新建web.xml。
此時,屏幕右下角會有個提示:

那么表示,web項目已經創建完成。

4.編寫Servlet類和JSP頁面
在main目錄下的java目錄下新建包,包名,然后新建一個Servlet(HelloServlet),該Servlet負責頁面跳轉,並且將當前時間轉換為標准格式傳遞到頁面當中。(在這里有一點,我照着黃勇老師的步驟在Servlet頁面跳轉時候的路徑是"/WEB-INF/jsp/hello.jsp",但是頁面一直報錯提示404,后來我查找資料才找到,頁面不能寫在"/WEB-INF"目錄下,於是改成下面這個樣子就可以顯示了):

package org.smart4j.chapter1;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet{    
      @Override    
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        
       DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        
       String currentTime = dateFormat.format(new Date());        
       req.setAttribute("currentTime", currentTime);        
       req.getRequestDispatcher("/jsp/hello.jsp").forward(req, resp);   
   }
}

之后新建一個負責顯示的JSP頁面,該頁面接收Servlet傳遞過來的參數並通過JSTL表達式顯示:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
 <head>
  <title>Hello</title>
 </head>
 <body>
  <h1>Hello!</h1>
  <h2>當前時間為:${currentTime}</h2>
 </body>
</html>

5.配置Tomcat
寫好頁面和Servlet之后就需要配置一個服務器,把寫的東西在可以展示出來。在這里肯定是要配置Tomcat服務器了:
  a.點擊右上角工具欄中的“Edit Configurations...”(這是一個下拉框)。
  b.點擊左上角的“+”按鈕,選擇“Tomcat Server/Local”。
  c.Name自己起個名字,然后去掉勾選的After launch。
  d.點擊Application server右邊的“Configure...”按鈕,配置Tomcat(這個會自動幫你尋找你電腦上的Tomcat)。
  e.切換到Deployment選項卡,點擊右側“+”按鈕,選擇“Artifact...”選項,在彈出框中選擇“項目名:war exploded”,點擊OK,然后在Application context中輸入項目名。
  f.切換回Server選項卡,在On frame deactivation下拉框選擇“Update resources”選項,點擊OK。
到此,Tomcat配置完成。

6.上傳到git
我照着書上的方法上傳時候一直提示錯誤:“fatal: The current branch master has no upstream branch.”。后來我又重新從git上先clone下來,然后把倉庫導入項目根目錄下 之后才正常提交,可能是我操作有問題,但是我也一直沒有找到問題在哪兒,只好用最笨的方法了。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM