Web服务器——tomcat使用、建立web项目

一、资源分配

  • 静态web:html、css等数据不会变化的东西

  • 动态web:所有网站、动态变化的会发生变化的数据:servlet、jsp等

二、网络通信三要素

1.IP 电子设备在网络中的唯一标识

2.端口 应用程序在计算机中的唯一标识

3.传输协议 规定了数据通信的规则

基础协议:

tcp: 安全协议 ,三次握手 (速度较慢)

udp: 不安全协议 (速度较快)

三、tomcat

web服务器软件:

服务器:安装了服务器软件的计算机

服务器软件:接收用户的请求,处理请求,做出响应

web服务器软件:接收用户的请求,处理请求,做出响应

在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目

Web容器

常见的java相关的web服务器软件:

  1. c/s: 客户端/服务器端

  2. B/S:浏览器/服务器端

    weblogic: oracle公司,大型的 JavaEE服务器,支持所有的 JavaEE规范,收费的。

websphere:IBM公司,大型的] avaIL服务器,支持所有的] ovaTE规范,收费的。

JB0SS:JB0SS公司的,大型的 JavaEE服务器,支持所有的] avaIL规范,收费的。

Tomcat: Apache基金组织,中小型的] javaEE服务器。开源的,免费的。

使用和目录

1.下载:http://tomcat.apacheorg

2.安装:解压压缩包即可

注意:安装目录建议不要有中文和空格

3.卸载:删除目录就行了

4.启动:

bin/ startup.bat,双击运行该文件即可

访问:浏览器输入:http://localhost:8080回车访问

5.关闭:直接关闭窗口

可能遇到的问题

1.黑窗口一闪而过:

原因:没有正确配置 JAVA_HOME环境变量

解决方案:正确配置 JAVA_HOME环境变量

2.居动报错:

  • 找到占用的端口号,并且找到对应的进程,杀死该进程

netstat -ano

  • 修改自身的端口号

conf/server.xml

80端口号是http协议的默认端口号。

好处:在访问时,就不用输入端口号

例子:

访问静态资源

在webapps上建立一个资源文件夹,并放置好打开网站输入——>locallhost(端口号)/文件夹名/文件名

如何建立一个web项目

1、正常建立一个Java项目

2、点击项目右击:添加框架支持——>勾选Web应用程序——>会默认生成web文件夹及其相关文件(jsp等)——>添加运行配置——>添加tomcat本地——>选择tomcat路径——>添加项目部署——>输入相关网页代码——>点击右下角运行

java动态项目的目录结构

项目的根目录

WEB-INF目录:web.xml:web项目的核心配置文件

classes目录:放置字节码文件的目录

lib目录:放依赖的jar包

servlet

建立一个servlet项目

1、建立一个web项目

2、导入外部tomcat的lib包

3、建立public class MyServlet implements Servlet

4、构建来自分装好的库框架

package com.zhujiantao;
​
import jakarta.servlet.*;
​
import java.io.IOException;
​
public class MyServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("myservlet init");
    }
​
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
​
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("MyS");
    }
​
    @Override
    public String getServletInfo() {
        return null;
    }
​
    @Override
    public void destroy() {
​
    }
}
​

解析:

init:Servlet初始化时调用的方法 getServletConfig:获取当前Servlet的配置信息 service:调用Servlet真正去处理逻辑的方法 getServletInfo:它提供有关Servlet的信息,如作者、版本、版权 destroy:Servlet销毁时调用的方法

5、配置映射:在web.xml加上以下代码

   
 
        MyServlet
        com.caochenlei.servlet.demo.MyServlet
    
    
        MyServlet
        /MyServlet
    

servlet标签用于配置Servlet的基本信息

servlet-class:代表当前Servlet的具体类路径,注意最后不包含.java servlet-name:代表当前Servlet的别名,可以和原Servlet名称一样,也可以不一样,一般我们就一样就行了 servlet-mapping标签用于配置请求路径与具体处理Servlet的对应关系

url-pattern:这里写你要匹配的地址路径 servlet-name:如果匹配到请求,该交给哪一个Servlet处理,这里的servlet-name其实就是一个Servlet的别名

6、启动程序,将的路径补充到地址上,即可调用框架内的代码

Web服务器——tomcat使用、建立web项目_第1张图片

 

状态代码200表示成功

其中一般实现功能代码都写入service内

servlet执行原理

1.当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的servelt的资源路径
2.查找web.xml文件,判断是否有对应的标签体内容。
3.如果有,则在找到对应的全类名
4.tomcat会将字节码文件加进内存,并且创建其对象
5.调用其方法

servlet生命周期

1.被创建:执init方法,只执行一次

Servlet什么时候被创建?

默认快况下,第一次被访问时, Servlet被创建

可以配置执行 Servlet的创建时机,在(这个标签内使用)

第一次被访问时,创建

的值为负数

在服务器后动时,创建

的值为0或正整数

注意点:

init只执行一次,说明servlet是一个单例对象。

2.提供服务:执行 service方法,执行多次

每次访问servlet时,service都会被调用一次

3.被销毁:执行 destroy方法,只执行一次

只有服务器正常关闭时,才会执行这个destroy方法。

destroy方法在servlet被销毁之前执行,一般用于释放资源

总的来说就是:

  1. 类加载和实例化

  2. 初始化:init()

  3. 请求处理:service()

  4. 销毁:destroy()

servlet注解

支持注解配置,可以不需要配置web.xml了。

@WebServlet("/资源路径");

如果注解只有一个属性,那么肯定是赋值给该属性。

如果注解有多个属性,而且前提是这多个属性都有默认值,那么你不写注解名赋值,会赋值给名字为“value”这属性。

如果注解有多个属性,其中有没有设置默认值的属性,那么当你不写属性名进行赋值的时候,是会报错的。

urlPatterns的配置

@WebServlet({"/demo1","/demo2","/demo3"});

@WebServlet("/usr/demo4");

@WebServlet("/usr/*");

@WebServlet("/*");

@WebServlet("*.do");

匹配⽅法只有三种

  • 全路径匹配:/a

  • 前半段匹配:/a/b/c/*

  • 扩展名匹配:*.action

HttpServlet类

1、创建类(com.caochenlei.servlet.demo.MyHttpServlet),并且需要继承HttpServlet实现doPost、doGet方法。

package com.zhujiantao;
​
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
​
public class MyHttpServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        System.out.println("doPost method invoke ...");
    }
​
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        System.out.println("doGet method invoke ...");
    }
}
​

2、配置映射(在web.xml文件中新增以下代码

    

        MyHttpServlet
        com.caochenlei.servlet.demo.MyHttpServlet
    
    
        MyHttpServlet
        /MyHttpServlet
    

3、运行,在地址后面加上/MyHttpServlet

Web服务器——tomcat使用、建立web项目_第2张图片

 

你可能感兴趣的:(Java基础,java,servlet,tomcat)