遵循Servlet规范的webapp可以放在不同的web服务器中运行;
2.创建servlet项目-
创建项目目录,目录名称自定义不能是中文,例如crm;
-
在项目目录下创建WEB-INF文件夹,必须是这个名字;
-
WEB-INF文件下新建classes文件夹,必须是这个名字,这个目录下存放的一定是java程序编译之后的class文件(字节码文件);
-
在WEB-INF目录下新建目录lib,这个目录不是必须的,但是如果一个webapp需要第三方jar包的话,这个jar包要放到lib目录下,名字必须是全部小写的lib,例如java语言连接数据库的驱动jar包,那么这个Jar包就一定要放到lib目录;
-
在WEB-INF目录下新建web.xml文件,这个文件是必须的,名字必须是web,xml,一个合法的webapp,web.xml文件是必须的,这个web.xml文件是一个配置文件,这个文件中描述了请求路径与Servlet类之间的对应关系,这个文件最好从其他webapp中拷贝,没必要手写,可以从tomcat内置的项目中拷贝,删除内容,只保留标签内容;
-
编写java程序HelloWorld.java,实现Servlet接口;
这个Servlet接口不在jdk中,因为Servlet不属于JAVASE,属于JAVAEE,是另外的一套类库,是Oracle提供的,最早是sun公司提供的,Servlet是JAVAEE规范中的一员,tomcat实现了Servlet规范,所以tomcat也需要使用Servlet接口,在CATALINA_HOME/lib/servlet-api.jar中,从JAVAEE9开始Servlet的包名是jakarta.servlet.Servlet;
-
编译java程序HelloWorld.java,需要将servlet-api.jar配置到环境变量的classpath中才能编译;
-
将HelloWorld.class放入到项目文件夹下的WEB-INF的classes文件夹下;
-
在web.xml文件中编写配置信息,让请求路径和Servlet类名关联,这一步用专业术语描述叫做在web.xml文件中注册Servlet类;
<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-name>hellourlservlet-name> <servlet-class>com.ServletTest1.Servlet.ServletTest1servlet-class> servlet> <servlet-mapping> <servlet-name>hellourlservlet-name> <url-pattern>/hellourl-pattern> servlet-mapping> web-app>
10.重启tomcat,在浏览器上输入:localhost:8080/项目名/url-pattern;
此时可以将catalina_home下面的conf/logging.properties 修改为
java.util.logging.ConsoleHandler.encoding = GBK,即可显示中文提示
注意点:html文件只能放在WEB-INF文件夹外面;
3.JAVAEE版本 javaee版本目前最高是javaee8,javaee被Oracle捐献给力Apache,Apache把JAVAEE更名为jakartaEE,以后都叫做jakataEE,javaee8升级之后的版本叫做jakartaee9,jakartaee10…
javaee8的Servlet的全类名是javax.servlet.Servlet
javaee9的Servlet的全类名是jakarta.servlet.Servlet
如果之前的项目使用的是javax.servlet.Servlet,那么该项目无法之间部署到tomcat10+的版本上,只能部署到tomcat9-的版本上,在tomcat9以及tomcat9以下的版本能够识别javax.servlet这个包;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)