模拟servlet的本质

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟servlet的本质相关的知识,希望对你有一定的参考价值。

模拟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

实验成果截图:

以上是关于模拟servlet的本质的主要内容,如果未能解决你的问题,请参考以下文章

HttpServlet源码分析

get请求和post请求的区别

servlet的本质是啥,它是如何工作的?

Servlet的本质?它是如何工作的?大白话

Servlet的本质?它是如何工作的?大白话

Servlet 知识点 中文乱码的本质与解决