前端时间和后端之间的信息交互: 前端确定了访问了文件位置,调用后端的相关执行程序文件
整个 B/S 结构中,什么人参与进去?
1、浏览器的开发者;
2、Web Server 开发团队 Tomcat,Jetty;
3、DB Server MySQL Oracle;
4、Java 程序的开发 Web APP 开发
Web 应用的开发的目录需要遵从一定的规范,在不同的 Web Server 都可以使用
达到通用的实现规范,可以不同的服务器上面使用
Serlet 就是制定的一套规范,可以规范的开发网络应用
HTTP 协议(超文本传输协议)
Browser 和 WebServer 之间存在的协议
Servlet 规范,Webapp 和 WebServer 之间存在的协议
Servlet 规范的作用:Web server , Web App之间解耦合,减少依赖程度
JDBC 的规范
Webapp 和 DBServer 之间存在的规范
不同的公司,制定了相关行业内部的规则,其他的开发者遵从相关的规则即可
关于前端访问静态的 html 文件,使用到大服务器的路径就可以
关于前端访问Java 程序,可以通过程序员执行的映射关系,进行程序的访问
1、编写一个类实现Servlet 接口
2、编写配置文件,编写的类配置到配置文件,在配置文件中指定请求路径和类名之间的关系
注意:
合格的 webapp 应该是什么样子的目录结构;
合格的 webapp 拥有什么样子的配置文件
合格的webapp配置文件放在什么地方
合格的webapp的Java程序放在什么地方
这些都是规定好的
Tomcat 服务器需要遵守规范,JavaWEB程序员也是同样需要遵守相关的规范,这样子Tomcat和
webapp 之间才能解耦合;
遵循了Servlet 规范的webapp 可以在不同的额服务器的下面运行
Servlet 规范中包括了什么呢?
1、规定了什么样子的接口
2、规范了一些类
3、规范了web 应用中应该有什么样子的配置文件
4、规范了配置文件的名字
5、规范了配置文件存储的路径
6、规范了webapp 配置文件中的内容…
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true"> <display-name>Tomcat Documentation</display-name> <description> Tomcat Documentation. </description> </web-app>
6、编写Java程序,小程序,不能随意开发,必须实现 Servlet 接口
Servlet 接口在什么位置?(javaEE 使用的是另外的类库,SE加强版本)
Servlet.class 文件
Servlet 是JavaEE 中的一员
Tomcat 服务器实现了 Servlet 接口,Tomcat 也是需要使用 Servlet 接口的
所以这个类在 Servlet 下面的文件中是可以找到的;lib 目录下面存在
Servlet-api.jar 文件
开发的Java源代码可以放置在任何的位置,但是 编译生成的 .class 文件必须放在 classes 文件夹下面
编写Java程序
将写好的Java文件编译好形成的 .class 文件放置在:WEB-INF\classes 文件夹下面
web.xml 文件中编写配置信息,使得 “请求路径” 和 ”Servlet类名“ 关联在一起
注册Servlet 类
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true"> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.luobin.javaweb.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> </web-app>
启动 tomcat 服务器(mac 使用这个命令可以像 win 在控制台进行输出信息)
catalina.sh run
在浏览器打开url
http://localhost:8080/crm/test
这个请求路径必须和 web.xml 中的url-pattern 保持一直才可以,否则,运行时可能不成功的;
注意:浏览器上面请求的路径和 web.xml 中的url-pattern 中的唯一区别就是:浏览器上面的请求路径是带着项目名字的;
浏览器上面编写的路径太长的时候,可以使用超链接进行处理;(html 文件只能放置在WEB-INF 目录的外面)
以后不需要编写 main 方法tomcat 在执行的时候,就是相当于 main 方法的功能,javaWeb 程序员,只需要写Servlet 接口的实现类,然后注册到 web.xml即可
javaEE8 叫做:javax.servlet.Servlet
jakataEE9 叫做:jakata.servlet.Servlet
更改了之后,只能在 Tomcat9 以及以前的版本部署webapp 在之后的版本中是没有办法部署的;