Intellij IDEA 的maven项目通过Java代码实现Jetty的Http服务器(推荐)

目录
  • 一、添加 pom.xml
  • 二、在maven 加载 jetty
  • 三、新建AttendentConsoleHttpServlet.java
  • 四、在App.java 中 加入
  • 五、运行 java

Jetty是一个轻量级的高度可扩展的基于 java的web服务器和servlet引擎。

下面是 使用 Intellij IDEA 的maven项目 通过Java代码,实现 Jetty 的 Http服务器 从而获取到 Http 的 Get 和 Post 请求

一、添加 pom.xml

 <!-- Jetty。要注意版本,版本匹配不对时,运行Jetty的应用将会报错-->
    <dependency>
      <groupId>org.eclipse.jetty.aggregate</groupId>
      <artifactId>jetty-all</artifactId>
      <version>8.0.4.v20111024</version>
    </dependency>

二、在maven 加载 jetty

点击 刷新 图标 系统会自动 加载 jetty

加载完成后 就会 出现org.eclipse.jetty.aggregate:jetty-all:8.0.4.v20111024

三、新建AttendentConsoleHttpServlet.java

package com.SinaServer;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;import java.util.HashMap;
import java.util.Map;
/**
 * @title: AttendentConsoleHttpServlet
 * @Author wxj
 * @Date: 2021/6/24 10:30
 * @Version 1.0
 */
public class AttendentConsoleHttpServlet extends HttpServlet {
    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException {
        System.out.println(req.toString());
        BufferedReader streamReader = new BufferedReader( new InputStreamReader(req.getInputStream(), "UTF-8"));
        StringBuilder responseStrBuilder = new StringBuilder();
        String inputStr;
        while ((inputStr = streamReader.readLine()) != null)
            responseStrBuilder.append(inputStr);
        System.out.println(responseStrBuilder.toString());
        //允许跨域
        res.setHeader("Access-Control-Allow-Origin", "*");
        res.setHeader("Access-Control-Allow-Methods", "*");
        res.setHeader("Access-Control-Max-Age", "3600");
        res.addHeader("Access-Control-Allow-Headers", "*");
        res.setHeader("Access-Control-Allow-Credentials", "*");
        //
        //Map<String ,String> map = JSON.parseObject(Base64.decode(responseStrBuilder.toString()),Map.class);
        //this.doGet(req, res);
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  {
        response.setContentType("text/html;charset=utf-8");
        response.setStatus(HttpServletResponse.SC_OK);
        //允许跨域
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "*");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.addHeader("Access-Control-Allow-Headers", "*");
        response.setHeader("Access-Control-Allow-Credentials", "*");
        //
        System.out.println("get request:");
        Map<String, String[]> maps =  request.getParameterMap();
        HashMap<String,String> mapAction = new HashMap<>();
        for (Map.Entry<String, String[]> entry : maps.entrySet()) {
            //String cs = entry.getKey() + ":"+ Arrays.toString(entry.getValue())+";";
            String cs = entry.getKey() + ":"+ entry.getValue()[0]+";";
            System.out.println(cs);
            mapAction.put(entry.getKey(),entry.getValue()[0]);
        }
        //如果包含action请求
        String strResponse="";
        if (mapAction.containsKey("action")){
            switch (mapAction.get("action")){
                case "query":
                    strResponse=this.query();
                    break;
                default:
            }
        }
        //
        try {
            response.getWriter().println(strResponse);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public String query(){
        String json="Hello Word! 已收到请求";
        return  json;
    }
}

四、在App.java 中 加入

package com.SinaServer;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
/**
 * Hello world!
 *
 */
public class App
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!111222" );

        //jetty的处理集合
        ContextHandlerCollection contexts = new ContextHandlerCollection();
        //jetty http请求事件
        ServletContextHandler context1 = new ServletContextHandler(ServletContextHandler.SESSIONS);
        //httpapi
        AttendentConsoleHttpServlet httpServletCli= new AttendentConsoleHttpServlet();
        context1.addServlet(new ServletHolder(httpServletCli), "/httpCli");//httpapi
        contexts.addHandler(context1);
        //jetty服务器启动
        Server server = new Server(5011);//设置端口
        server.setHandler(contexts);
        try {
            server.start();//jetty服务器启动
            System.out.println("Jetty Server 启动成功。port : 5011" );
            server.join();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
        }
    }
}

五、运行 java

启动成功后 用浏览器 访问

http://192.168.1.143:5011/httpCli?action=query

到此这篇关于Intellij IDEA 的maven项目通过Java代码实现 Jetty 的 Http服务器的文章就介绍到这了,更多相关Intellij IDEA  Http服务器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • IntelliJ IDEA 构建maven多模块工程项目(详细多图)

    食用前须知 本文以a b c 三个模块为例来搭建项目,以达到通俗易懂的初衷 模块a -– 基模块,就是人们常说的parent 模块b -– 其他模块都需要使用的一些工具,比如时间工具,json工具等 模块c -– 项目主要的内容,一般为聚合工程 先简单讲一下maven的一些特点 继承 这个可以理解为java中的继承类似,父类定义的东西,子类如果你想用就拿过来用就可以; 依赖 依赖就相当于我们java中的导包,二者有着异曲同工之妙; 你想用的东西只需要告诉maven它在哪就可以,它会自动帮你找过来

  • 解决IntelliJ IDEA创建spring boot无法连接http://start.spring.io/问题

    IntelliJ IDEA 是大家常用编码工具之一: spring-boot也是目前常用的spring框架之一: 但是偶尔会遇到一些不常遇见的问题:使用IntelliJ IDEA创建spring boot却无法连接http://start.spring.io/: 今天屌丝猿亲身体验给大家分享一下解决办法: 第一步:打开控制面板进入指定菜单 第二部:找到自己电脑默认的浏览器,我这里用的Google chrome,然后将两个按钮选中:如果找不到就点击 允许允许另一个程序,然后选中桌面上你想要的程序,

  • Intellij IDEA中如何查看maven项目中所有jar包的依赖关系图

    Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项目.一般单我们在 pom.xml 添加了依赖包或是插件的时候,发现标注 4 的依赖区中没有看到最新写的依赖的话,可以尝试点击此按钮进行项目的重新载入. 第六个按钮:Execute Maven Goal 弹出可执行的 Maven 命令的输入框.有些情况下我们需要通过书写某些执行命令来构建项目,就可以通

  • 详解IntelliJ IDEA 自带的 HTTP Client 接口调用插件吊打 Postman

    1 前言 当我们在开发调试 Web 服务的时候,需要对接口进行调用测试:或者对接第三方系统时,需要调用远程第三方的接口进行联调.这时,相信大家首选的工具一般会是 Postman ,一款当今比较流行而且功能齐全的接口调用调试工具.如下所示: 不过我们一般使用 IntelliJ IDEA 代码编辑器来开发和调试 Web 服务,如果使用 Postman 工具来测试接口,不仅要在电脑上安装 Postman ,还需要在不同工具之间切换,比较麻烦.幸运地的是 IDEA 自带了一款简洁轻量级的接口调用插件,H

  • IntelliJ IDEA将导入的项目转成maven项目

    今天导入公司的maven项目,发现结构不对劲,难怪说为啥一直不能部署tomcat,后面百度才了解到导入这个项目还不是maven项目,首先需要把这个项目变成maven项目,然后再进行tomcat的部署下面是没有转换之前的项目结构 在工具的右边栏找到MavenProject并点开 点击加号,选择当前这个项目的pom.xml文件 然后右下角就有一个进度条在跑,那就表示正在将这个项目变成maven项目并且正在导入依赖jar包这些,当进度条结束之后,maven项目也就构建完成了 maven构建完成,会弹出

  • Intellij IDEA 的maven项目通过Java代码实现Jetty的Http服务器(推荐)

    目录 一.添加 pom.xml 二.在maven 加载 jetty 三.新建AttendentConsoleHttpServlet.java 四.在App.java 中 加入 五.运行 java Jetty是一个轻量级的高度可扩展的基于 java的web服务器和servlet引擎. 下面是 使用 Intellij IDEA 的maven项目 通过Java代码,实现 Jetty 的 Http服务器 从而获取到 Http 的 Get 和 Post 请求 一.添加 pom.xml <!-- Jetty

  • IntelliJ IDEA 创建Maven项目速度慢的2种解决方法

    IntelliJ IDEA 创建maven项目速度很慢,甚至卡住不动了. 原因 IDEA根据maven archetype的本质,其实是执行mvn archetype:generate命令,该命令执行时,需要指定一个archetype-catalog.xml文件. 该命令的参数-DarchetypeCatalog,可选值为:remote,internal ,local等,用来指定archetype-catalog.xml文件从哪里获取. remote--指向Maven中央仓库的Catalog i

  • Intellij IDEA中一次性折叠所有Java代码的快捷键设置

    问题:在Java文件中,想把所有的Java方法代码都一次性给折叠起来,用哪个点开哪个. 问题来源:在新建model bean的时候,要是属性很多,那么对应的getter和setter就会很多,要是所有的方法代码都是展开状态,那么这个文件看着也不甚美观,所以,可以把方法都折叠起来. 下面看怎么设置快捷键:看法宝... 要是看不懂,系统自带的快捷键配置,大可以,自己再修改个,就像这个折叠代码的这个快件,折叠一个方法的快捷键是:  ctrl + 减号. 我就把折叠所有的快捷键设置成:ctrl+shif

  • eclipse导入IntelliJ IDEA的maven项目的示例

    去年由于项目需要由eclipse转到IntelliJ IDEA,当时的项目经理balabala一大堆idea如何如何好,经过一年多的使用确实说的没错. 现在加入另外一个项目,新的项目经理又建议我用回eclipse,我就想eclipse应该可以导入idea的项目,于是上网搜基本都是idea导入eclipse项目的文章,于是自己尝试用eclipse导入idea项目. 目前只尝试了maven项目,至于其他类型的project以后再补上上. 1.现有idea maven项目,打开eclipse,导入ma

  • IDEA Maven项目使用debug模式运行Tomcat的详细教程

    1.在pom.xml中添加下面的依赖就可以了 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> // 这个是作用域 </dependency> <depend

  • Java中Maven项目导出jar包配置的示例代码

    具体代码如下所示: <!-- 第一种打包方式 (maven-jar-plugin), 将依赖包和配置文件放到jar包外 --> <build> <sourceDirectory>src/main/java</sourceDirectory> <resources> <resource> <directory>src/main/resources</directory> <!-- 将<director

  • 【IntelliJ IDEA】Maven构建自己的第一个Java后台的方法

    本文介绍了Maven构建自己的第一个Java后台的方法,分享给大家,具体如下: 1.知识后顾 关于如何运用Maven构建自己的第一个项目,上期我已经详细的讲解过了,上篇链接:今天我以SpringMvc,Mybatis框架搭建一个属于你自己的Java后台. 2.必要准备 ①IntelliJ IDEA,Maven环境搭好 ②熟悉掌握MyBatis,SpringMVC等框架 ③mysql数据库的创建 3.整体架构布局 4.具体步骤 ①在pom.xml中配置工程要使用的jar包 <?xml versio

  • 新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目(图文教程)

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: 接下来自定义GroupId以及ArtifactId,这里只是demo,所以随便命名了 然后自定义项目名,Finish: maven创建完毕 maven中,第一次创建会在src下生成main/java以及main/resources目录,src中的test目录是要自己创建的,test目录的中代码不会被

  • 用intellij Idea加载eclipse的maven项目全流程(图文)

    IntelliJ IDEA简称IDEA,是常用的java开发工具,相对eclipse在使用上入门较难,但在编写java代码方面比较eclipse方便,强大(个人使用心得),下面介绍如何用intellij Idea加载eclipse的maven项目 eclipse的maven项目目录 全流程加载项目打开intellij Idea file -> new -> module from existing Sources 选择.pom的文件,系统将自动加载maven项目 加载后显示的界面如下图所示 设

  • java application maven项目打自定义zip包实例(推荐)

    1.配置pom.xml文件,添加build节点 <build> <!-- 输出的包名 --> <finalName>p2p</finalName> <sourceDirectory>src/main/java</sourceDirectory> <resources> <!-- 控制资源文件的拷贝(默认复制到classes目录,最后打进jar包) --> <resource> <directo

随机推荐