摘要: 用intellij idea創(chuàng)建web項目時常用無模板和有模板創(chuàng)建
<一>不選擇任何maven模板創(chuàng)建web項目
- Create New Project或者File->New->Project,如圖:
- 點擊maven,(不用選擇Create from archetype,因為此處講解不使用maven模板創(chuàng)建web項目),點擊next,如圖:
- 填寫GroupId和ArtifactId,點擊next,如圖:
- 填寫項目名稱,點擊Finish,如圖:
- 此時的目錄結構如圖所示:可以看到這里只創(chuàng)建了java的文件目錄,沒有創(chuàng)建web的文件目錄。
- idea會有一個提示,自動引入,點擊它:
- 部署項目,F(xiàn)ile->Project Structure或點擊如圖所示的圖標:
- 設置SDK,選擇自己電腦上安裝的SDK版本。設置Project compiler output,通常選擇默認,這里是編譯后的文件目錄,如圖:
- 點擊Modules,可以看到這里沒有任何模板服務,在這里創(chuàng)建一個web服務,點擊+,選擇web
- 設置webapp。雙擊Web Resource Directory,在彈出的窗口路徑中選擇src\main,然后在后面添加\webapp,點擊ok。如圖:
- 給web文件目錄設置web.xml,如圖:
- 設置好后點擊應用:
- 添加tomcat依賴,如圖所示:
- 在彈出的窗口中選擇tomcat,點擊添加,如圖所示:
- 點擊Artifacts,這里設置當前項目發(fā)布信息。點擊+,選擇From Modules...在彈出的窗口中點擊ok,
- 如圖所示,點擊應用
- 當前目錄如圖所示,多了webapp:
- 設置tomcat:點擊如圖所示圖標:
- 點擊+,選擇Tomcat Server ->Local.如圖:
- 如圖所示,第一次進入會隱藏熱部署設置,需要下次進來設置。
- 選擇Deployment->+->Artifact.如圖;
- 如圖所示,這里我使用默認:
- 現(xiàn)在反回Server,如圖在On frame deactivation中選擇Update classes and resources;設置熱部署
- 點擊應用或,ok。
- 在webapp下面新建index.jsp頁面,如圖;
- 在web.xml中添加歡迎節(jié)點,如圖:
- 啟動程序,如圖所示;
- 成功后,瀏覽器輸出hello Word,如圖:
- ok,到這里,web項目設置完成。最終目錄結構如圖:
- (二)選中maven中web模板創(chuàng)建文項目
- Create New Project或者File->New->Project,如圖:
- 勾上Create frome archetype,選擇maven-archetype-webapp模板,點擊下一步,如圖:
- 填寫GroupId和ArtifactId,如圖所示:
- 選擇中央倉庫的地址,點擊+,添加一個Add Maven Property屬性,
這里在Properties中添加一個參數(shù)archetypeCatalog=internal ,不加這個參數(shù),在maven生成骨架的時候將會非常慢,有時候會直接卡住。 來自網(wǎng)上的解釋:archetypeCatalog表示插件使用的archetype元數(shù)據(jù),不加這個參數(shù)時默認為remote,local,即中央倉庫archetype元數(shù)據(jù),由于中央倉庫的archetype太多了,所以導致很慢,指定internal來表示僅使用內(nèi)部元數(shù)據(jù)。如圖:
-
填寫項目名稱,點擊finish,如圖所示:
-
-
idea為我們創(chuàng)建好的目錄結構如圖所示:少java文件:
-
啟動java web,打開project structure,如圖所示:
-
-
選擇Project,Project SDK是java jdk安裝選擇,Project language level是選擇語言版本,Project compileroutput 是編譯后的文件目錄,這里我們的使用默認,你也可以根據(jù)需要填寫。如圖
-
選擇Facets,點擊+,選擇web,如圖所示:
-
在彈出的窗口中選擇項目,點擊ok,如圖所示;
-
設置web.xml文件目錄,按如圖所示的步驟選擇,如圖所示:
-
選擇Web Resource 目錄,按如圖所示的步驟選擇,如圖:
-
選擇Artifacts,點擊+,選擇Frome Madules....,在彈出的窗口中選擇ok,點擊Apply。如圖所示:
-
添加java文件目錄,因為maven模板創(chuàng)建的web項目中少java文件目錄,所以要自己創(chuàng)建,回到Module->選擇項目名->Sources->main右擊->New Folder...,在彈出的文件夾中填寫java點擊ok如圖所示:
-
將剛才新建的普通java文件夾變?yōu)镾ources文件夾,點擊Apply,再點擊ok。如圖所示步驟:
-
當集成項目,項目中引入jar包時,啟動項目如果報下面的錯誤,表明找不到jar包,我們要手動建立lib來放jar包。
-
03-Dec-2016 09:37:44.044 SEVERE [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:520)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:501)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4649)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1702)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:482)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:431)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
03-Dec-2016 09:37:44.045 SEVERE [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Skipped installing application listeners due to previous error(s) 手動新建lib:
-
在WEB-INF下面新建一個lib目錄,如圖;
-
-
根據(jù)如圖所示的步驟找到剛才所建立的lib目錄,如圖:
-
-
找到lib后在彈出的框中選擇Jar Directory點擊ok,如圖
-
-
進入Artifacts,選中右邊項目中的jar包,右擊選擇Put /WEB-INF/lib,ok,如圖
-
-
打開“Edit Configurations”,如圖所示:
-
-
按照如圖所示步驟進行選擇,如圖:
-
-
選擇Deployment->+->Artifact....,點擊應用,如圖所示:
-
-
進行熱部署,選擇server->On frame deactiveation中選擇->Update classes and resources,點擊應用,點擊ok。如圖:
-
-
點擊啟動程序,如圖所示,web項目搭建成功:
-
-
最終的目錄結構如圖所示:
-
|