1.Servlet规范是什么?07
遵循Servlet规范的webapp可以在不同的web服务器中运行。(因为这个webapp遵循Servlet规范。)
Servlet规范包括什么?
-规范了哪些界面
-哪些类别是标准化的
-在web应用程序中应该规范哪些配置文件?
-在web应用程序中规范配置文件的名称
-在web应用程序中规范配置文件存储的路径
-在web应用程序中规范配置文件的内容
-一个合法有效的web应用程序的目录结构应该是什么?2.关于JavaEE版本07
-JavaEEE目前的最高版本是JavaEE8
-Oracle捐赠了JavaEE,Oracle将JavaEE规范捐赠给Apache。
-Apache更名为JavaEE,以后不叫JavaEE,以后叫JakartaEEE。
-以后没有JavaEE了。以后都叫JakartaEE。
-JavaEEE9在JakartaEEE8版升级后,不再是“JavaEE9”这个名字,称为JakartaEE9
-JavaEE8对应的Servlet类名是:javax.servlet.Servlet
-JakartaEE9对应的Servlet类名是:jakarta.servlet.Servlet(包名都变了)
-如果您以前的项目仍在使用javax.servlet.Servlet,然后你的项目不能直接部署到Tomcat10+版本。您只能部署到Tomcat9-版本。javax仍然可以在Tomcat9和Tomcat9之前的版本中识别.servlet这个包。3.用Servlet(Java小程序)开发webapp(重点)073.1开发步骤是什么?
第一步:在webaps目录下创建一个新的目录,命名crm(这个crm是webapp的名称)。当然也可以是其他项目,比如银行项目,可以创建目录bank,办公系统可以创建oa。
-注意:crm是这个webapp的根
第二步:在webapp的根下新建一个目录:WEB-INF
-注:Servlet规范规定了此目录的名称,必须全部大写,必须相同。必要的。
第三步:在WEB-INF目录下创建一个新目录:classes
-注:该目录的名称必须是所有小写的classes。这也是servlet规范中规定的。此外,Java程序编译后的class文件必须存储在此目录中(字节码文件存储在此)。
第四步:在WEB-INF目录下新建一个目录:lib
-注:此目录不必要。但是,如果webapp需要第三方jar包,则该jar包应放在此lib目录下,则该目录的名称不能随意编写。它必须是所有小写lib。例如,java语言连接数据库需要数据库驱动jar包。那么这个jar包必须放在lib目录下。本Servlet规范规定。
第五步:在WEB-INF目录下新建一份文件:web.xml
-注意:这个文件是必要的,这个文件名必须叫web.xml。这个文件必须放在这里。合法的webapp,web.xml文件是必要的,这个web.xml文件是一个配置文件,它描述了请求路径和servlet之间的对照关系。
-本文件最好从其他webapp中复制,最好不要手写。没有必要。复制粘贴,具体格式如下 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">
第六步:编写Java程序,这个小Java程序不能随意开发,这个小Java程序必须实现Servlet接口。
-这个Servlet接口不在JDK中。(因为Servlet不是Javase。Servlet属于Javaee,是另一个类库。)
-Servlet接口(Servlet.Oracle提供class文件。(最原始的是sun公司提供的。)
-Servlet接口是JavaEE规范的一员。
-Tomcat服务器实现了Servlet规范,因此Tomcat服务器也需要Servlet接口。Tomcat服务器应该有这个接口,Tomcat服务器的CATALINA_HOME\lib目录中的servlet-api.jar,servlet解压-api.jar之后,你会看到里面有一个Servletet。.class文件。
-重点:从JakartaEE9开始,Servlet界面的全名发生了变化:jakarta.servlet.Servlet
-注意:在编写这个Java小程序时,你可以在任何你想要的地方编写Java源代码。位置无所谓。您只需将编译Java源代码的class文件放入classes目录即可。
第七步:编译我们编写的Helloservlet
-重点:你怎么能让你的HelloServlet编译通过呢?配置环境变量CLASPATH
CLASSPATH=E:\java\dev\apache-tomcat-10.0.12\lib\servlet-api.jar
-思考:CLASPATH与Tomcat服务器运行有关吗?
-没关系,以上环境变量的配置只是为了让你的Helloservlet能够正常编译和生成class文件。
第八步:编译上述Helloservlet后.class文件复制到WEBB-INF\classes目录下。
第九步:在web.在xml文件中编写配置信息,将“请求路径”与“servlet类名”联系起来。
-这一步用专业术语描述:在web.Servlet类在xml文件中注册。
配置如下
代码在E:\java\dev\apache-tomcat-10.0.12\webapps\crm\WEB-INF
web.xml
第十步:启动Tomcat服务器
第十一步:打开浏览器,在浏览器地址栏上输入URL,必须是:
注意:这里的/sfs/sg/df/fd是web.xml里自己写的,可以随意写。
-http://127.0.0.1:8080/crm/sfs/sg/df/fd
-一件非常重要的事情:浏览器上的请求路径不能随意写,这个请求路径必须与web一起写.xml文件中的url-pattern一致。
-注:浏览器上的请求路径和web.xml文件中url-pattern的唯一区别是:浏览器上的请求路径带项目名:/crm
HTML代码示例向浏览器响应 public void service(ServletRequest request, ServletResponse response){ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.print("
hello servlet!
");} 代码在E:\java学习javaWeb\course\course3HelloServlet.java ////第一个Servlet 07-08package com.bjpowernode.servlet;import jakarta.servlet.Servlet;import jakarta.servlet.ServletException;import jakarta.servlet.ServletRequest;import jakarta.servlet.ServletResponse;import jakarta.servlet.ServletConfig;import java.io.IOException;import java.io.PrintWriter;public class HelloServlet implements Servletpublicic{/5方法 void init(ServletConfig config) throws ServletException{}public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException向控制台打印输出System.out.println("My First Servlet,Hello Servlet");// 不要在获取流后设置响应的内容类型。// 设置响应的内容类型是普通文本或html代码/// 在获取流量对象之前,需要设置有效性。// 设置响应的内容类型是普通文本或html代码/// 在获取流量对象之前,需要设置有效性。response.setContentType("text/html");///写这句话可以识别输出html代码/// 如何将信息直接输出到浏览器上?// Servletresponse接口需要使用:response// response表示响应:从服务器到浏览器发送数据称为响应。// 这是一个输出流,负责输出字符串到浏览器/// 这种输出流不需要我们刷新或关闭,这些都是由Tomcat维护的。PrintWriter out = response.getWriter();out.print("Hello Servlet,you are my first servlet");///这是在浏览器上打印输出/// 浏览器可以识别html代码,所以我们应该输出html代码吗?out.print("hello Servlet,你好,Servlet”;/*out.flush();out.close();*/}public void destroy(){}public String getServletInfo(){return "";}public ServletConfig getServletConfig(){return null;}} E配置文件:\java\dev\apache-tomcat-10.0.12\webapps\crm\WEB-INFweb.xml 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">myfirstservletcom.bjpowernode.servlet.HelloServletmyfirstservlet/sfs/sg/df/fd