模拟tomcat服务器,sun公司,webapp开发者

模拟tomcat服务器,sun公司,webapp开发者

首先我们思考一下一个动态web应用需要哪些角色参与,角色与角色之间又有多少协议?

1.有4种角色,分别是(浏览器开发团队[如谷歌],web服务器开发团队[如tomcat],数据库开发团队[如mysql],webapp开发团队[java开发者])

2.①webapp开发团队和web服务器开发团队之间遵循 servlet规范[作用是webapp和web服务器之间的解耦合]②浏览器开发团队和web服务器开发团队遵循 HTTP协议③webapp开发团队和数据库开发团队之间遵循 JDBC规范

模拟sun公司(制定servlet规范)

package javax.servlet;
/*
我充当的sun公司,我制定了Servlet接口/规范。
*/
public interface Servlet {
    void servlet();
}

模拟tomcat服务器

/*
我充当的stomcat服务器,我提供mian方法。
*/
package javax.servlet;
public class Tomcat {
    public Tomcat() {
    }

    public static void main(String[] args) {
        System.out.println("tomcat服务器启动成功了,开始介绍用户的访问");
        System.out.println("请输入您要访问的路径");
        Scanner scanner = new Scanner(System.in);
        String kay = scanner.nextLine();

        try {
            FileReader fileReader = new FileReader("src/main/java/web.properties");
            Properties properties = new Properties();
            properties.load(fileReader);
            fileReader.close();
            properties.getProperty(kay);
            Class aClass = Class.forName(property));
            Servlet servlet = (Servlet)aClass.newInstance();
            servlet.service();
        } catch (FileNotFoundException var8) {
            throw new RuntimeException(var8);
        } catch (IOException var9) {
            throw new RuntimeException(var9);
        } catch (ClassNotFoundException var10) {
            throw new RuntimeException(var10);
        } catch (InstantiationException var11) {
            throw new RuntimeException(var11);
        } catch (IllegalAccessException var12) {
            throw new RuntimeException(var12);
        }
    }
}
}

webapp开发者

package WEBINF;

import javax.servlet.Servlet;

public class UserListServlet implements Servlet {
    @Override
    public void service() {
        System.out.println("UserListServlets servlet...");
    }
}
</code></pre>
<pre><code class="language-java">package WEBINF;

import javax.servlet.Servlet;

public class UserLoginServlet implements Servlet {
@Override
public void service() {
System.out.println("UserListServlet servlet...");
}
}

配置文件

/aaaa=WEBINF.UserLoginServlet
/bbbb=WEBINF.UserListServlet

效果

模拟tomcat服务器,sun公司,webapp开发者

Original: https://www.cnblogs.com/yousuobutong/p/16644197.html
Author: 尤所不同
Title: 模拟tomcat服务器,sun公司,webapp开发者

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/569185/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 入门 Spring Security

    @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowir…

    Java 2023年5月30日
    078
  • MongoDB 体系结构与数据模型

    MongoDB主要是由文档(document)、集合(collection)、数据库(database)这三部分组成的。类比于mysql的行、表、数据库。 MYSQL 与 Mong…

    Java 2023年6月9日
    088
  • 2018年最新JAVA面试题总结之数据库(3)

    转自于:https://zhuanlan.zhihu.com/p/39804394 1、MySQL的delete与truncate区别? 回答:delete语句执行删除的过程是每次…

    Java 2023年6月13日
    066
  • 6000字|22张图 带你彻底弄懂Zookeeper分布式锁

    前面我们剖析了Redisson的源码,主要分析了Redisson实现Redis分布式锁的15问,理清了Redisson是如何实现的分布式锁和一些其它的特性。这篇文章就来接着剖析Zo…

    Java 2023年6月16日
    072
  • Spring Boot 项目部署到 Linux服务器

    1.首先将SpringBoot项目打包成JAR包,然后通过FTP工具上传到Linux,执行如下命令: java -jar xxx.jar & 该命令执行后,启动jar,一旦…

    Java 2023年6月5日
    088
  • 终止线程的运行

    终止线程的执行 强制终止用的是stop()方法,因为这种方法会丢失数据,所以一般不采用这种方法。 原理是直接杀死线程,这样的话线程中没有保存的数据就会丢失 /* 在java中强制终…

    Java 2023年6月9日
    0102
  • 如何实现跨域?

    https://blog.csdn.net/meism5/article/details/90414283 Original: https://www.cnblogs.com/cr…

    Java 2023年6月13日
    069
  • Java中类成员访问权限修饰符(public、protected、default、private)

    1.public(公共): 任何类都可以进行访问(最不严格)。 2.protected(受保护): 同一包内的类以及其子类可以进行访问。 3.default(默认): 类中不加任何…

    Java 2023年6月13日
    065
  • java创建对象的5种方式

    1、使用new关键字 2、利用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法 3、…

    Java 2023年6月7日
    040
  • Spring系列12: `@Value` `@Resource` `@PostConstruct` `@PreDestroy` 详解

    前面章节介绍了使用 @Autowired注入依赖的详细用法,感兴趣的可以翻看前面的文章。Spring 还支持通过在字段或 bean 的 Setter方法上使用 JSR-250 @R…

    Java 2023年6月5日
    066
  • 链表的选择排序

    链表的选择排序 问题重述: 给定一个无序单链表的头节点head,实现单链表的选择排序 要求:额外空间复杂度为O(1) 问题分析: 解法: 选择排序 解题: 代码: // 如果没有限…

    Java 2023年6月7日
    078
  • nginx 转发接口出现 403 forbidden

    当你尝试完网上解决nginx 403 forbidden 的方法后仍然出现访问后台接口403的问题 不妨把问题定位到服务器和程序服务上 通过定位程序日志 发现在启动的时候日志报 n…

    Java 2023年5月30日
    071
  • 聊一聊Redis事务

    没错,Redis也有事务管理,但是功能很简单,在正式开发中也并不推荐使用。但是面试中有可能会问到,所以本文简单谈一谈Redis的事务。 通过这篇文章,你会了解 Redis为什么要提…

    Java 2023年6月7日
    073
  • windows下载安装JDK8

    一 、下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm…

    Java 2023年6月5日
    096
  • Java8新特性1:接口中方法

    回顾之前《JavaSE-23.2》:https://www.cnblogs.com/yppah/p/14874992.htmlhttps://www.cnblogs.com/ypp…

    Java 2023年6月5日
    088
  • 变量

    变量:计算机内存当中存储数据的最基本的单元。 变量就是内存当中的一块空间。 变量有三要素:数据类型、变量名、字面值。 数据类型 变量名 = 变量值;或数据类型 变量名; 变量名 =…

    Java 2023年6月7日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球