可以自己写错误页<error-page>
服务器软件:如:Tomcat(WEB服务器) Apache Tomcat® - Welcome!
应用服务器实现了JavaEE的所有规范。(JavaEE有13个不同的规范。)
WEB服务器只实现了JavaEE中的Servlet + JSP两个核心的规范。
广义的API:字节码、源码、帮助文档
Java EE:企业级类库
Java EE规范:13个子规范(如:JDBC、servlet)
Tomcat实现了servlet规范的类,是服务器软件、容器、字节码
B/S与C/S:是服务器计算机还是客户端计算机负责处理数据、存储数据,B/S是特殊的C/S
Brower 服务器 Java程序 数据库(DB Server)
http协议 servlet规范 JDBC规范
- bin 可执行文件目录 //xxx.bat文件:可以编写大量的windows的dos命令
开启服务器
这个类就是main方法所在的类
因为Tomcat也是Java程序写的,要运行就需要JDK:
JAVA_HOME=C:\Program Files\Java\jdk-17.0.1
PATH=%JAVA_HOME%\bin
启动Tomcat服务器配置:
CATALINA_HOME=D:\program\apache-tomcat-8.5.75
path = %CATALINA_HOME%\bin
启动:startup.bat 关闭shutdown.bat
- conf 配置文件目录 //server.xml文件中可以配置端口号,默认Tomcat端口是8080
//解决Tomcat服务器在DOS命令窗口中的乱码问题:CATALINA_HOME/conf/logging.properties文件中的内容修改--->java.util.logging.ConsoleHandler.encoding = GBK
//web.xml里有个servlet描述信息----名default 类DefaultServlet,他的mapping是/:所有web应用默认的servlet-----1)提供静态服务资源 2)处理所有未映射的请求的请求处理
- lib Tomcat核心程序目录 ,是Java语言编写的,jar包里面都是class文件 (所以没有配置JAVA_HOME运行不了)
- logs 日志
- temp 临时文件夹
- webapps 部署空间
-
该项目名的路径就是项目的根
classes :自己写的编译之后的Java字节码程序、lib:webapp需要第三方的jar包 ,如MySQL驱动
web.xml配置文件中描述了请求路径和Servlet类之间的对照关系。,该文=文件用maven创建工程后自动生成
-
- work 项目工作目录(JSP 文件翻译之后的Java文件以及编译之后的class文件)
访问:
一个端口代表一个软件
编写Java程序:
- 编写自己的类,一般格式为xxxServlet。必须实现Servlet接口
- 这个Servlet接口不在JDK当中 ,Servlet不是JavaSE了。Servlet属于JavaEE,是另外的一套类库
- Tomcat服务器实现了Servlet规范,所以Tomcat服务器中应该有这个接口:lib目录下有一个servlet-api.jar,解压后有一个Servlet.class文件
- 从JakartaEE9开始(Tomcat10),Servlet接口的全名变了:jakarta.servlet.Servlet //之前是javax.servlet.Servlet
- 编写这个Java小程序源代码编译之后的class文件放到classes目录下
- 怎么让你的Java小程序编译通过呢?-------配置环境变量CLASSPATH CLASSPATH=.;C:\dev\apache-tomcat-10.0.12\lib\servlet-api.jar
- 在web.xml文件中编写配置信息,让“请求路径”和“Servlet类名”关联在一起
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" version="5.0" metadata-complete="true"> <!--servlet描述信息--> <!--任何一个servlet都对应一个servlet-mapping --> <servlet> <load-on-startup>1</load-on-startup> 在该子标签中填写整数,越小的整数优先级越高 <servlet-name>fdsafdsagfdsafdsa</servlet-name> <!--这个位置必须是带有包名的全限定类名--> <servlet-class>com.bjpowernode.servlet.HelloServlet</servlet-class> <!--Servlet对象配置信息--> <init-param> <param-name>名</param-name> <param-value>值</param-value> </init-param> <init-param> <param-name>foo</param-name> <param-value>bar</param-value> </init-param> </servlet> <!--servlet映射信息--> <servlet-mapping> <!--这个也是随便的,不过这里写的内容要和上面的一样。--> <servlet-name>fdsafdsagfdsafdsa</servlet-name> <!--这里需要一个路径--> <!--这个路径唯一的要求是必须以 / 开始--> <!--当前这个路径可以随便写,当访问该路径是就调用对应小程序--> <url-pattern>/资源/fd/saf/d/sa/fd/sa/fd</url-pattern> //就是classes下的类路径 <url-pattern>/*</url-pattern> //灵活运用*通配符 </servlet-mapping> <!--应用级的配置信息--> <context-param> <param-name>名</param-name> <param-value>值</param-value> </context-param> <context-param> <param-name>startIndex</param-name> <param-value>0</param-value> </context-param> <!--配置欢迎页 路径默认是从webapp的根下开始查找,不要以“/”开始--> <welcome-file-list> <welcome-file>xxx1.html</welcome-file> <welcome-file>xxx2.html</welcome-file> </welcome-file-list> <!--session时间配置:超时机制--> <session-config> <session-timeout>分钟数值</session-timeout> </session-config> </web-app>
- html页面等只能放到WEB-INF目录外面
- 启动Tomcat服务器,浏览器地址栏上输入一个url