用IDE写一个基本的webApp

要学习java web技术,除了javaSE基本功之外,基础知识还有servlet技术。我们如果只用IDE的话,会把很多问题屏蔽掉,很多细节就想不清楚了。最好的方式,就是用IDE做一个最简单的war包,解压看看文件结构,再手动打个war包试试,梳理下编译流程。

我用的IDE是IntelliJ,步骤是 File | new | project | enterprise | webApplication。

我们就得到了一个基本的webapp框架:

我们写一个最基本的Servlet,只复写doGet方法。

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

public class FirstServlet extends HttpServlet
{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
        PrintWriter out =
resp.getWriter();
        out.println("this is first Servlet! do get");
    }
}

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
          
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
          
version="3.0">     <servlet>
        <servlet-name>FirstServlet</servlet-name>
        <servlet-class>FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FirstServlet</servlet-name>
        <url-pattern>/FirstServlet</url-pattern>
    </servlet-mapping> </web-app>

编码完毕之后,点击Build | Make Project,就已经编译完毕了。然后我们导出war包,点击File | Project Structure | Artifacts| Web Application Archive

点击Build,就可以打一个war包了。

在out文件夹下就可以得到war包了。

导出war包,在tomcat中运行

我们下载一个tomcat,解压,在bin文件夹下,可以找到开启tomcat的命名。

把我们war包放在tomcat的webapp文件夹下,就可以了。输入地址:

解压war包,分析结构

war包的结构图如下:

手动编译打包一个war包

Demo如下:http://files.cnblogs.com/files/chenjie0949/MyServlet.zip

war包编译和打包发布的更多相关文章

  1. eclipse打war包编译文件不更新

    如题.多次打包都不更新,各种clean都试了都不行.重启eclipse也不行.最后重启电脑可以了. 另外eclipse导出war包似乎存在bug,时间比系统时间超前,如下图所示.我17:19导出的包, ...

  2. 通过maven-war-plugin插件对war包分环境打包

    针对多环节,从源头打包入手,当然这些都可以在运维阶段用脚本进行替换来代替 resources/environment/下有四个环境,local本地.dev开发.test测试.pre预上线.prod生产 ...

  3. 查看war包编译时使用的jdk版本

    第一种方式:找到war包的其中一个class文件,用UE打开,看第一行 34(对应十进制的50):JDK1.8 33(对应十进制的50):JDK1.7 32(对应十进制的50):JDK1.6 31(对 ...

  4. jenkins构建成功,但war包没有发布到tomcat下

    如题,jenkins构建成功,在jenkins的workspace中有生成的war包,但没有发布到tomcat的webapps目录. 构建日志 找了很多原因发现应该还是项目相对路径不对导致的,我的wa ...

  5. 使用Tomcat发布war包

    第一步:下载tomacat 1.下载地址:http://tomcat.apache.org 2.解压后目录如下 3.双击bin文件夹下startup.bat 即可启动tomcat, 计算机会弹出控制台 ...

  6. docker:(5)利用docker -v 和 Publish over SSH插件实现war包自动部署到docker

    在 docker:(3)docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -v sudo docker run -p : --name tomcat_xiao_volume ...

  7. 【项目部署】部署项目以war包部署和解开以目录部署的区别

    我们都知道最简单的部署web项目的方式是打成war包直接仍在tomcat的webapps目录下,我上个项目也确实是这样做的,可是这给我们后期的维护带来了极大的不便,下面就简单研究一下以war包部署和解 ...

  8. IDEA打war包部署本地TOMCAT测试

    在Eclipse中打war包很方便,导出即可直接选择war包,如下图所示: 但是在IDEA中有点麻烦,网上很多教程,做的也都很好,我自己也做一份,加深一下印象. 首先打开File->Projec ...

  9. Qt软件打包发布(QT5.4.1(msvc2013_64_opengl),Win7 64bit)

    环境:QT5.4.1(msvc2013_64_opengl),Win7 64bit 编译方式 Qt开发的程序发布的时候经常采用两种方式:1)静态编译,可生成单一的可执行文件:2)动态编译,需同时附上需 ...

随机推荐

  1. android 链接蓝牙不稳定的解决建议

    My workaround I scan BLE for a short period of time 3-4 seconds then I turn scan OFF for 3-4 seconds ...

  2. AVR ATMEGA8 串口USART

    avr串口配置很简单,配置就几个寄存器就可以进收发: 但有几点要搞明白的是: 1.串口一但被配置成功IO功能自动被占用,这点与LPC或STM8/32不同(需要寄存配置): 2.没有专门的串口开起或闭关 ...

  3. 消息队列数量统计(MSMQ,Performance Counter)

    微软消息队列服务MSMQ (Microsoft Message Queue),工作在在线或者离线场景,并提供异步编程功能.互联网和企业开发很多场景应用,例如电商的订单处理流程,这是因为客户端不需要等待 ...

  4. Winform- IrisSkin.dll轻松实现窗体换肤功能

    IrisSkin2.dll是一款很不错的免费皮肤控件,利用它可以轻松的实现winForm窗体换肤 然而IrisSkin2.dll只能在.NET Faremwork 4.0以及之前的版本使用,所以要在V ...

  5. Linux 下 expect 脚本语言中交互处理常用命令

    Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ...

  6. linux集群时间同步

    说明:由于hadoop集群对时间要求很高,所以集群内主机要经常同步.本文档适合ubuntu.redhat系列. 注:很多内容是在网上摘录,然后试验后总结,如有疑问可留言探讨. 1.设置主机时间准确(任 ...

  7. 给postfix设置黑名单

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  8. Java登陆测试

    package test001; import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.IOEx ...

  9. C栈stack

    栈是一种  特殊的线性表 栈仅能在线性表的一端进行操作 栈顶(Top):允许操作的一端 栈底(Bottom):不允许操作的一端 Stack的常用操作 创建栈 销毁栈 清空栈 进栈 出栈 获取栈顶元素 ...

  10. 使用TortoiseGit对Git版本进行分支操作

    版本克隆分支问题 TortoiseGit在克隆分支的时候,默认克隆master分支,克隆后本地工作目录为中心器的Master分支. 克隆后本地分支 中心库分支 Push分支到中心服务器(Pushing ...