Spark 简易入门教程(Java的微型Web框架)

从CTFShow靶场实战,聊聊Node.js原型链污染漏洞的几种利用姿势(附详细复现步骤) 本文深入剖析Node.js原型链污染漏洞的原理与实战利用,通过复现CTFShow靶场题目(web338-web341),详细演示五种高级利用技巧,包括基础污染、多级污染、模板引擎RCE等,并提供防御方案与最佳实践,帮助开发者提升Web应用安全性。 阅读详情

今天在reddit上看到了这个有趣的Java Web框架,就写了几个例子稍微感受了一下,顺手把它的文档也翻译的了一下。

一、Spark是什么

Spark是一个微型的Java Web框架,它的灵感来自于Sinatra,它的目的是让你以最小的代价创建出一个Java Web应用。

二、使用Spark

Spark的使用相当简单,首先你需要下载它的jar包以及它所依赖的jar包,或者你也可以直接通过maven来帮你做这件事情:
在pom.xml中修改repository的配置:

<repository>
      <id>Spark repository</id>
      <url>http://46.137.105.19:8081/nexus/content/repositories/spark/</url></repository>

再添加spark的依赖

<dependency>
      <groupId>spark</groupId>
      <artifactId>spark</artifactId>
      <version>0.9.8-SNAPSHOT</version></dependency>

然后只要下面这一段代码,你就可以输出一个Hello,world了:

import static spark.Spark.*;
import spark.*;

public class HelloWorld {

   public static void main(String[] args) {

      get(new Route("/hello") {
         @Override
         public Object handle(Request request, Response response) {
            return "Hello World!";
         }
      });

   }

}

打开http://localhost:4567/hello快快看看效果吧。
怎么样?够简单吧,接下来看下Spark中一些重要的组件:

三、Spark中的组件

Routes

在Spark程序中,其请求的处理都是由Route来完成的,一个Route由三部分组成:

  • 一个动词,比如get,post,delete,trace等等
  • 一个路径,比如前面的例子中的“/hello”
  • 回调函数,比如前面的例子中的handle

另外需要注意的一点是,Spark在处理请求进行路径匹配的时候是优先匹配先出现的Route,也就是如果你的请求匹配到了多个Route,那么Spark会调用先出现的那个来处理请求。
另外Spark也支持在路径中设置参数,例如:

new Route("/user/:username"){};

你可以在handle方法里面通过调用request的params方法来获取到路径中的参数:

request.params(":username");
Filters

除了Routes之外,Spark中另一个重要的组件就是Filter,filter分为before filter和after filter,两者分别可以在请求被Routes处理之前和被Routes处理之后获取Request或者对Response进行修改,比如
Before Filter:

before(new Filter() { // matches all routes
    @Override
    public void handle(Request request, Response response) {
        boolean authenticated;
        // ... check if authenticated
        if (!authenticated) {
            halt(401, "You are not welcome here");
        }
    }
 });

After Filter:

after(new Filter() {
    @Override
    public void handle(Request request, Response response) {
        response.header("foo", "set by after filter");
    }
 });

你也可以让Filter只过滤符合特定规则的URL:

before(new Filter("/protected/*") {
    @Override
    public void handle(Request request, Response response) {
       // ... check if authenticated
       halt(401, "Go Away!");
    }
 });

四、其他

终止一个请求

如果你要在Routes或者Filter中马上终止一个请求,那么你可以调用halt方法来终止,在halt方法,你可以指定状态码或者返回的信息:

halt();
halt(401);
halt("This is the body");
halt(401, "Go Away!");
请求重定向

可以调用response的redirect方法来进行请求重定向:

response.redirect("/bar");
指定端口

Spark采用的默认应用服务器是jetty,默认的端口是4567,如果你要指定其他的端口,那么可以在Routes或者Filter中调用下面方法来指定:

setPort(9090); // Spark will run on port 9090
文档以及源代码
关于Oxford Radar RobotCar Dataset的学习笔记 https://oxford-robotics-institute.github.io/radar-robotcar-dataset/documentation 简介 雷达是 Navtech CTS350-X 调频连续波 (FMCW) 扫描雷达,在所使用的配置中提供 4.38 cm 的距离分辨率和 0.9 度的旋转分辨率,范围高达 163 m,同时提供对天气条件的稳健性这可能会给其他传感器模式带来麻烦。在其他配置中,Navtech CTS350-X 可以提供超过 650 m 的范围和更高的旋转速度。然而,对 阅读详情

相关推荐

EAST算法(Efficient and Accuracy Scene Text))

1.EAST模型简介 本文介绍的文本检测模型EAST,便简化了中间的过程步骤,直接实现端到端文本检测,优雅简洁,检测的准确性和速度都有了进一步的提升。如下图: 其中,(a)、(b)、(c)、(d)是几种常见的文本检测过程,典型的检测过程包括候选框提取、候选框过滤、bouding box回归、候选框合并等阶段,中间过程比较冗长。而(e)即是本文介绍的EAST模型检测过程,从上图可看出,其过程简化为只有FCN阶段(全卷积网络)、NMS阶段(非极大抑制),中间过程大大缩减,而且输出结果支持文本行、单词的多个角度

博客 9579

Java使用Spark入门级非常详细的总结

本文介绍了如何使用Java编写Spark应用程序。我们首先创建了一个SparkContext对象,然后使用textFile方法读取了一个文本文件,并使用flatMap和reduceByKey方法计算了单词出现的次数。最后,我们使用spark-submit命令运行了应用程序。

qq_37480069的博客 1万+

防火墙——双机热备理论讲解

本端和对端协商失败。有可能是因为本端和对端设备的软件版本不一致、某端配置错误、对端设备的心跳接口状态为Down、HRP源或目的端口号被修改、或者底层链路不通等原因导致。会话表、SeverMap表、IP监控表、分片缓存表、GTP表、黑名单、PAT方式端口映射表、NO-PAT方式地址映射表。两台设备一主一备,正常情况下业务流量由主设备处理,当主设备故障时,业务流量平滑切换到备用设备进行处理,业务不中断。开启自动备份后,当主用设备配置了一条可备份的命令或产生了可备份的会话表状态时,会直接备份到备用设备上。

m0_49864110的博客 2万+

Spark–一个微型的Java Web框架

今天在reddit上看到了这个有趣的Java Web框架,就写了几个例子稍微感受了一下,顺手把它的文档也翻译的了一下。 一、Spark是什么 Spark是一个微型的Java Web框架,它的灵感来自于Sinatra,它的目的是让你以最小的代价创建出一个Java Web应用。 二、使用Spark Spark的使用相当简单,首先你需要下载它的jar包以及它所依赖的jar包,或者你也...

khotyn的专栏 601

burpsuite抓取ios数据包

1:首先在burpsuite中设置 添加proxy listeners 2:电脑开热点,手机连接,把代理设为电脑的ip和代理的端口 3:在Safari浏览器中打开网址http://burp下载证书 4:打开设置->通用->描述文件与设备管理 5:设置->通用->关于本机->证书信任设置 之后就可以正常抓包了 ...

weixin_45682070的博客 2067

ColorOS13系统账户锁与密码锁破解全指南:从恢复模式到激活绕过

本文针对ColorOS13系统用户,详细解析了忘记锁屏密码(数字/图案锁)和遭遇OPPO账户锁(激活锁)的合法解决方案。核心是通过官方恢复模式进行格式化操作清除锁屏密码,并强调账户锁需通过密码找回或官方售后等正规途径解除。文章旨在帮助设备合法所有者恢复使用权,并提供了安全操作指南与数据备份建议。

weixin_28304023的博客 967

史上最简单的spark教程第二章-快速开发部署你的第一个Java+spark程序

spark的核心概念 (提前声明:文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章,写作不易,转载请注明) (文章参考:Elasticsearch权威指南,Spark快速大数据分析文档,Elasticsearch官方文档,实际项目中的应用场景) (帮到到您请点点关注,文章持续更新中!) Git主页 https://github.com/Mydreamandrea...

只有变秃,才能更强 2万+

MacBook用户必看:用Homebrew一键搞定frp内网穿透(含阿里云配置模板)

本文为MacBook用户提供基于Homebrew的frp内网穿透实战指南,详细介绍了从环境准备到阿里云服务器配置的全过程。通过Homebrew一键安装frp客户端,结合阿里云配置模板,实现高效稳定的内网穿透,适用于远程开发、IoT设备调试等多种场景。

weixin_28692817的博客 321

spark web框架--play framework 安装与运行

spark web框架--play framework 安装与运行

huazi99于老师的博客 3546

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2203

手把手教你学Simulink--基于新能源与储能系统的场景实例:压缩空气储能(CAES)系统热力学建模

本文介绍了使用Simulink进行压缩空气储能(CAES)系统热力学建模的详细步骤。系统模型包含压缩机、储气装置、膨胀机、热交换器和控制器等核心模块,通过MATLAB函数计算各部件参数,并设置仿真条件。文章详细说明了从模型创建到性能评估的完整流程,包括压缩/膨胀过程的能量转换、温度压力变化等关键指标分析。该建模方法可验证设计方案的有效性,并为系统优化提供参考,适用于新能源与储能领域的研究与应用。

MHD0815的博客 9188

web开发框架-spark

Spark是一个微型的Java Web框架,它的灵感来自于Sinatra,它的目的是让你以最小的代价创建出一个Java Web应用。最近更新到2.0.0,支持Java 8 ,支持Lambda,Demo代码看起来非常有吸引力 spark 和Ruby语法相似,但是对web的支持是也是很好 import static spark.Spark.*; public class HelloWor

miketom155的专栏 2887

【毕设实战】飞行器目标识别系统:基于YOLOv5的智能检测全流程教程,助你毕设脱颖而出

本文介绍了一个基于YOLOv5的飞行器目标识别系统的开发过程。系统包含数据采集与标注、模型训练、实时检测和UI界面四大模块。文章详细讲解了从环境搭建、数据标注到YOLOv5模型训练的全流程,包括如何划分数据集、配置参数和测试模型性能。同时提供了实时检测代码示例和UI界面开发思路,使读者能够快速实现一个完整的智能检测系统。该系统可应用于军事侦察、民用巡检等领域,具有较高的实用价值,适合作为计算机视觉相关的毕业设计项目。

FJN110的博客 108

微型的Java Web框架 Spark

<br />Spark是一个可以让你以最小的代价快速创建Web应用的轻量级Java web框架,它的灵感来自于Sinatra。<br /> <br /><br />开始使用Spark<br />Routes<br />Request<br />Response<br />终止一个请求<br />Filters<br />请求重定向<br />指定端口开始使用Spark下载spark和spark依赖的类库(或者让maven来为你做这些事情),把它们放在工程classpath下,开始动手: import st

blair 3150

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java web spark_spark-微型的Java Web框架 Spark Framework

导读热词Spark是一个微型的Java Web框架,它的灵感来自于Sinatra,它的目的是让你以最小的代价创建出一个Java Web应用。Implement CORS in Spark -spark中如何处理跨域资源共享问题代码如下:// Enables CORS on requests. This method is an initialization method and should be...

weixin_30929623的博客 355

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Spark 简易入门教程

一、Spark是什么 Spark是一个微型的Java Web框架,它的灵感来自于Sinatra,它的目的是让你以最小的代价创建出一个Java Web应用。 二、使用Spark Spark的使用相当简单,首先你需要下载它的jar包以及它所依赖的jar包,或者你也可以直接通过maven来帮你做这件事情:在pom.xml中修改repository的配置: ? 1 2 3 ...

jeansmo的博客 218

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spark Java:用极简代码点燃你的Java Web开发体验

你是否曾经为Java Web开发的繁琐配置而感到头疼?想象一下,当你只是想快速搭建一个简单的API服务,却要面对复杂的XML配置、繁琐的依赖管理和冗长的启动流程。有没有一种框架,能让你像Python的Flask或Node.js的Express那样,用几行代码就启动一个Web服务?🚀 Spark Java正是为解决这个问题而生的——它是一个为Java 8+设计的微型Web框架,以其"一行代码启动

gitblog_00721的博客 462

spark restful_使用Spark构建简单的RESTful API

spark restful 免责声明 :这篇文章是关于名为Spark的Java微型Web框架的,而不是关于数据处理引擎Apache Spark的 。 在此博客文章中,我们将看到如何使用Spark构建简单的Web服务。 如免责声明中所述,Spark是受Ruby框架Sinatra启发的Java微型Web框架。 Spark的目的是简化操作,仅提供最少的功能集。 但是,它提供了用几行Java代码构...

最佳 Java 编程 1185

使用Spark构建简单的RESTful API

免责声明 :这篇文章是关于名为Spark的Java微型Web框架的,而不是关于数据处理引擎Apache Spark的 。 在此博客文章中,我们将看到如何使用Spark构建简单的Web服务。 如免责声明中所述,Spark是受Ruby框架Sinatra启发的Java微型Web框架。 Spark的目的是简化操作,仅提供最少的功能集。 但是,它提供了用几行Java代码构建Web应用程序所需的一切...

最佳 Java 编程 1920

三个类似Sinatra的Java框架介绍

Sinatra 是一个微型的 Ruby 语言的 Web 框架,据说 100 行代码就可以开发一个博客软件。一个简单的hello world的web应用用Sinatra只需5行代码: ? 1 2 3 4 5 6 require 'rubygems' require 'sinatra'   get '/' do   'Hello World

u013244517的专栏 448

【JAVA框架之spark介绍】

sparkjava是一个受Sinatra启发的微型Web框架,用于采用Java快速快速创建Web应用。   Spark(注意不要同Apache Spark混淆)的设计初衷是,可以简单容易地创建REST API或Web应用程序。它是一个灵活、简洁的框架,大小只有1MB。Spark允许用户自己选择设计应用程序的模板引擎以及选择最适合他们项目的库,比如,HTML解析功能就有Freemarker、M...

402

大数据spark开发入门教程

大数据是互联网发展的方向,大数据人才是未来的高薪贵族。随着大数据人才的供不应求,大数据人才的薪资待遇也在不断提升。如果你也想进入大数据行业,也想学习大数据技术,大数据讲师认为,可以先从spark技术开始。 一、Spark是什么Spark是一个微型的Java Web框架,它的灵感来自于Sinatra,它的目的是让你以zui小的代价创建出一个Java Web应用。二、使用SparkSpark的使用相当...

xx666zz的博客 1758

最完整Spark Java入门指南:从Hello World到企业级API开发

Spark Java是Java 8的微型Web框架,提供简单直观的API,让开发者快速构建RESTful服务和Web应用。本指南将带你从基础入门到高级应用,掌握Spark Java的核心功能和最佳实践。 ## 🚀 快速开始:Hello World 只需几行代码就能创建一个Web服务: ```java import static spark.Spark.*; public class He

gitblog_00936的博客 834

流行的9个Java框架介绍:优点、缺点等等

在2018年,Java仍然是世界上最流行的编程语言。它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员。虽然Java不是最直接的语言,但是您不需要从头编写Java程序。有许多优秀的Java框架可以编写在Java虚拟机上运行的web和移动应用程序、微服务和REST api。Java框架允许您关注应用程序的业务逻辑,而不是编写数据库连接或处理异常等基本功能。此外,如果您有Java方面的经...

qq_41212104的博客 1009

java docker开发_Java 工程师如何在 Docker 上进行开发

Java 工程师如何在 Docker 上进行开发?本文能让你以最小的日常开支和预备知识就可以把 Docker 和 Java 结合使用。安装现在有很多的 Java Web 框架,挑选一个非常小的框架,选择 Spark 吧!它是一款基于 Java-8 的微型 Sinatra 框架。如果你去阅读 Spark 的说明文档,会了解它是用 Maven 作为其构建工具。在本示例里,会利用 Maven 和 Doc...

weixin_39616503的博客 115
上一篇: JsonUtil
下一篇: IDEA装MyBatis Log插件,对于复杂的SQL进行分析
杜引强
博客等级 码龄13年 806粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值