使用idea已经有段时间了,但是一直没有自己亲自新建一个项目,从头开始写一个Servlet,今天就来学习一下,并且记一个笔记。

一。

1.首先,打开idea new-->Project

2.选择Maven 项目 点击下一步

3.填写groupid 和 Artifactid  如下:

4.点击下一步 选择一个路径,这个路径是存放你项目的路径

5.完了之后,用一个新窗口打开:

目录结构如下:

6.然后将mav项目,转成web项目

右键项目Add Framework Support

7.添加Web Application 支持

8.点击ok 后,项目就变为了web项目,看如下目录:

9.然后基本的项目已经起来了,然后就是写代码了,

二。

1.在src-->main-->java 下新建一个包 com.demo.servlet  然后在此包下新建一个 HttpServlet 类

2.然后在此类下书写代码,首先HttpServlet 类要继承HttpServlet ,但是我在写这个继承的时候没有给我提示,如下所示:

只要是因为这个工程还没有添加 对servlet的支持,下面在pom文件中添加对 servlet的支持

  1.  
    <dependencies>
  2.  
    <!--引入servlet-->
  3.  
    <dependency>
  4.  
    <groupId>Javax.servlet</groupId>
  5.  
    <artifactId>servlet-api</artifactId>
  6.  
    <version>3.0-alpha-1</version>
  7.  
    </dependency>
  8.  
    </dependencies>

pom文件如下:

  1.  
    <?xml version="1.0" encoding="UTF-8"?>
  2.  
    <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.  
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.  
    <modelVersion>4.0.0</modelVersion>
  6.  
     
  7.  
    <groupId>com.demo</groupId>
  8.  
    <artifactId>hellodemo02</artifactId>
  9.  
    <version>1.0-SNAPSHOT</version>
  10.  
     
  11.  
    <dependencies>
  12.  
    <!--引入servlet-->
  13.  
    <dependency>
  14.  
    <groupId>Javax.servlet</groupId>
  15.  
    <artifactId>servlet-api</artifactId>
  16.  
    <version>3.0-alpha-1</version>
  17.  
    </dependency>
  18.  
    </dependencies>
  19.  
     
  20.  
    </project>

3.此时再继承HttpServlet 就有这个提示了:

4.继承HttpServlet之后,需要重写doGet方法,在idea中 使用快捷键 Ctrl+O 选择重写的方法

写完之后下面是HelloServlet的代码

  1.  
    package com.demo.servlet;
  2.  
     
  3.  
    import javax.servlet.ServletException;
  4.  
    import javax.servlet.http.HttpServlet;
  5.  
    import javax.servlet.http.HttpServletRequest;
  6.  
    import javax.servlet.http.HttpServletResponse;
  7.  
    import java.io.IOException;
  8.  
    import java.io.PrintWriter;
  9.  
     
  10.  
    public class HelloServlet extends HttpServlet {
  11.  
    @Override
  12.  
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  13.  
    PrintWriter out = response.getWriter();
  14.  
    try {
  15.  
    request.setCharacterEncoding("UTF-8");
  16.  
     
  17.  
    response.setContentType("text/html; charset=utf-8");
  18.  
    response.setCharacterEncoding("UTF-8");
  19.  
    String userId = request.getParameter("userId");
  20.  
    String pwd = request.getParameter("pwd");
  21.  
    if("admin".equals(userId) && "password".equals(pwd)){
  22.  
    out.println("success");
  23.  
    }else{
  24.  
    out.println("fail");
  25.  
    }
  26.  
    out.println("<br/>");
  27.  
    String servletPath = this.getServletContext().getRealPath("/");
  28.  
    out.println(servletPath);
  29.  
    out.close();
  30.  
     
  31.  
    } catch (Exception e) {
  32.  
    // TODO: handle exception
  33.  
    }
  34.  
    }
  35.  
    }

5.写完HelloServlet之后还不行,我们还没有在web.xml中进行配置

下面是web.xml中的内容

  1.  
    <?xml version="1.0" encoding="UTF-8"?>
  2.  
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3.  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.  
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  5.  
    version="4.0">
  6.  
     
  7.  
    <display-name>hellodemo</display-name>
  8.  
    <servlet>
  9.  
    <servlet-name>HelloServlet</servlet-name>
  10.  
    <servlet-class>com.demo.servlet.HelloServlet</servlet-class>
  11.  
    </servlet>
  12.  
    <servlet-mapping>
  13.  
    <servlet-name>HelloServlet</servlet-name>
  14.  
    <url-pattern>/hello</url-pattern>
  15.  
    </servlet-mapping>
  16.  
    </web-app>

6.再然后就是在idea中配置tomcat了 如何配置我这里就不写了 我也会大家都会,我就把截图放一下吧:

设置:Application context:/demo02

之后启动timcat 访问:

http://localhost:8080/demo02/hello
页面如下:

砍我HelloServlet 中 的写法 我这么访问:

http://localhost:8080/demo02/hello?userId=admin&pwd=password

返回的页面就是success

至此,使用idea 新建一个Maven项目,并且书写第一个Servlet 完成,接下来,研究一下HttpServlet

不积跬步,无以至千里

不积小流,无以成江海

转载自:https://blog.csdn.net/liuying1802028915/article/details/85029145

idea 如何新建一个Maven项目并且写第一个servlet的更多相关文章

  1. 新建我的 第一个maven项目

    maven是管理项目的,myeclipse是编写代码的.第一次写项目都要配置好多东西,很麻烦,now 来看看怎样新建一个maven项目. 百度经验:jingyan.baidu.com 工具/原料   ...

  2. 如何在idea里面新建一个maven项目,然后在这个maven项目里创建多个子模块

    如何在idea里面配置maven我这里就不多说了 先新建一个maven项目作为总的管理项目 不用勾选什么,直接下一步 这样子一个普通的maven项目就创建成功了. 因为这个项目是用来管理多个子模块的, ...

  3. 如何在maven项目里面编写mapreduce程序以及一个maven项目里面管理多个mapreduce程序

    我们平时创建普通的mapreduce项目,在遍代码当你需要导包使用一些工具类的时候, 你需要自己找到对应的架包,再导进项目里面其实这样做非常不方便,我建议我们还是用maven项目来得方便多了 话不多说 ...

  4. eclipse中创建一个maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  5. 建一个maven项目

     建一个普通的maven项目(eclipse) 需要的jar和文件: eclipse :jdk1.8.0_144 maven:apache-maven-3.5.3     进入(下载):http:// ...

  6. Maven(一)如何用Eclipse创建一个Maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  7. jenkins 构建一个maven项目

    1.首先在 全局工具配置 里配置maven的路径信息 这里因为之前已经下载了maven并放在了E盘,因此只需要在 MAVEN_HOME 添加maven文件夹的路径 如若本地还没maven,勾选 “自动 ...

  8. (一)maven之创建一个maven项目

    为什么要使用Maven? 1.  maven使用的是本地仓库存储jar,所有项目都会共用仓库中的同一份jar. 2.  Spring core.jar必须同时引用版本兼容的common-logging ...

  9. 3.将maven项目jar纳入maven仓库,Mave项目依赖另外一个Maven项目的案例

     1 若想让maven项目依赖另外一个maven项目.被依赖的项目要在maven仓库中有对应的jar包,所以要对依赖的项目运行mvninstall命令. 2 新建第二个项目模块HelloFrien ...

随机推荐

  1. java ArrayList的remove()方法的参数为int和Integer的问题

    ArrayList的父类List中,有2个remove重载方法: remove(int index) remove(Object o) 假如参数输入为数字类型,到底是删除值等于该数字的对象还是删除索引 ...

  2. java基础(6)---面向对象,类,包

    一.类 类对象内存:  成员变量和局部变量: 成员变量:类中定义的一些私有变量,表示对象的属性. 局部变量:局部变量是在方法体里创建的,在方法体外是访问不到这个变量的. public class te ...

  3. MySQL 查询排除指定字段、自定义变量、动态执行SQL

    今天在项目中,要查询一个表.这个表中有几十个字段.但是要把其中的一个特殊处理. 这个该怎么办呢?查来查去,SQL 中没有排除某一些字段的语句,只能单独写一些语句来处理: 基本思路:对于MySQL数据库 ...

  4. CH6302 雨天的尾巴

    6302 雨天的尾巴 0x60「图论」例题 背景 深绘里一直很讨厌雨天. 灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切. 虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了 ...

  5. 【学习笔记】Baby Step Giant Step算法及其扩展

    1. 引入 Baby Step Giant Step算法(简称BSGS),用于求解形如\(a^x\equiv b\pmod p\)(\(a,b,p\in \mathbb{N}\))的同余方程,即著名的 ...

  6. 非自增编号字段,避免生成重复编号(以pdfNo编号为例)RedisLock/ReadLock

    非自增编号字段,避免生成重复编号(以pdfNo编号为例) 有个场景,用户查询延误航班信息,然后生产一个编号,默认第一个编号是1000001,其后新增的编号默认自增加1.每次有人来查延误信息,如果延误信 ...

  7. 4、MapReduce思想、运行机制

    MapReduce 离线计算框架 分而治之 input > map > shuffle > reduce > output 分布式并行的计算框架 将计算过程分为两个阶段,Map ...

  8. 002——转载Excel2010分成两个或者多个独立窗口

    在借鉴了很多个baidu方法之后,使用修改注册表之后我的Excel终于可以独立窗口出来了.转自:www.xuexila.com/excel/2010/2051008.html方法如下: 本操作需要修改 ...

  9. vue组件传值的三种方式,文字版解释

    父传子: 当子组件子父组件中当标签使用的时候,给子组件添加一个自定义属性,值为需要传递的值(如: <Child v-bind:parentToChild="parentMsg" ...

  10. 看加载的php.ini 和 phpinfo 配置路径

    php -i | grep "phar.readonly"看当前值php -i | grep "php.ini" 看加载的php.ini是哪个