目录
一.浏览器(Browser)
二.Tomcat(Server)
三.Servlet(处理请求和响应)
四.Java(开发者)
思考与解答
五.MySQL(JDBC)
六.关系图
一.浏览器(Browser)
解析web应用前端返回的HTML、CSS、JavaScript功能代码,渲染成用户 *** 作界面,采用HTTP协议通过Tomcat服务器请求(request)和响应(response)web应用前端,同时借助JSON数据实现web系统数据的传输。
二.Tomcat(Server)
Java语言编写开源的一套规范的业务接口类库,根据Browser指定URL信息,负责Browser的Servlet实现类交互,web前端和web后端的服务者(类私中介转发消息的作用)。
三.Servlet(处理请求和响应)
是sun公司制定的Java语言与Tomcat服务器进行通信的一套规范的业务接口类库,提供给开发者处理web应用的Java小程序功能。
四.Java(开发者) 思考与解答
Tomcat如何根据URL路径去准确找到Servlet的?
例如:UserServlet中有login()和register()的两个Java小程序(登录或注册),URL是“http://localhost:8080/项目名/login.html”,当触发前端的form表单的action="/UserServlet/login",或者Ajax的url:"/UserServlet/register"、port:"8080"。
再次思考:为什么触发url的路径就能找到对应的UserServlet呢?
(1)UserServlet(xxxServlet)都必须遵守Tomcat接口规范,《实现Servlet接口》这是规范!!!如---> public UserServlet impleament Servlet{ xxx},好比浏览器与Tomcat规范是HTTP协议,而Tomcat与Java语言规范就是Servlet。
(2)实现Servlet后必须通过xxx.properties来键值(或web.xml)对方式来注册UserServlet的完全限定名称"com.dhrj.zs.UserServlet"。
(3)Tomcat是Java语言开发,启动Tomcat的“startup.bat”命令是,命令文件内容指向一个bootstrap.jar包,源码底层启动Tomcat是Java主方法main(),在main方法中启动服务(8080服务端口)后,接受到前端的请求,根据URL路径信息找到对应的Servlet,同时读取xxx.properties,根据键获取对应Servlet的完全限定名称赋值给String类型变量,利用Java反射机制的Class类的静态方法fromName("完全限定名称")+和newInstance()创建Object对象,此对象使用Method +Filed+Constructor来获取调用类的属性和方法,再通过JDK动态代理的Proxy.newProxyInstance(类加载器、接口数组、InvocationHandler接口),实现InvocationHandler接口,调用invoke()动态返回代理结果给代理实例对象(Proxy)。
(4)根据Java语言的多态机制,Tomcat肯定UserServlet是实现sun公司的Servlet接口,因此Tomcat启动main()执行,在编译阶段指向sun公司的Servlet接口,运行时动态绑定UserServlet,动态调用重写sun公司的Servlet接口的init()/service()/destroy()/getServletInfo()/getServletConfig()
五.MySQL(JDBC)
JDBC(好比HTTP和Servlet)是sun公司制定Java语言连接数据库的规范接口类库,使用MySQL驱动包+JDBC来完成。
六.关系图
图片来源:动力节点老杜2022-JavaWeb
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)