Servlet学习

Servlet学习,第1张

1.servlet规范

​ 遵循Servlet规范的webapp可以放在不同的web服务器中运行;

2.创建servlet项目
  1. 创建项目目录,目录名称自定义不能是中文,例如crm;

  2. 在项目目录下创建WEB-INF文件夹,必须是这个名字;

  3. WEB-INF文件下新建classes文件夹,必须是这个名字,这个目录下存放的一定是java程序编译之后的class文件(字节码文件);

  4. 在WEB-INF目录下新建目录lib,这个目录不是必须的,但是如果一个webapp需要第三方jar包的话,这个jar包要放到lib目录下,名字必须是全部小写的lib,例如java语言连接数据库的驱动jar包,那么这个Jar包就一定要放到lib目录;

  5. 在WEB-INF目录下新建web.xml文件,这个文件是必须的,名字必须是web,xml,一个合法的webapp,web.xml文件是必须的,这个web.xml文件是一个配置文件,这个文件中描述了请求路径与Servlet类之间的对应关系,这个文件最好从其他webapp中拷贝,没必要手写,可以从tomcat内置的项目中拷贝,删除内容,只保留标签内容;

  6. 编写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;

  7. 编译java程序HelloWorld.java,需要将servlet-api.jar配置到环境变量的classpath中才能编译;

  8. 将HelloWorld.class放入到项目文件夹下的WEB-INF的classes文件夹下;

  9. 在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这个包;

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/795654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存