java初级篇——Tomcat、Servlet

目录

Tomcat:web服务器软件

Servlet:   server  applet(运行在服务端的小程序)


Tomcat:

web服务器软件:可以将自己的项目部署在此软件上。

下载。安装。卸载。启动。关闭。配置。

下载:https://tomcat.apache.org/   

Download——Core——自行选择32或64位

安装:

任意文件夹  解压安装包就行了。java初级篇——Tomcat、Servlet_第1张图片

java初级篇——Tomcat、Servlet_第2张图片

卸载:删除目录就好了

启动:bin目录下的startup.bat(双击)(闪退是JDK没配置好)——自己有一些服务,可已访问localhost:8080,默认端口。(cmd——ipconfig 查看ip地址  通过ip:8080访问。)

出现问题:

        1、黑窗口一闪而过:没有正确配置JAVA_HOME环境变量。

解决:属性——高级——环境变量——

错误配置:直接使用路径,不使用变量。java初级篇——Tomcat、Servlet_第3张图片

 正确:使用变量

新建之后

java初级篇——Tomcat、Servlet_第4张图片

使用变量代替路径。

 java初级篇——Tomcat、Servlet_第5张图片

         2、启动报错:

日志文件夹查看信息!!!

占用端口号:

1、关闭占用的程序,关闭。——黑窗口使用netstate -ano  找8080对应的pid  任务管理器关闭。

2、更改默认端口号,——配置文件夹conf  找server.Xml文件更改

Connector  port

一般将端口号设置为80,可以不用输入端口号

关闭:

1、正常关闭——bin/shutdown.bat                  启动窗口  ctrl+c

2、强制关闭 —— 启动窗口关闭

配置:部署项目的方式

        1、将项目放在webapps文件夹下   ——访问路径localhost:端口号/访问路径/资源名称:例如localhost:8080/Hello/Hello.html

        简化部署,将项目打包成.war的压缩包,放在webapps下,会自动解压。(保证Tomcat开启)

        2、引用部署:     conf——server.xml  更改

表示从d盘的hello文件夹下  找项目     hehe表示项目的访问路径。

localhost:8080/hehe/hello.html

         3、xml部署的是整体,可能导致tomcat核心文件损坏

xml中写,访问路径就为xml文件的名称  localhost:8080/xml文件名称/hello.html(项目资源)

 (项目名)

 

动态项目目录

java初级篇——Tomcat、Servlet_第6张图片

静态项目目录  为静态资源。 





************

将Tomcat集成在idea中    创建JAVAEE项目,部署项目。

RUN——Edit Configurations...

java初级篇——Tomcat、Servlet_第7张图片

 defaults    Tomcat Server

java初级篇——Tomcat、Servlet_第8张图片

创建项目

java初级篇——Tomcat、Servlet_第9张图片

 完成后可在下web 创建html,jsp

java初级篇——Tomcat、Servlet_第10张图片

修改配置,不用每次更改后启动Tomcat

RUN——Edit Configurations...     

java初级篇——Tomcat、Servlet_第11张图片

 两个都改java初级篇——Tomcat、Servlet_第12张图片




Servlet:   server  applet(运行在服务端的小程序)

  • Servlet 就是一个接口,定义了Java类被浏览器访问到(或Tomcat 识别)的规则
  • 我们自定义的类实现Servlet 接口,复写方法。

入门:创建javaee项目,定义类,实现接口Servlet5个方法。

上面的 Tomcat  中的JAVAEE项目,src下建包 ,建类。

java初级篇——Tomcat、Servlet_第13张图片

配置文件

java初级篇——Tomcat、Servlet_第14张图片

  1.  当服务器接收到浏览器的请求后,会解析肋路径,获取访问的Servlet资源路径
  2. 查找web.xml文件,是否有对应的标签内容
  3. 如果有,则在《servlet——class》使用全类名
  4. Tomcat会将字节吗文件加载进内存,并创建对象
  5. 调用其方法


五大方法讲解——

public class kiki implements Servlet {
    /**
     * 访问时执行一次,的方法(类似静态代码块)
     * @param servletConfig
     * @throws ServletException
     */
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    /**
     *获取config对象
     * @return
     */
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    /**
     * 提供访问方法
     * 访问一次执行一次,执行多次
     * @param servletRequest
     * @param servletResponse
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

    }

    /**
     * 获取Servlet的一些信息,作者  ,版本等。
     * @return
     */
    @Override
    public String getServletInfo() {
        return null;
    }

    /**
     * 正常关闭Tomcat时,执行关闭
     */
    @Override
    public void destroy() {

    }
}

生命周期:

  • 被创建——init
  • 被执行——service
  • 被销毁 ——destroy

被创建——初始化配置 (饿汉模式 正数   懒汉模式  负数)默认第一次访问创建。

java初级篇——Tomcat、Servlet_第15张图片

Servlet只存在一个对象,是单例的,多线程访问出现安全问题。

解决:不要定义成员变量,尽量用局部变量。——定义成员变量,不赋值,就不会更改值。

被执行——提供服务

被销毁——正常关闭执行,销毁之前执行。

非正常关闭不会执行

Servlet  3.0 之后支持注解配置  不需要web.xml

java初级篇——Tomcat、Servlet_第16张图片

和上面一样,新建包新建类,加注解 

注解属性   urlPatterns 路径   value和他一样的效果,所以可以不写urlPatterns=“/demo1”

写成“/demo1”也可以。

可定义多个访问路径,因为源代码中参数时数组。

定义规则:

        /xx      
        /xx/xx    两层路径都得写全。
        /*.do   *表示都可以访问, 这表示.do结尾的都可访问。         什么结尾自己定义。

 

java初级篇——Tomcat、Servlet_第17张图片




IDEA 和Tomcat

1、IDEA会为每一个项目布置一个单独的配置文件:
Using CATALINA_BASE:   "C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Unnamed_maven-webapp-tomcat"



上面路径的文件夹下就是tomcat 的配置文件,可自己更改东西。
IDEA更改:   

java初级篇——Tomcat、Servlet_第18张图片

2、工作空间  和  Tomcat部署的空间
        Tomcat 真正访问的是Tomcat部署的项目,  tomcat部署的web项目对应着工作空间项目的web目录下的所有资源(注意在web—inf下就不能访问)。
3、断点调试
使用DEBUG启动,测试每个方法



servlet的体系结构 

Servlet的实现类  —— GenericServler——的继承类   HttpServlet    

因为不经常使用Servlet接口的其他4个方法,所以GenericServler类对这4个方法进行了空实现。
java初级篇——Tomcat、Servlet_第19张图片
所以继承实现类只需要重写一个service方法
java初级篇——Tomcat、Servlet_第20张图片

(其与方法看自己写不写)


 



HttpServlet的出现  



因为service要在方法中判断请求方式  get  post  其他等  再去获取数据。

java初级篇——Tomcat、Servlet_第21张图片
为了重写的时候不用再对service里面的的判断做改变。

service里面对请求方式做了判断  ,对应哪种就调用哪种,具体的业务步骤交给doGet   doPost 等7种方法去执行。
java初级篇——Tomcat、Servlet_第22张图片

意义:对Http协议的封装。
当我们在定义自己的servlet接口时
不用再重写service方法,只需要重写doGet   doPost  等七个方法。
java初级篇——Tomcat、Servlet_第23张图片

 

servlet的相关配置:除了xml
注解配置


 

urlpartten:内部是一个数组, 就是说@webServlet可以配置多个路径 

 表示当前类可以使用多个路径  访问java初级篇——Tomcat、Servlet_第24张图片

 路径定义规则:
        /xxx     指定路径

        /xxx/xxx   指定多层路径

        /*         随意路径
        *.jpg(文件名   直接访问文件名)   访问静态文件的路径写法。
优先级:*最低    会优先匹配最准确的

 


 

 


 


 



 

你可能感兴趣的:(学习笔记,java,前端框架)