• [sloved] IDE JavaServlet "Error: Could not find or load main class Servlet"


    [ sloved ] JavaServlet "Error: Could not find or load main class Servlet"

    报错内容:

    提供一份 Servlet 文件,点我下载

    预备知识:

    Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口广义的Servlet是指任何实现了这个Servlet接口的,一般情况下,人们将Servlet理解为后者。

    浏览器发送一个HTTP请求,HTTP请求由Web容器分配给特定的Servlet进行处理,Servlet的本质是一个Java对象,这个对象拥有一系列的方法来处理HTTP请求。常见的方法有doGet(),doPost()等。Web容器中包含了多个Servlet,特定的HTTP请求该由哪一个Servlet来处理是由Web容器中的web.xml来决定的。


    web服务器习惯处理静态页面,所以需要一个程序来帮忙处理动态请求(如当前时间)。Web服务器程序会将动态请求转发给帮助程序,帮助程序处理后,返回处理后的静态结果给web服务器程序。这样就避免了web服务器程序处理动态页面。Servlet的本质是一个帮助程序。如下图

    Servlet工作流程分为三个阶段。init(初始化),service(运行),destroy(销毁)

    Servlet没有main方法,所有行为由Container控制。Container就是一个java程序。

    在加载Servlet的.class后,Servlet会由构造函数生成一个实例,然后Container调用init()方法完成参数的初始化,接着调用service()方法,service会根据网页的请求,调用doGet或者doPost方法,最后调用销毁方法。整个流程如下图:

    报错解决:

    Servlet 按理是需要和 Tomcat 配合使用的,即应该选择 “Web Application”。但因为 Tomcat 环境变量的问题,没有办法实现。

    即可临时解决该问题。(但常规情况应是Servlet配合Tomcat针对jsp文件进行处理,详情查看 基础知识

    1、检查是否运行情况为 java filename 而并非 java filename.class

    2、直接新建普通项目

    3、环境变量 like:PATH、CLASSPATH

    4、缺少关键 jar 包:servlet-api.jar

    补个小技巧:

    成功效果图:

    鸣谢与参考:

    参考:
    https://zh.wikipedia.org/wiki/Java_Servlet
    https://www.zhihu.com/question/21416727
    感谢:usna

  • 相关阅读:
    UVALIVE 4819 最大流
    Directx 3D编程实例:随机绘制的立体图案旋转
    PHP漏洞全解(四)-xss跨站脚本攻击
    PHP漏洞全解(三)-客户端脚本植入
    PHP漏洞全解(二)-命令注入攻击
    PHP漏洞全解(一)-PHP网站的安全性问题
    BT5下安装Metasploit4.5方法
    Ubuntu使用apt-get安装本地deb包
    Linux按照时间查找文件
    Linux系统备份与还原
  • 原文地址:https://www.cnblogs.com/itxdm/p/6918107.html
Copyright © 2020-2023  润新知