IntelliJ IDEA创建Servlet方法(idea 2020.2) 以及使用html网页请求servlet的方法

第一次使用intelliJ idea创建Servlet,这里就把我遇到的问题以及解决的办法分享给大家

创建Servlet步骤

1.创建Java项目

File -> New -> Project…
在这里插入图片描述
Java -> Next
在这里插入图片描述

-> Next
在这里插入图片描述
设置项目名称和路径 -> Finish
在这里插入图片描述
得到了刚刚创建出来的Java项目
在这里插入图片描述

2.把Java项目设置成web项目

2.1在Servlet01上鼠标右键 -> Add Framework …
在这里插入图片描述
勾选Web Application
在这里插入图片描述
得到的Web项目先比之前多了web文件夹,如下
在这里插入图片描述
在WEB-INF文件夹下创建classes和lib文件夹,用于存放项目编译文件和jar包
在这里插入图片描述
创建出来就是下面的样子
在这里插入图片描述
之后设置classes文件夹为存放下面编译文件
在这里插入图片描述
下面的第4步为:当前classes文件路径
在这里插入图片描述
classes设置成功之后变为橙黄色
在这里插入图片描述
下面就是lib文件夹的设置
和之前一样点击加入Project Structure,安装下列步骤
在这里插入图片描述
点击加载Tomcat下的lib文件夹中的servlet.jar文件夹
在这里插入图片描述
lib文件夹设置成功
在这里插入图片描述

3.加载Tomcat

按照下列步骤
在这里插入图片描述
下面第4点尤为重要,否则回出现warming
在这里插入图片描述
再次点击进入Configurations,设置Application context,之后的演示都是以Application context为 / 进行的
在这里插入图片描述
Tomcat设置成功
在这里插入图片描述

4.编写web项目

4.1在src文件夹下右键新建class,命名为DemoServlet,继承Servlet,编写如下代码:

/**
 * @Author: 彭德华
 * @Description:
 * @Date Created in  2021-01-11 16:37
 * @Modified By:
 */
public class DemoServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化参数");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("执行逻辑语句");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("销毁Servlet");
    }
}

4.2在web文件夹下编写Login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>Login</h1>
    <a href="/tologin"></a>
</body>
</html>

注意

这里不能把超链接写成

<a href="\tologin"></a>

的格式,使用 ‘\’ 符会导致错误:

war exploded: Error during artifact deployment

使得之后出现运行无法链接Tomcat
在这里插入图片描述

4.3.点开WEB-INF文件夹下的web.xml文件

在XML中配置好这个Servlet的映射关系:

<servlet>
    <servlet-name>自定义名称</servlet-name>
    <servlet-class>处理请求的类的完整路径</servlet-class>
</servlet>
<servlet-mapping><!-- mapping 表示映射 -->
    <servlet-name>自定义名称</servlet-name>
    <url-pattern>请求名</url-pattern>
</servlet-mapping>

实际代码如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>
            com.web.DemoServlet
        </servlet-class>
    </servlet>
    <servlet-mapping><!-- mapping 表示映射 -->
        <servlet-name>login</servlet-name>
        <url-pattern>/tologin</url-pattern>
    </servlet-mapping>
</web-app>

4.4编写完成的目录
千万不能错
在这里插入图片描述

5.运行,使用html网页连接了DemoServlet了

点击运行
弹出网页
在这里插入图片描述
在输入如下地址

http://localhost:8080/login.html

进入我们编写好的html页面
在这里插入图片描述
接下来看看是否能成功响应
在这里插入图片描述
在这里插入图片描述
成功出现我们编写的执行语句
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

最后,若想直接连接DemoServlet程序,直接在DemoServlet代码里面加上

@WebServlet("/类名")

如下

@WebServlet("/DemoServlet")
public class DemoServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化参数");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("执行逻辑语句");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("销毁servlet");
    }
}

在浏览器里面输入

http://localhost:8080/DemoServlet

即可访问!

6.结语

过程工作量巨大,希望能帮到大家,有疑问欢迎评论交流!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐