java 笔记 - javaWeb 核心 1

image.png

一、http

image.png

image.png

image.png

二、Tomcat

Tomcat 是一个开源的、轻量级的Web 应用服务器,用于运行 Java Web 应用程序,支持 Servlet/JSP 少量JavaEE规范,也称为Web容器,Servlet 容器。

web 服务器:

  • 1.封装HTTP协议操作,简化开发。封装了之前网络编程学的 Tcp 通信 Socket 和 ServerSocket。
  • 2.可以将web项目部署到服务器中,对外提供网上浏览服务。

下载时根据自己的java版本选择对应版本的Tomcat,注意:要先安装java,Tomcat才能正常启动:

image.png

(1)基本使用

image.png

image.png

(2)部署项目

一般 javeWeb 项目会被打成一个war包,比如:“hello.war” 然后扔到Tomcat的 webapps 目录里面,Tomcat 会自动解压缩 war 文件,部署就完成了。

(3)Web 项目结构

image.png

(4)IDEA 中创建 Maven Web 项目

方式一:我这里用的骨架(模版)方式创建,但是安装依赖的时候有报错,不过我发现没多大影响:

image.png
failed to download from remoteorg.eclipse.aether.transfer.MetadataNotFoundException: Could not find metadata /archetype-catalog.xml in alimaven (https://maven.aliyun.com/repository/public)
No archetype found in remote catalog. Defaulting to internal catalog

将pom.xml里面的多余部分删除,并创建标准目录结构:

image.png

方式二:安装 JBLJavaToWeb 插件将普通maven项目转为javaWeb项目

image.png

普通maven项目上右键选择 JBLJavaToWeb 即可


image.png

(5)IDEA 中使用Tomcat

方式一:IDEA里面集成本地Tomcat
image.png

image.png

就是这个目录就行了


image.png

配置快速部署项目:

切换到Deployment,然后点下面的+号选中刚刚我们创建的这个webapp项目


image.png

运行项目看下可以看到页面成功访问到:
image.png

image.png
方式二:Tomcat Maven插件方式使用

注意:这种方式目前只能是Tomcat7版本,没有更高版本,不过本地开发已经够用了。

image.png

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <version>1.0-SNAPSHOT</version>
    <name>maven_tomcat_webapp</name>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>maven_tomcat_webapp</artifactId>
    <packaging>war</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <!-- 设置编码格式 -->
                    <uriEncoding>UTF-8</uriEncoding>
                    <!-- 控制 tomcat 端口号 -->
                    <port>9999</port>
                    <!-- 项目发布到 tomcat 后的名称 -->
                    <!-- 如果写 /abc,相当于项目发布后的名称为 abc -->
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

三、Servlet

image.png

需要在 pom.xml 里面添加 servlet 依赖

    <dependencies>
        <!-- servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

(1)Servlet 执行流程

要使用 Servlet,需要创建一个类去实现 Servlet 接口,当服务器启动或者被访问(根据配置)的时候,Tomcat 服务器会根据我们写的这个类来创建对象并调用里面的 service 方法。

下面是个最简单的 Servlet demo,当访问:http://localhost:9999/servletDemo 的时候,java控制台会打印 “Servlet Hello World”

package com.test.web;

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

@WebServlet("/servletDemo")
public class ServletDemo implements Servlet {

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Servlet Hello World");
    }

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

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

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

    @Override
    public void destroy() {

    }
}

(2)Servlet 生命周期

  • 1.init 方法在当前 Servlet 对象被创建的时候执行一次,这个方法可以用来加载一些资源。
  • 2.service 方法是提供服务的方法,每次 Servlet 被访问的时候会执行。
  • 3.destroy 方法是在 Servlet 被销毁的时候调用一次(内存释放或服务器关闭的时候)
image.png

其他两个方法不是很常用,了解下即可:
getServletConfig:获取 ServletConfig 对象
getServletInfo:获取 Servlet 信息,比如作者、版本、版权这种信息。

(3)Servlet 体系结构

之前实现 Servlet 接口这种不是很常用,因为会强制实现四个方法,但是有的方法我们用不到。后面通常是继承的 HttpServlet 类,并重写里面的 doGet 和 doPost 方法。

image.png

(4)Servlet urlPatterns 配置

一个 Servlet 要想被访问,必须配置其访问路径(urlPatterns),一个 Servlet 可以配置多个 urlPatterns,如:

@WebServlet(urlPatterns = {"/httpServletDemo","/httpServletDemo2"})

urlPatterns 配置规则

image.png

(5)XML 配置 Servlet(了解即可,这个是老版本的用法,比较麻烦,改为用注解方式)

image.png

参考: 黑马 javaWeb 教程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。