通过IDEA创建运行第一个Servlet项目

通过IDEA创建运行第一个Servlet项目

IDEA版本为2020.2

参考: https://jingyan.baidu.com/article/a65957f43dfb0324e67f9b0a.html

1. 创建第一个Servlet项目

  1. 创建java项目

    image-20210308151409562

    image-20210308151441583

  2. 给项目起名

    image-20210308151602914

  3. java项目创建完成, 下图为目录结构

    image-20210308151650257

  4. 添加框架支持, 使项目成为Java Web项目

    image-20210308151759758

  5. web/WEB-INF下创建classeslib目录

    lib用来放项目所需JAR

    classes用来作为项目的编译输出路径

    image-20210308152134968

  6. 接下来配置项目的编译输出路径
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保失败,源站可能有防盗链机制,建议将图片保存下来直接上传存下来(img-jwjl0csz-1615787036347)(D:%5CTypora%20Img%5C20210308152216-1615787027353.png)(D:%5CTypora%20Img%5C20210308152216-1615787027353.png)]

在这里插入图片描述

当然你也可以选择inherit project compile output path, 即默认的项目输出路径

该路径可以在Project Structure/Project中找到

  1. 配置完成后, 项目的目录结构如下

    image-20210308152544027

  2. 接下来添加Servlet所需的JAR

    image-20210308152859225

    从你的Tomcat安装目录下找到servlet-api-jar并添加

    image-20210308152955473

  3. 接下来配置TomcatIDEA

    image-20210308153154487

    image-20210308153248426

    image-20210308153618849

    image-20210308154602572

  4. 手动将项目部署到Tomcat

    image-20210308154721165

    image-20210308154914477

    至此, 项目创建成功.

    接下来就编写一个简单的Servlet程序测试一下


以下代码写的比较菜, 大佬勿喷, 有错误欢迎指正

2.前端编写

使用bootstrap3写一个简单的四六级查询

<!DOCTYPE html>
<html>
<head>
    <title>四六级查询</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="css/index.css" rel="stylesheet">
    <link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css", rel="stylesheet">
</head>
<body>
<br><br><br>
<div class="bg-primary container text-center">
    <h1>四六级查询</h1>
    <hr>
    <form action="CetServlet" class="form-inline">
        考号:
        <input type="text" class="form-control" name="studentId"> <!--name属性用于标识,从而使后端获取输入框的数据-->
        <br><br>
        姓名:
        <input type="text" class="form-control" name="studentName"> <!--name属性用于标识,从而使后端获取输入框的数据-->
        <br><br>
        <input type="submit" class="btn btn-success">
    </form>
</div>
</body>
</html>
  • 目录结构

    image-20210308155902232

  • 效果

    image-20210308160102946

3.编写Servlet

package com.shy.servlet;

import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

//Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
//Servlet 初始化后调用 init () 方法。
//Servlet 调用 service() 方法来处理客户端的请求。
//Servlet 销毁前调用 destroy() 方法。
//最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
public class CetServlet implements Servlet {  // 实现Servlet接口
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    /**
     * 用于获取Servlet配置相关的信息
     */
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

        // 1.获取请求参数
        String stuId = servletRequest.getParameter("studentId"); // 参数即<form>的name属性
        String stuName = servletRequest.getParameter("StringName");

        // 2. 用随机数模拟分数
        int stuScore = Math.abs(new Random().nextInt(711));

        /* 若生成的请求页面出现乱码,可添加以下设置:
           但必须在获取PrintWriter对象之前获取
           text/html是设置MIME类型,用于指定响应的内容以html格式显示
           utf-8 防止中文乱码
         */
        servletResponse.setContentType("text/html;charset=utf-8");
        // 3.响应客户端的请求
        // PrintWriter对象指定相应内容, 支持HTML
        PrintWriter out = servletResponse.getWriter();

        // 简单写一下格式
        out.println("<h1>查询结果<h1><hr>");
        out.println("<br>考号:" + stuId);
        out.println("<br>姓名:" + stuName);
        out.println("<br>成绩:" + stuScore);
    }

    /**
     *
     * 获取Servlet的相关信息
     */
    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}
  • 目录结构:

    image-20210308161937030

4. 连接前后端

通过修改web.xml, 使Servlet能够响应网页的请求

<?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">
    <!--
    web.xml是一个web程序的配置文件.
    所有关于web程序的全局配置在该文件中配置
    该文件描述了Tomcat应该如何部署你的程序
    -->

    <servlet>
        <servlet-name>CetServlet</servlet-name> <!--指定该servlet程序的名称,可以随便起-->
        <servlet-class>com.shy.servlet.CetServlet</servlet-class> <!--需指定servlet类的全路径-->
    </servlet>
    <servlet-mapping>
        <servlet-name>CetServlet</servlet-name> <!--该name需与上面保持一致-->
        <url-pattern>/html/CetServlet</url-pattern> <!--设置该Servlet类在浏览器上访问时的路径-->
    </servlet-mapping>
    
</web-app>
5. Run Project

image-20210308163221033

image-20210308163319250

  • index.html

    image-20210308165019264

  • 响应页面

    image-20210308164945674


源码点这

芜湖~~

  • 12
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值