`
Gavin.Chen
  • 浏览: 325841 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Maven2下第一个Web简单实例

阅读更多

目录结构优先。。。。。。

|--pom.xml

|--src

    |--main

        |--java

            |--com

                |--mydomain

                    |--TestServlet.java

        |--resources

        |--webapp

            |--index.jsp

            |--WEB-INF

                |--web.xml

       在这个测试项目里面,文件非常少,把单元测试文件夹暂时省了,有需要可以根据我其它几个EJB实例里讲到的,添加进去,简单点有利于初学的人去大概了解一下maven,高手就别在这转了,不适合你,呵呵。

       其实我没写什么代码,就一个文件名为TestServlet.java的Servlet,其它的都是文件夹,index.jsp也写上Hello World几个字,有需要可以自己加!再加上在web.xml里配置了几行,就这样,其实就是方便大家了解Maven,至于稍深一点的,往后会写,再稍深一点的,我不会,谢谢合作!

 

       好了,下面就把TestServlet.java文件代码贴出来看看

package com.mydomain;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//extend HttpServlet这个类,就是一个Servlet了
public class TestServlet extends HttpServlet
{

    @Override
    protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException
    {

        //通常学习的话doGet跟doPost就用下面这种方式将它们合并起来玩就行了
        doPost(httpServletRequest, httpServletResponse);
    }

    @Override
    protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException
    {

        //下面这些代码输出一些非常基本的信息,大家可以忽略它
        String contextPath = httpServletRequest.getContextPath();
        String authType = httpServletRequest.getAuthType();
        String charactorEncoding = httpServletRequest.getCharacterEncoding();
        String contentType = httpServletRequest.getContentType();
        String method = httpServletRequest.getMethod();
        String pathInfo = httpServletRequest.getPathInfo();
        String pathTranslated = httpServletRequest.getPathTranslated();
        String protocol = httpServletRequest.getProtocol();
        String queryString = httpServletRequest.getQueryString();
        String remoteAddress = httpServletRequest.getRemoteAddr();
        String remoteHost = httpServletRequest.getRemoteHost();
        String remoteUser = httpServletRequest.getRemoteUser();
        String requestURI = httpServletRequest.getRequestURI();
        String requestedSessionId = httpServletRequest.getRequestedSessionId();
        String scheme = httpServletRequest.getScheme();
        String serverName = httpServletRequest.getServerName();
        String servletPath = httpServletRequest.getServletPath();
       

        //将信息输出到页面上
        PrintWriter printWriter = httpServletResponse.getWriter();
        printWriter.println("contextPath = " + contextPath);
        printWriter.print("<br />");
        printWriter.println("authType = " + authType);
        printWriter.print("<br />");
        printWriter.println("charactorEncoding = " + charactorEncoding);
        printWriter.print("<br />");
        printWriter.println("contentType = " + contentType);
        printWriter.print("<br />");
        printWriter.println("method = " + method);
        printWriter.print("<br />");
        printWriter.println("pathInfo = " + pathInfo);
        printWriter.print("<br />");
        printWriter.println("pathTranslated = " + pathTranslated);
        printWriter.print("<br />");
        printWriter.println("protocol = " + protocol);
        printWriter.print("<br />");
        printWriter.println("queryString = " + queryString);
        printWriter.print("<br />");
        printWriter.println("remoteAddress = " + remoteAddress);
        printWriter.print("<br />");
        printWriter.println("remoteHost = " + remoteHost);
        printWriter.print("<br />");
        printWriter.println("remoteUser = "+ remoteUser);
        printWriter.print("<br />");
        printWriter.println("requestURI = " + requestURI);
        printWriter.print("<br />");
        printWriter.println("requestedSessionId = " + requestedSessionId);
        printWriter.print("<br />");
        printWriter.println("scheme = " + scheme);
        printWriter.print("<br />");
        printWriter.println("serverName = " + serverName);
        printWriter.print("<br />");
        printWriter.println("servletPath = " + servletPath);
    }
   
}

 

下面则是web.xml文件,非常简单的

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>

  <!--每添加一个新的servlet,下面两段都是必不可少的,复制下来修改一下就OK了-->
  <servlet>
      <servlet-name>Test Servlet</servlet-name>
      <servlet-class>com.mydomain.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>Test Servlet</servlet-name>
      <url-pattern>/TestServlet</url-pattern>
  </servlet-mapping>
</web-app>

当然,Maven项目少不了pom文件,也贴出来吧,给大家剪剪

<?xml version="1.0" encoding="UTF-8"?>

<!--下面这段直接复制就OK了,如果想了解为啥这样写,可以去查查xml schema-->
<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/maven-v4_0_0.xsd">

    <!--pom文件的版本号,通常不用改,以后要改是以后的事-->
    <modelVersion>4.0.0</modelVersion>

    <!--你的组织的名称,大多是放域名倒序,为什么是倒序?这得要去了解Maven的repository概念罗-->
    <groupId>com.mydomain</groupId>

    <!--项目名称-->
    <artifactId>wartest</artifactId>

    <!--将要打包的形式,这里为war,web archive-->
    <packaging>war</packaging>

    <!--下面是当前项目的版本-->
    <version>1.0-SNAPSHOT</version>
    <name>Maven Webapp Test</name>
    <url>http://maven.apache.org</url>
    <dependencies>

        <!--新建maven项目都会有下面这个defendant,太可不必删它,可以提醒你要写单元测试哦-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <!--就加下面这个defendant就OK了-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.3</version>
        </dependency>
    </dependencies>
    <build>

        <!--下面一句可不写的,不过写上的话,最后生成的war名称就是wartest.war-->
        <finalName>wartest</finalName>

        <!--Maven就是通下面这种插件的形式去不断扩展它自身的功能的,非常强哦,当然使用起来会a little pain-->
        <plugins>

            <!--插件1-->
            <plugin>

                <!--插件名称-->
                <artifactId>maven-compiler-plugin</artifactId>

                <!--插件版本-->
                <version>2.0.2</version>

                <!--插件设置,通常也是参数-->
                <configuration>

                    <!--下面两段意思是生成代码支持JDK1.5到1.5,就是1.5嘛,当然你也可以根据实际需要修改的-->
                    <source>1.5</source>
                    <target>1.5</target>

                    <!--编译编码,大家支持UTF-8吧,前段时间我搞编码搞怕了-->
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <!--插件2-->
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

 

好了,写完了,下面进到项目根目录,运行一下

mvn install

 

就可以在根目录的target得到一个wartest.war了,把它放到Tomcat里面,或者Jboss里面,或者任何其它Web container都可以的,怎么样mvn 还算容易吧

分享到:
评论
4 楼 Gavin.Chen 2008-10-25  
nonochow 写道

请问我的ejb jar包为何copy到jboss后不见部署成功?

如果你不是很熟悉JBOSS,你可以将war包放到jboss目录下的server/default/deploy目录,然后进入到JBOSS的bin目录,直接运行run.bat,就可以了

如果你的war包名为test.war,jboss也是默认的配置,那么启动jboss后,你用下面的地址进行访问

http://localhost:8080/test
3 楼 Gavin.Chen 2008-10-25  
chengzhenglong11 写道

这个东西我用过一次,感觉不是很好用,而且还很麻烦

功能强大往往会与复杂挂钩在一起,但maven之强大是有目共睹的,如果project做得很大很大,你会发现没有什么工具可以比maven更好地管理这些代码了(起码现在)。

如果是ant的用户群,可能习惯了ant的便易性,但是ant绝不是大项目的首选。

更多的ant与maven的比较大家可以去网上搜搜"ant maven",这里我就不多说了

现在国内己经有越来越多的人关注maven,也有越来越多的公司开始将项目集成到maven中了,这是个趁势,大家可以更加详细地了解下它,不要因为maven复杂就轻易放弃了利用它便利性的机会,要用一个大项目管理的角度去思考,数百人写代码,数百个子项目。。。
2 楼 chengzhenglong11 2008-10-15  
这个东西我用过一次,感觉不是很好用,而且还很麻烦
1 楼 nonochow 2008-10-15  
请问我的ejb jar包为何copy到jboss后不见部署成功?

相关推荐

    使用springmvc、hibernate、maven开发的web实例项目。

    本项目是一个综合性的实例,将这三个框架整合在一起,为开发者提供了一个完整的Web应用程序开发环境。 **Spring MVC** Spring MVC是Spring框架的一个模块,主要用于构建基于模型-视图-控制器(MVC)模式的Web应用...

    第一个eclipse maven web项目实例

    "第一个eclipse maven web项目实例" 这个标题明确指出这是一个基于Eclipse集成开发环境的Maven Web项目示例。它表明我们正在处理一个使用Maven构建工具,且能直接在Eclipse中运行的Web应用程序项目。 描述中提到,...

    mavenWeb空项目

    【标题】"mavenWeb空项目"所涉及的知识点主要集中在Java编程语言和Maven构建工具上,这是一个基于Maven的、已经过单元测试的Web应用程序的基础框架。下面将详细介绍这两个核心领域的相关知识。 **一、Java编程语言*...

    maven 简单使用教程

    Maven的最新版本为2.0.9,但需要注意的是,Maven2与早期的Maven1在很多方面存在显著差异,因此在查阅第三方文档时需明确区分这两个版本。 1. Maven资源: - Maven官方网站:获取最新版本、文档和社区支持。 - The...

    maven window下安装包

    第1章:Maven概述/1.1 Maven的概念 第1章:Maven概述/1.2 Maven的功能 第1章:Maven概述/1.3 与其它构建相比/1.3.1 Make 第1章:Maven概述/1.3 与其它构建相比/1.3.2 Ant 第2章:Maven的安装/2.1 Window下的安装 第2...

    Maven+Sprint MVC简单例子

    创建一个 Maven + Spring MVC 项目的第一步是设置项目结构。标准的 Maven 项目结构包括 src/main/java、src/main/resources、src/test/java 和 src/test/resources 等目录。在 java 目录下,我们将为 Spring MVC ...

    maven 详细教程 实战 例子 电子书

    1. **构建项目**: Maven 可以通过简单的命令如 `mvn compile` 编译源代码,`mvn test` 运行单元测试,`mvn package` 打包项目。 2. **单元测试报告**: 配置 Maven 生成单元测试报告,可以在 `pom.xml` 中添加 `...

    maven基础学习(四)-简单实例(使用Archetype生成项目骨架)

    在Java开发领域,Maven是一个不可或缺的工具,它极大地简化了构建、管理和依赖管理过程。本教程将深入探讨“Maven基础学习”的第四部分——如何使用Archetype来生成项目骨架,帮助初学者快速搭建项目结构。 一、...

    maven实例源码

    本实例源码是基于《maven实战》一书的第12章内容,涵盖了多个模块,旨在帮助读者深入理解和应用Maven的实际开发场景。 首先,我们关注的是"account-parent"这个文件名。在Maven中,"parent"通常用于定义共用的POM...

    使用Maven构建JavaWeb项目实例

    使用Maven构建JavaWeb项目的第一步是创建一个新的Maven项目。这可以通过执行`mvn archetype:create`命令,选择一个适合的archetype,例如`maven-archetype-webapp`,来生成基础的项目结构。 三、Maven的POM.xml POM...

    maven 多模块 +springMVC+MyBatis简单登陆

    总结,"maven 多模块 +springMVC+MyBatis简单登陆"项目是一个典型的Java Web应用实例,它展示了如何利用Maven构建多模块项目,SpringMVC处理请求,以及MyBatis进行数据访问。这样的架构简洁而高效,适用于中小型Web...

    springboot+webJSP maven项目例子.zip

    此外,`WEB-INF` 下还有一个 `web.xml` 文件,但在 SpringBoot 中,由于采用自动配置,这个文件通常是可选的。 4. `pom.xml`:这是 Maven 的项目对象模型(Project Object Model)文件,描述了项目的基本信息、依赖...

    Maven权威指南 很精典的学习教程,比ANT更好用

    一个简单的Maven项目 3.1. 简介 3.1.1. 下载本章的例子 3.2. 创建一个简单的项目 3.3. 构建一个简单的项目 3.4. 简单的项目对象模型 (Project Object Model) 3.5. 核心概念 3.5.1. Maven插件和目标 ...

    maven by example

    Maven使用命令行工具来创建、构建项目,通常第一步是通过mvn archetype:create命令创建一个项目原型。 - 项目对象模型(POM) Maven使用一个名为pom.xml的文件来定义项目的信息和配置,包括项目依赖、插件、生命...

    Activiti Demo 非Maven

    这个"Activiti Demo 非Maven"项目是一个示例应用,展示了如何在不使用Maven构建系统的情况下使用Activiti。Maven通常用于管理和构建Java项目,但它并非必需,开发者可以根据自己的需求选择其他构建工具或者直接管理...

    Maven2项目集成springmvc,spring3,ibatis和freemarker实例

    本实例" Maven2项目集成springmvc, spring3, ibatis和freemarker"提供了一个完整的解决方案,旨在帮助开发者快速搭建基于这些技术的Web应用程序。以下是这些技术的详细说明和集成过程。 **Maven2**: Maven是一款...

    struts2+maven+jetty 示例

    Struts2是一个强大的MVC框架,Maven是项目管理工具,而Jetty则是一个轻量级的嵌入式Servlet容器。下面将详细介绍这三个技术以及如何结合它们搭建一个Java Web应用程序。 **Struts2框架** Struts2是Apache软件基金会...

    Spring MVC + Mybatis +Maven demo

    通过"Spring MVC + Maven + Mybatis 框架例子",开发者可以快速理解和学习这些技术的集成使用,以便在实际项目中构建出功能完善的Web应用。文件MSM01可能是这个示例项目的主要代码包,包含了所有相关的类、配置文件...

    maven插件及其使用方法

    Maven是Java开发中的一款项目管理和综合工具,它通过一套标准化的构建生命周期和依赖管理系统,使得项目的构建、依赖管理和部署变得更加简单。Maven插件则是Maven生态系统中的一个重要组成部分,它们扩展了Maven的...

Global site tag (gtag.js) - Google Analytics