简单的Gradle Web应用程序

Gradle通过“ war”和“ jetty”插件轻松支持Java Web应用程序。 本教程将向您展示如何快速创建一个简单的Java Servlet Web应用程序。

我们的基本项目结构将是:

basic-websrcmainjavacomcodetutrHelloWorldServlet.javawebappWEB-INFweb.xml

首先,创建一个名为basic-web的文件夹,然后在该文件夹内创建Gradle构建文件: build.gradle

apply plugin: 'java' 
apply plugin: 'war' 
apply plugin: 'jetty' 
apply plugin: 'eclipse-wtp'repositories {mavenCentral()
}dependencies {providedCompile 'javax.servlet:servlet-api:2.5'runtime 'javax.servlet:jstl:1.1.2'
}

eclipse-wtp插件允许我们根据需要将项目作为Dynamic Web Project项目导入Eclipse,以便从Eclipse运行。 war插件扩展了Java插件,并增加了对打包WAR文件的支持。 jetty插件添加了一些任务,以支持从构建文件在嵌入式Jetty实例中运行Gradle项目。 注意,我们将servlet-api包含为“ providedCompile”依赖项。 这意味着我们不希望将其打包在WAR中,因为它将包含在运行它的应用程序服务器中。 现在,让我们在src/main/webapp/WEB-INF创建web.xml描述符文件:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd"><servlet><display-name>HelloWorldServlet</display-name><servlet-name>HelloWorldServlet</servlet-name><servlet-class>com.codetutr.HelloWorldServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloWorldServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

我们建立了一个由com.codetutr.HelloWorldServlet支持的简单servlet,并映射到“ /”。 最后,让我们在src/main/javacom.codetutr创建servlet:HelloWorldServlet.java

package com.codetutr;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class HelloWorldServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)  throws ServletException, IOException {resp.getOutputStream().write("Hello World.".getBytes());}
}

就这样。 现在,我们可以启动码头服务器,并查看我们的Web应用程序的运行情况:

$ gradle jettyRunWar
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:war
:jettyRunWar

现在转到http:// localhost:8080 / basic-web来访问您的servlet。 您应该看到“世界您好”。 屏幕上。 完整资源: basic-web.zip解压缩档案。 在未归档的根目录下打开命令提示符。 键入gradle jettyRunWar 。 转到http:// localhost:8080 / basic-web 。

参考: CodeTutr博客上来自我们JCG合作伙伴 Steve Hanson的Simple Gradle Web应用程序 。

翻译自: https://www.javacodegeeks.com/2013/04/simple-gradle-web-application.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SD/MMC相关寄存器的介绍

1.SD卡内部架构 在熟悉SD/MMC相关寄存器之前&#xff0c;我们先来看看SD卡的内部架构是怎么样的&#xff0c;如下图所示&#xff1a; 2.SD/MMC相关寄存器的介绍 从上图中总结出&#xff1a;SD卡内部有7个寄存器. 一、OCR,CID,CSD和SCR寄存器保存卡的配置信息; 二、RCA寄存器保存…

【模板】OI常用模板(待补充)

//PS&#xff1a;最近修改日期&#xff1a;2017-11-07  20:41:44 首先感觉这种模板类的东西写了还是很有意义的&#xff0c;毕竟时不时的可以拿出来借鉴一下。 现在因为刚开始写这一类的东西&#xff0c;所以说还不是很详细&#xff0c;若有读者感觉可以补充&#xff0c;欢迎…

form中action属性后面?传递参数 获取不到

1 $p_id $_REQUEST[p_id]; 2 3 echo "<h1>您将更新商品编号为<span>$p_id</span>的商品信息 <a hreflistproduct.php>查看所有</a></h1> 4 <form actionupdateproduct.do.php?p_id$p_id methodget> 5 商品名称&#xff…

apche 禁止运行php,学习猿地-apache如何禁止执行php

apache禁止执行php的方法&#xff1a;首先新建一个“.htaccess”文件&#xff1b;然后复制代码内容“Order allow,deny”到“.htaccess”文件中&#xff1b;最后将该文件直接放到网站根目录里即可。apache禁止执行php的方法&#xff1a;第一种禁止上传目录运行php的方法如果你用…

Apache Camel 2.11发布

上周Apache Camel 2.11发布了。 这篇博客文章总结了最引人注目的新功能和改进。 有关详细说明&#xff0c;请参见Camel 2.11发行说明 。 1&#xff09;新组件 与往常一样&#xff0c;每个新发行版都包含许多新组件&#xff0c;这些组件由我们庞大的用户群贡献。 谢谢你们。 例…

linux分区满了,如何进行扩容

转自&#xff1a;https://blog.csdn.net/valage/article/details/73332147 图片中可以看到挂载点“/”的利用率移到100%&#xff0c;空间不够&#xff0c;所以要对其进行分区。 1. 先进入虚拟机设置里增大磁盘空间 注意&#xff1a;将25改成50&#xff0c;以扩大空间。这里…

RDA DEBUG

DEBUG寄存器&#xff1a;word 0xa0000010 word 0xa0000010 1  //debug开 word 0xa0000010 0  //debug关 当然也可以按模块打开/关闭debug信息&#xff0c;如 DBGCFG_KMF/DBGCFG_UMF/DBGCFG_MENU/DBGCFG_TUNER模块等。 所以大家在使用过程中要按源文件所在的模块加打印信息&…

DIV CSS布局-固定页面开度布局

DIV CSS布局中主要CSS属性介绍&#xff1a; Float: Float属性是DIV CSS布局中最基本也是最常用的属性&#xff0c;用于实现多列功能&#xff0c;我们知道<div>标签默认一行只能显示一个&#xff0c;而使用Float属性可以实现一行显示多个div的功能&#xff0c;最直接解释…

php获取网页js中的json,从php获取json数据使用js读取显示到网页笔记

//json与数组转换$array array("username" > "hellojson","age" > 23,"sex">"M");//定义php数组$resjson_encode($array);//var_dump($res);echo $res;//将结果输出到页面?>HTML代码$(function(){$(document)…

BZOJ.1023.[SHOI2008]cactus仙人掌图(DP)

题目链接 类似求树的直径&#xff0c;可以用(类似)树形DP求每个点其子树(在仙人掌上就是诱导子图)最长链、次长链&#xff0c;用每个点子节点不同子树的 max{最长链}max{次长链} 更新答案。(不需要存次长链&#xff0c;求解过程中先更新ans&#xff0c;然后再更新最长链即可) 设…

Spring Java配置

我发现许多我认识的Spring开发人员仍然不了解或使用Spring Java Configuration&#xff08;aka JavaConfig&#xff09;。 Spring 3.0引入了此功能&#xff0c;该功能使Spring可以完全用Java进行配置-不再需要XML&#xff01; 我真的很喜欢使用JavaConfig&#xff0c;因为&…

纯 CSS 实现波浪效果!

一直以来&#xff0c;使用纯 CSS 实现波浪效果都是十分困难的。 因为实现波浪的曲线需要借助贝塞尔曲线。 而使用纯 CSS 的方式&#xff0c;实现贝塞尔曲线&#xff0c;额&#xff0c;暂时是没有很好的方法。 当然&#xff0c;借助其他力量&#xff08;SVG、CANVAS&#xff09…

Mysql 数据库(三)

一、数值类型 1、整数类型&#xff1a;应用场景&#xff0c;存放年龄&#xff0c;等级&#xff0c;id或者各种号码等等 TINYINT&#xff1a;1个字节存放&#xff0c;有符号范围&#xff1a;-128到127&#xff0c;没有符号范围&#xff1a;0&#xff0c;255 。 SMALLINT&#xf…

Thonny -- 简洁的 python 轻量级 IDE

Thonny目前是 树莓派 上 默认的 Python 开发环境。 该 IDE 是 Institute of Computer Science of University of Tartu &#xff08;爱沙尼亚 的 塔尔图大学 计算机科学院&#xff09;开发的。 最近 yvivid 也体验了一下 Thonny 的开发环境&#xff0c;网站地址为 http://thonn…

如何造成内存泄漏

这将是一个相当邪恶的职位-当您确实希望使某人的生活陷入困境时&#xff0c;您将在谷歌上搜索。 在Java开发领域&#xff0c;内存泄漏只是您在这种情况下会引入的错误类型。 为您的受害者保证几天甚至几周的办公室不眠之夜。 我们将在这篇文章中描述两次泄漏。 两者都很容易理…

二维有限元方程matlab,有限元法求解二维Poisson方程的MATLAB实现

有限元法求解二维 Poisson 方程的 MATLAB 实现 陈 莲a &#xff0c;郭元辉b &#xff0c;邹叶童a ( 西华师范大学 a&#xff0e; 数学与信息学院; b&#xff0e; 教育信息技术中心&#xff0c;四川南充 6437009) 摘 要: 文章讨论了圆形区域上的三角形单元剖分、有限元空间&…

javascript 之异常处理try catch finally--05

语法结构 try catch finally是ECMAScript-262 第三版提供异常处理机制的标准&#xff0c;语法结构如下&#xff1a; 1 try{ 2 //可能会发生的错误代码 3 } 4 catch(error){ 5 //错误处理 6 }finally{ 7 //无论是否有异常都会执行 8 } 语法与大多数语言一样 如java .net&#x…

CSS实现文本周围插入符号

CSS实现文本周围插入符号的方案 本文要讨论的是如何在文本的周围插入图标&#xff0c;怎么样控制它们之间的位置关系&#xff0c;通过HTML结构合理性与CSS属性的使用来比较不同方案所实现效果的优缺点。 常见设计稿要求 在文本前、后、上、下插入图标、线条、三角形、圆形插…

mysql动态sql是什么,mysql中动态sql的一次实际应用

一、前言本次实际应用中&#xff0c;使用到了如下几个要点&#xff1a;mysql的动态建表;mysql的多表插入;mysql的多表更新;mysql的多表删除;二、使用场景2.1 动态建表要求建立多个表&#xff0c;例如电压、电流等表&#xff0c;这些表的字段是完全一样的&#xff0c;只有表名不…

layer绑定回车事件(转)

条件&#xff1a;弹窗后不做任何点击操作或者聚焦操作对于layer.load&#xff0c;弹出后反复按回车&#xff0c;load层将不断刷新&#xff0c;即使设置了自动消失也只有等不按回车键才会生效。对于layer iframe层有表单就更糟糕了&#xff0c;每按一次回车&#xff0c;iframe表…