0
点赞
收藏
分享

微信扫一扫

模拟servlet的本质

沉浸在自己的世界里 2022-04-14 阅读 89

模拟Servlet本质,方便理解Servlet


Tomcat.java

package org.apache;
//充当Tomcat服务器的开发者
import java.util.Scanner;
import java.util.Properties;
import java.io.FileReader;
import javax.servlet.Servlet;
public class Tomcat{
	public static void main(String[] args) throws Exception{
		System.out.println("Tomcat服务启动成功,开始接收用户的访问.");
		//简单的使用Scanner来模拟用户的请求
		//用户访问服务器是通过浏览器上的请求路径
		//也就是说用户请求的路径不同,后台执行的Servlet不同

		 System.out.print("请输入您的访问路径:");
		 Scanner s = new Scanner(System.in);
		 //用户的请求路径
		 String key = s.nextLine();
		 
		 //ResourceBundle bundle = ResourceBundle.getBundle("web.properties");
		 FileReader reader = new FileReader("web.properties");
		 Properties pro = new Properties();
		 pro.load(reader);
		 reader.close();
		 //通过Key获取value
		 String className=pro.getProperty(key);
		 //通过反射机制创建对象
		 Class clazz = Class.forName(className);
		 Object obj=clazz.newInstance();//obj的类型对应Tomcat服务器开发人员来说不知道4

		 //但是Tomcat服务器的开发者知道,你写的xxxServlet一定实现了Servlet接口
		 Servlet servlet = (Servlet)obj;
		 servlet.service();
		 
	}
}

Servlet.java

package javax.servlet;
public interface Servlet{
	void service();
}

BankServlet.java

package com.xiangyang.servlet;
import javax.servlet.Servlet;
public class BankServlet implements Servlet{
	public void service(){
		System.out.println("BankServlet's service....");
	}
}

UserListServlet.java

package com.xiangyang.servlet;
import javax.servlet.Servlet;
public class UserListServlet implements Servlet{
	public void service(){
		System.out.println("UserListServlet's service....");
	}
}

UserLoginServlet.java

package com.xiangyang.servlet;
import javax.servlet.Servlet;
public class UserLoginServlet implements Servlet{
	public void service(){
		System.out.println("UserLoginServlet's service....");
	}
}

web.properties

/userlist=com.xiangyang.servlet.UserListServlet
/userlogin=com.xingyang.servlet.UserLoginServlet
/bank=com.xiangyang.servlet.BankServlet

实验成果截图:
在这里插入图片描述

举报

相关推荐

0 条评论