Java web项目

前言

本文目标:使用eclipse为IDE环境搭建一个基于maven的web项目,讲解搭建过程,项目结构,程序运行、调试和测试过程,并使用maven作为持续集成工具。

?
?

面向对象:转型java的.net开发人员

?
?

知识点:eclipse,maven,jfinal,jetty,tomcat,junit

?
?

环境准备

Maven

  1. 安装maven-3.3.9, 建议3.0+版本
  2. 检查安装版本,命令行输入: mvn -version

?
?

?
?

?
?

Tomcat

  1. 下载tomcat-v7,解压到本地。

?
?

Eclipse

  1. 安装eclipse-neon版本。请确保安装了图示中的插件。

    ?
    ?

  2. 配置maven

    ?
    ?

  3. 配置server

?
?

?
?

?
?

?
?

创建项目

使用eclipse创建基于maven的web项目

使用maven在命令行创建web项目

?
?

  1. 创建web项目:

    1. 执行命令: mvn archetype:generate,控制台显示如下消息后将无反应(原因:mvn尝试列出服务器所有的项目模板,类型太多且访问maven仓库太慢导致,为什么太慢?你懂的,防火长城)

      ?
      ?

      ?
      ?

    2. 添加参数使mvn只列出本机的模板:-DarchetypeCatalog=internal
    3. 模板还是很多,建议增加参数,例如要创建web项目,可用参数 -Dfilter=web
    4. 确定了模板类型后,可直接在参数指定模板:-DarchetypeArtifactId=maven-archetype-webapp
    5. mvn默认使用交互模式,可参数指定为非交互模式:-DinteractiveMode=false
    6. 创建网站项目(包名com.demo,项目名websample)的完整命令:mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.demo -DartifactId=websample -DinteractiveMode=false -DarchetypeCatalog=internal

      ?
      ?

      ?
      ?

    7. 查看编译、测试、打包效果,命令: mvn compile test package
    8. 生成eclipse项目的相关文件(.project,.classpath),

      1. 进入项目目录,命令:cd websample
      2. 执行命令:mvn eclipse:eclipse
    9. 其他

      1. 网上案例大多没有没有设置参数 -DarcheypeCatalog,由于国情原因,基本都卡在了 a)。
      2. 即使指定了模板也要设置 -DarchetypeCatalog参数,否则还是卡在a)。

eclipse中打开项目

eclipse中导入maven项目

maven生成项目文件后导入

  1. 生成eclipse项目的相关文件(.project,.classpath),

    1. 进入项目目录,命令:cd websample
    2. 执行命令:mvn eclipse:eclipse
  2. eclipse中导入

    ?
    ?

    ?
    ?

  3. 编译错误处理, Makers窗口提示错误

    1. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

      解决方法:

      1. Right Click on Project
      2. Select Properties
      3. Select Project Facets
      4. Select Apache Tomcat as Runtime server
      5. Click OK

注意事项

  1. 导入项目(java世界叫构件)名称不能和工作区中已有构件同名。(pom.xml中的artifactId节点值)

?
?

源码开发

参考JFinal手册添加MVC结构的源码。

  1. 修改项目编译输出目录到src/main/webapp/WEB-INF/classes(maven默认是target/classes)
  2. 修改pom.xml文件,添加依赖。
  3. 修改web.xml文件,指定过滤器。
  4. 添加java文件

    1. 创建java文件夹(maven结构中源码位置为src/main/java)。
    2. 添加配置文件,DemoConfig.java文件,继承JFinalConfig。
    3. 添加控制器文件,HelloController.java文件。

?
?

运行调试

JFinal手册中有2种运行方式

  1. App运行【Java Application】

    1. 该方式依赖jetty,一种轻量级、嵌入式的servle容器。
  2. 部署到server运行【Run on Server】

    1. 建议直接使用tomcat目录配置,注意修改端口不要被占用导致无法启动

?
?

?
?

JFinal测试扩展jfinal-ext

  1. 该扩展不支持jfinal-2.1+,该版本重构中修改了logger类,其他不兼容未知。
  2. 开源软件的升级兼容性很差

?
?

使用junit编写单元测试

Junit3 vs Junit4

  • maven模板创建项目中默认依赖junit3
  • eclipse默认的单元测试插件使用junit4
  • Junit3.8对测试代码的要求

    • public的。
    • void的。
    • 无方法参数。
    • 方法名称必须以test开头
  • 两者使用上区别很大,v4采用了更简洁Annotation特性(java5)简化测试代码

添加测试代码

Junit3测试代码

import junit.framework.TestCase;

import static org.junit.Assert.*;

public class AddOperationTest extends TestCase{

public void setUp() throws Exception {

}

public void tearDown() throws Exception {

}

public void testAdd() {assertEquals(expResult, result);}

}

Junit4测试代码

import junit.framework.TestCase;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import static org.junit.Assert.*;

public class AddOperationTest extends TestCase{

@before

public void setUp() throws Exception {}

@after

public void tearDown() throws Exception {}

@test

public void testAdd() {assertEquals(expResult, result);}

}

?
?

maven中的单元测试,

  1. 命令: mvn test

?
?

eclipse中的单元测试

  1. 上述步骤中修改了Java Build Path的默认输出文件夹为src/main/webapp/WEB-INF/classes,此处需要对test源码目录做修改,使其输出到target/test-classes,保持和maven中一致

    ?
    ?

    ?
    ?

  2. 新建配置文件
  3. 修改classpath,否则运行单元测试时会提示:Eclipse - java.lang.ClassNotFoundException

    1. Open your run configurations
    2. Click on the jUnit-Test you want to start
    3. go to the classpath tab
    4. Try to add a folder (click on user entries, click on advanced, click on add folders, click on ok and search the outputfolder for your test classes(those you find under projektproperties java build path, source))

    ?
    ?

    ?
    ?

web程序打包

  1. 命令:
    mvn package
  2. 上述命令将target/目录下输出websample.war及websample文件夹。
  3. websample.war包含了项目所需的所有文件

?
?

持续集成

持续集成实践

  • 只维护一个源码仓库
  • 自动化构建
  • 让构建自行测试
  • 每人每天向主干提交代码
  • 每次提交都应在持续集成机器上构建主干
  • 保持快速的构建
  • 在模拟生产环境中测试
  • 让每个人都能轻易获得最新的可执行文件
  • 每个人都能看到进度
  • 自动化部署

?
?

扩展阅读

maven与eclipse的关系

?
?

?
?

?
?

参考资料

  1. Creating Simple Web Application Using Apache Maven
  2. 如何用Maven创建web项目(具体步骤)
  3. 将 Maven生成的java项目转化为支持 Eclipse IDE的项目
  4. 在 Eclipse 中利用 Maven
  5. 基于Maven的持续集成实践
  6. JUnit4 详解
时间: 2024-12-18 14:12:38

Java web项目的相关文章

在java web项目中集成webservice

公司要求在项目中加入webservice服务,因为项目中使用了spring框架,所以在这里使用与spring兼容性较好的cxf来实现 cxf所需jar包 spring的jar包就不贴了 一:创建webservice服务器 1)创建一个服务接口 package com.service; import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface IHelloWorld { public S

Java Web项目中缺少Java EE 6 Libraries怎么添加

具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build Path-->Java Build Path" 2.单击"Add Library..." 3.选择"User Library",单击"Next" 4.单击"User Libraries...",选择需要的Java EE 6 Libraries Java Web项目中缺少Java EE 6

使用InteIIiJ IDEA开发Java web 项目

1.介绍 IntelliJ IDEA是一款非常强大的集成开发环境,基本上可以做任何事情,它的强大大大降低了我们的工作量,提高了工作效率.那么它如何开发Java web呢?下面就为大家介绍使用IntelliJ IDEA开发Java web. 首先去官网下载安装包:http://www.jetbrains.com/idea 它有两个版本Ultimate(收费)和Community(免费),作者选择的是Ultimate 2.安装 点击下载即可,然后开始安装,一直Next就可以了,途中可以选择创建一个6

基于IBM Bluemix部署Java Web项目实战演练

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要介绍了IBM Bluemix,并详细说明了如何部署Java Web项目,如何添加MySql服务.最后,提出了自己的一些看法.  文章目录 一.Bluemix简单介绍 二.BlueMix空间申请试用 三.BlueMix创建Cloud Foundry应用 四.添加新的服务 五.总结 一.Bluemix 简单介绍 1.Bluemix 带来了什么        Bluemix 致力于解

IntelliJ IDEA 14.x 与 Tomcat 集成,创建并运行Java Web项目

创建Web项目 1.File -> New Project ,进入创建项目窗口 2.在 WEB-INF 目录下点击右键,New -> Directory,创建 classes 和 lib 两个目录 3.File -> Project Structure,进入 Project Structure窗口 4.点击 Modules -> 选中项目“JavaWeb” -> 切换到 Paths 选项卡 -> 勾选 “Use module compile output path”,将

java web项目,java类中获得WEB-INF路径

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 private static String getWebInfPath() {         URL url = 当前类.class.getProtectionDomain().getCodeSource().getLocation();         String path = url.toString();         int index = pat

一个简单的java web 项目

本文实现一个简单的 java web 项目,包括以下5个功能: 1. 登录 用户默认主页index.jsp , 可选择登录功能,输入用户名和密码,若登录成功,则进入产品管理总页面main.jsp.若不成功仍退回index.jsp 2. 注册 用户默认主页index.jsp ,  可选择注册功能 ,若注册,则进入 register.jsp 3. 管理产品(增加,删除,查看) 登录成功后,进入产品管理总页面main.jsp.第一次进入main.jsp,默认显示所有产品列表.在此页面上更实现 查询某个

使用Spring Boot来加速Java web项目的开发

使用Spring Boot来加速Java web项目的开发 我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用gradle来构建的话基本也一样)然后新建Spring相关的xml文件,而且往往那些xml文件还不会少.然后继续使用tomcat或者jetty作为容器来运行这个工程.基本上每次创建一个新的项目都是这么一个流程,而我们有时候仅仅想快速的创建一

阿里云部署Java web项目初体验

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 本文实例访问:http://120.24.19.24:8080/JavaHelloWorld-0.0.1-SNAPSHOT/ (到2016.3.9就不能访问了) 本文实例下载: 一.准备工作 1.注册账号 下载完成后.可到这里https://free.aliyun

转:在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程

本文是一篇在Myeclipse下构建Java Web项目的初级教程.图文并茂,非常详细.所用的Myeclipse版本是7.5. 第一步:新建Web Project,如下图. 第二步,在弹出的窗口填写下面内容.Project Name填写的内容是项目名称:J2EE Specification Level选择Java EE 5.0,点击“Fininsh”按钮,进入下一步. 第三步,新建的项目结构如下图.项目包含下面几个包,一个src,一个Webroot,还有JRE...和Java EE...这个两个