Tomcat(JAVA)知识点实例

1.端口被占用:BindeException
方式一:

  找到占用的端口号,并且找到对应的进程,关闭该进程
* cmd -> netstat -ano
  找到对应的PID,启动任务管理系统,找对应的PDID

方式二:修改自身的端口号

* conf -> server.xml
  修改配置文件信息 -> <connector> 修改端口号

2.将项目部署到Tomcat服务器中的方式:
1)方式一:

直接将项目放到webapps目录下.
  *优化 -> 将项目打包成 war文件
    将war文件直接放在webapps目录下,该文件会自动解压

2)方式二: 配置conf -> server.xml文件

<Host>标签中设置
  <Host>
    <Context   docbase="本地项目真实路径" path ="虚拟目录"/>
  </Host>

3)方式三:

  conf->Catalina -> localhost -> 在localhost下创建任意名称的xml文件.
    在xml文件中编写:
<Context   docbase="本地项目真实路径"/>
  虚拟目录: xml文件的名称

3.web应用的目录结构 (完整结构)
|-应用的根目录
|-web静态资源
包含:html/css/js/图片…
|-WEB-INF - [受保护的,不可见,客户端不能直接访问的]
|-web.xml :web应用的核心配置文件
[针对的是:当前的web应用]
|-lib: 放jar包
[mysql,c3p0]
|-classes:放置字节码文件的目录
类路径 - src源码编译过来
|-MATE-INF - 元信息


4.web工程的目录结构
|-src: java源代码
|-web: web应用的根目录
|-WEB-INF
|-web.xml: web应用的核心配置文件
|-lib: 放置依赖的jar包
|- index.jsp (静态资源)


让web服务器访问到我们写的文件 -> javaEE规范

Servlet: server applet
1.概念:运行在服务器端的小程序

  • servlet就是一个接口,定义了java类被浏览器访问到(tomcat所识别)的规则.
  • 自定义一个类,实现Servlet接口,重写方法.

2.使用Servlet的步骤:
1).创建javaee项目
2).定义一个类,实现Servlet接口
3).实现接口中的抽象方法
4).配置Servlet
在web.xml中配置:

   <servlet>
      <!--给Servlet起的名字:随意-->
      <servlet-name>ServletDemo01</servlet-name>
      <!--servlet的类对应的完整类名-->
      <servlet-class>web.b_servlet.ServletDemo01</servlet-class>
    </servlet>
    <servlet-mapping>
      <!--名字必须和servlet-name的一致-->
      <servlet-name>ServletDemo01</servlet-name>
      <!--访问的资源路径:随意-->
      <url-pattern>/demo01</url-pattern>
    </servlet-mapping>

3.Servlet的执行过程:
1).当服务器接收到浏览器的请求后,会进行解析URL路径,获取到访问的Servlet的资源路径
2).查找web.xml文件,是否有对应的的标签体内容
3).如果有,则找到对应的全类名
4).tomcat会将字节码文件加载到内存中,并且创建对应的对象
5).调用该对象的service()

package Servlet_demo;

import javax.servlet.*;
import java.io.IOException;

public class servlet_day02 implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init已经执行......默认为servlet创建时,可修改为服务器创建时");
    }

    /*在这里进行验证密码等操作*/
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("访问成功!");

    }

    @Override
    public void destroy() {
        System.out.println("正常关闭服务器!");

    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        <!--给Servlet的名字-->
        <servlet-name>ServletDemo01</servlet-name>
        <!--servlet类对应的完整路径-->
        <servlet-class>Servlet_demo.servlet_day02</servlet-class>
        <load-on-startup>3</load-on-startup>
    </servlet>
    <servlet-mapping>
        <!--名字和上面一样-->
        <servlet-name>ServletDemo01</servlet-name>
        <!--访问路径,可以随便选-->
        <url-pattern>/Demo01</url-pattern>
    </servlet-mapping>
</web-app>

4.Servlet的实现原理:
看图

5.Servlet的生命周期:
1)被创建: 执行init(),只执行一次
Servlet什么时候会被创建?
* 默认情况: 第一次访问时,Servlet被创建
* 可以在配置web.xml文件中设置
* 中设置
* 第一次被访问时创建
的值为负数
* 在服务器启动时创建
的值为0或者正整数

2)提供服务:执行service(),执行多次
说明servlet在内存中只有一个对象,servlet是单例

3)被销毁: 执行distroy(),只执行一次
* 服务器被关闭时,servlet被销毁
* 只有服务器在正常关闭时,才会执行distroy()

6.HttpServlet模板
Servlet的体系结构:
Servlet – 接口
|- GenericServlet – 抽象类
|- HttpServlet – 抽象类
* 实现service(),将请求和响应转换后 -> this.service() ->做相应的请求方式判断,从而决定调用的是doPost()/doGet()

  • GenericServlet:将servlet接口中其他方法都做了默认空实现,只将service()作为抽象方法使用

GenericServlet:

public class b_servlet extends GenericServlet {

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

    }
}

HttpServlet:

package Servlet_demo;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/http003")
public class c_HttpServletDemo extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
        //super.doGet(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost执行了......");
        resp.getWriter().write("doPost执行了......");
        //super.doPost(req, resp);
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <!--给Servlet的名字-->
        <servlet-name>ServletHttpDemo01</servlet-name>
        <!--servlet类对应的完整路径-->
        <servlet-class>Servlet_demo.c_HttpServletDemo</servlet-class>
        <load-on-startup>3</load-on-startup>
    </servlet>
    <servlet-mapping>
        <!--名字和上面一样-->
        <servlet-name>ServletHttpDemo01</servlet-name>
        <!--访问路径,可以随便选-->
        <url-pattern>/http01</url-pattern>
    </servlet-mapping>
</web-app>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat是一个开源的Java Servlet容器,也是Apache软件基金会的一个项目。它实现了Java Servlet和JavaServer Pages(JSP)规范,提供了一个运行Java Web应用程序的环境。 以下是一些关于Tomcat的常见知识点: 1. Tomcat的架构:Tomcat由多个组件组成,包括Catalina、Coyote、Jasper等。Catalina是Tomcat的核心组件,负责处理Servlet和JSP。Coyote是Tomcat的HTTP协议处理组件,用于接收和处理HTTP请求。Jasper负责编译JSP文件。 2. 配置Tomcat:配置文件位于Tomcat安装目录下的conf文件夹中。其中,server.xml文件是主要的配置文件,可以配置监听端口、虚拟主机等。 3. 部署Web应用程序:将打包好的Web应用程序(通常是一个WAR文件)放置在Tomcat的webapps目录下,Tomcat会自动解压并部署该应用程序。 4. Tomcat的类加载机制:Tomcat使用了一个叫做Catalina的类加载器层次结构,按照一定的顺序加载类。其中,Common类加载器加载Tomcat共享的类库,Catalina加载器加载Tomcat内部使用的类库,Web应用程序类加载器加载各个Web应用程序中的类。 5. 连接池:Tomcat提供了连接池的功能,用于管理数据库连接。通过配置数据源和连接池参数,可以提高数据库连接的性能和效率。 6. Tomcat的日志:Tomcat会记录各种日志信息,包括访问日志、错误日志等。这些日志文件位于Tomcat安装目录下的logs文件夹中。 7. 虚拟主机:Tomcat支持虚拟主机,即在同一个Tomcat实例中运行多个独立的Web应用程序。通过配置不同的域名或端口,可以将请求分发到不同的虚拟主机上。 这些只是Tomcat的一些基础知识点,希望能对你有所帮助!如果你还有其他问题,可以继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值