Maven项目创建步骤:
new一个新项目:本文档叙述使用自带框架:(如下图)
生成后的目录:
生成后的pom.xml:
创建Maven项目格式:
注意:Sourcefolder是存放源文件的文件夹Sourcefolder
http://www.cnblogs.com/slowly-keeping/archive/2012/04/23/2466054.html
package:当你在建立一个package时,它自动建立到sourcefolder下,也只能建立在这个目录之下.
sourcefolder:存放java源代码的文件夹,当然也包括一些package文件夹,还可以包含其他文件.?项目构建后,sourcefolder里面的java自动编译成class文件到相应的/web-inf/classes文件夹中,其他文件也会移到/web-inf/classes相应的目录下.
package和sourceFolder比较
相同之处:package下除了java文件也可以包含其他文件,而且编译、打包后的文件路径与sourcefolder下的文件路径有一样规则
不同之处:1.sourceFolder靠"/"来进行上下级划分,package靠“.”来进行上下级划分。
?2.sourcefolder下能建package,而package下不能建sourcefolder
?3.java文件中的package属性是按package路径来进行赋值的,sourcefolder路径不参与java文件的
package属性赋值,再由第二条不同得到结论,所有sourcefolder下的java文件package属性都为空。
folder:里面可以放入任何文件.包括java源文件,jar文件,其他文件(例如,图片,声音等).在此我说明一下,
如果里面含有java源文件,不管程序是否正确,eclipse都不会报错,把它们当做普通文件处理.但是项目如果
要使用这里面的文件,情况就不同了.
package,sourcefolder,folder之间相互转换
package转成folder显示:选中package,buildpath->Exclude
folder转成package显示:选中folder,buildpath->Include
package转成sourcefolder显示:选中package,buildpath->UseasSourcefolder
sourcefolder转成package显示:选中folder,buildpath->RemovefromBuildPath
注意:src/main/java,src/main/resources,src/test/java,src/test/resources更改class路径
更改
把项目变成DynamicWeb项目?
启动tomcat后运行
设置部署程序集(WebDeploymentAssembly)
此处列表是,部署项目时,文件发布的路径。
(1)我们删除test的两项,因为test是测试使用,并不需要部署。
(2)设置将Maven的jar包发布到lib下。
构建框架在pom.xml中添加所需要的jar包
1)将jsf包全部添加进来junit、jstljar包
或者点击pom.xml直接编辑pom.xml文件,这样可以直接copy过来dependencies内容;
发布:启动工程
右键:RunAs->Maveninstall
访问页面404问题:
当eclipse发布到tomcat时,tomcat下没有jsp文件:
maven自动部署到tomcat的问题(指自动部署到服务器)
配置Tomcat访问权限
要打开tomcat的manager功能在conf文件夹下的tomcat-users.xml的标签内添加如下内容
????????????????????????????????
Maven添加jar包
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.zx.cn
springMVC
war
0.0.1-SNAPSHOT
springMVCMavenWebapp
http://maven.apache.org
junit
junit
3.8.1
test
org.springframework
spring-webmvc
4.1.4.RELEASE
jar
org.aspectj
aspectjweaver
1.7.4
commons-io
commons-io
20030203.000550
commons-logging
commons-logging
1.2
com.alibaba
dubbo
2.5.4-SNAPSHOT
javassist
javassist
3.10.0.GA
org.slf4j
jcl-over-slf4j
1.7.8
mysql
mysql-connector-java
5.1.29
org.springframework
spring-expression
4.1.6.RELEASE
org.springframework
spring-web
4.1.4.RELEASE
jar
org.springframework.web
servlet
3.0.5.RELEASE
pom.lastUpdated
org.slf4j
slf4j-api
1.7.8
org.slf4j
slf4j-log4j12
1.7.5
org.springframework
spring-aop
4.1.6.RELEASE
org.springframework
spring-context
4.1.6.RELEASE
org.springframework
spring-jdbc
4.1.4.RELEASE
jar
org.springframework
spring-test
4.1.4.RELEASE
jar
org.springframework
spring-tx
4.1.6.RELEASE
com.github.sgroschupf
zkclient
0.1
org.apache.zookeeper
zookeeper
3.4.3
jar
io.netty
netty
3.5.2.Final
jar
log4j
log4j
1.2.17
jar
com.sun.jmx
jmxri
com.sun.jdmk
jmxtools
javax.jms
jms
javax.servlet
javax.servlet-api
3.1.0
springMVC
大约这么多jar包
Maven中log4j的jar问题原因是log4j在1.2.15及以上版本更换了协议,与jms冲突。解决办法有两种:一是使用1.2.14版本,二是手动下载jms.jar,安装到maven本地仓库中去
注意:type类型是jar,版本问题,还有就是是否重复引用了包。
这个问题是:因为web.xml中的配置spring核心servlet中的名称不是项目名称锁报的错误
mybatisgeneratoreclipse插件的安装(自动创建代码)(顺序自行安排)
下载MyBatisGenerator解压包,里面有两个文件夹:将此两个文件夹放到eclipse的安装根目录上覆盖原先的文件即可。
重启eclipse:右击->new->orther如图:classPathEntry????location:驱动地址,放入数据库对应的jdbc驱动jar路径(绝对路径)
jdbcConnection??driverClass:驱动类(如oracle.jdbc.driver.OracleDriver),connectionURL:jdbc链接串(如jdbc:oracle:thin:@192.168.1.188:1521:xxx"),userId:数据用户名,password:数据库密码
javaModelGenerator?targetPackage:生成的pojo放入的包,targetProject:生成的pojo放入的项目(对应工作空间的项目)
sqlMapGenerator??targetPackage=生成的sql对应的包?targetProject:生成的sql接口对应的项目
javaClientGenerator?targetPackage:生成的dao接口对应的包?targetProject:生成的dao接口对应的项目?type:映射文件类型,一般为XMLMAPPER
table:tableName:需要生成的表名,domainObjectName:生成的pojo名,为空则对应数据库表名
org.springframework
spring-webmvc
3.0.5.RELEASE
springMVC在初始化的时候,会去找-servlet.xml这个结尾文件。(这是他的规则)这个文件必须放在WEB-INF目录下
在web.xml中配置spring项目必须要加载spring配置文件
WEB.XML:
dispatcher
org.springframework.web.servlet.DispatcherServlet
加载/WEB-INF/spring-mvc/目录下的所有XML作为SpringMVC的配置文件
contextConfigLocation
/WEB-INF/spring-mvc/.xml
1
org.springframework.web.context.ContextLoaderListener
spring
org.springframework.web.servlet.DispatcherServlet
1
整个web.xml配置
SpringMVC
index.jsp
dispatcher
org.springframework.web.servlet.DispatcherServlet
加载/com/mvc/res/目录下的所有XML作为SpringMVC的配置文件
contextConfigLocation
classpath:/com/mvc/res/Spring-.xml
1
org.springframework.web.context.ContextLoaderListener
springMVC
org.springframework.web.servlet.DispatcherServlet
1
springMVC
/
springMVCXML配置
配置
新建class文件
测试证明,此处的包路径要与pom.xml中的一致,才能正常创建文件夹!
Maven测试
右击pom.Xml选择RunAs->Maventest
报此错的原因是:junit版本太低的原因!将version版本改成4.9版本即可!
再次运行即可成功了!
右击pom.Xml选择RunAs->install(打包运行)
Maven命令
Process-resources:复制主资源文件到主输出目录
Compile:编译主代码到主输出目录
Process-test-resources:复制测试资源文件到测试输出目录
Test-compile:编译测试代码到测试输出目录
Test:执行测试用例
Package:创建项目jar包
Install: 将项目输出构件安装到本地仓库
Deploy:将项目输出构件部署到远程仓库
普通项目导入Maven项目报错
解决方案:
原因是使用的普通的导入工程的问题,改为Maven项目导入
Maven项目改造成非maven项目
创建maven子项目:
packagecom.zz.com.test123;
importjavax.servlet.ServletContext;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpSession;
/
ServletimplementationclasshelloServler
/
publicclassHelloServlerextendsHttpServlet{
publicvoidshow(HttpServletRequestrequest){
System.out.println("show");
HttpSessionsession1=request.getSession();
ServletContextContext=session1.getServletContext();
ServletContextContext1=Context.getContext("/TestManger");
if(Context1!=null&&!Context1.equals("")){
HttpSessionsess=(HttpSession)Context1.getAttribute("session");
System.out.println(sess.getAttribute("userName"));
System.out.println(sess.getAttribute("passWord"));
}
}
}
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.zz.com
test123
0.0.1-SNAPSHOT
jar
test123
http://maven.apache.org
UTF-8
junit
junit
3.8.1
test
javax.servlet
servlet-api
2.5
创建maven主项目:
选取web项目:
将maven项目构建后,添加src/main/java等四个文件包(处于规范)
Jsp页面:
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"
+request.getServerName()+":"+request.getServerPort()
+path+"/";
%>
登陆页面
实现方法:
importjava.io.IOException;
importjavax.servlet.ServletContext;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.zz.com.test123.HelloServler;
/
ServletimplementationclasshelloServler
/
publicclassHelloTestextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
/
@seeHttpServlet#HttpServlet()
/
publicHelloTest(){
super();
//TODOAuto-generatedconstructorstub
}
/
@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)
/
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
System.out.println("doGet");
}
/
@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
/
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//
System.out.println("123");
response.setContentType("text/html;charset=GB2312");
StringuserName=request.getParameter("userName");
StringpassWord=request.getParameter("passWord");
System.out.println("userName="+userName+"passWord="+passWord);
request.getSession().setAttribute("userName",userName);
request.getSession().setAttribute("passWord",passWord);
ServletContextContextA=request.getSession().getServletContext();
ContextA.setAttribute("session",request.getSession());
HelloServlerh=newHelloServler();
h.show(request);
}
}
Pom.xml配置文件:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.zz.com
TestManger
war
0.0.1-SNAPSHOT
TestMangerMavenWebapp
http://maven.apache.org
com.zz.com
test123
0.0.1-SNAPSHOT
junit
junit
3.8.1
test
javax.servlet
servlet-api
2.5
TestManger
Web.xml
TestManger
login.jsp
HelloTest
HelloTest
HelloTest
HelloTest
.do
改造后的非maven项目:
将pom.xml去掉,将jar包放到WebContent下的WEB-INF的lib包下(新建lib包)将之前的web.xml跟jsp都放进此处。(tomcat的默认路径)
若没有tomcat的配置,要自行添加:
|
|