初识JavaWeb


项目分层初识


Web服务器:  Tomcat  IIS ...



部署 Tomcat 服务器

1.下载Tomcat服务器解压存放,了解目录结构









初识网站部署




2.配置Tomcat到idea,方便启动与关闭

什么是Servlet



编写第一个Servlet程序    继承 HttpServlet   它是sun公司默认的Servlet接口实现类

Maven配置文件导入Servlet依赖

<dependencies>

        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>


        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>
package com.yang.Servlet;
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;
/**
 * @author Vis.Yang
 * @project_name 实现Servlet
 * @date 2021/6/8 16:30
 * @description    1.重写servlet的service方法,用来处理请求 2. @WebServlet("/ser01") 注解指定访问路径
 */
@WebServlet("/ser01")
public class HelloServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              //输出到控制台
        System.out.println("hello servlet");
        //通过流输出数据到浏览器
        resp.getWriter().write("hello servlet");
    }
}

图片说明

修改路径

更改后

重新访问

Servlet生命周期






package com.yang.Servlet;

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;

/**
 * @author Vis.Yang
 * @project_name
 * @date 2021/6/8 18:05
 */
@WebServlet("/ser01")
public class Servlet01 extends HttpServlet {
    /**
     * @param req
     * @param resp
     * @MethodName: 就绪,服务方法(处理请求数据)
     * @Description: 系统方法,服务器自动调用 当有请求到达Servlet时,就回调用该方法,该方法可以被多次调用
     * @Author: Vis.Yang
     * @Date: 2021/6/8 18:14
     * @return: void
     */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet被调用了...");
    }

    /**
     * @MethodName: 销毁方法
     * @Description: 系统方法,服务器自动调用,当服务器关闭或应用程序停止时,调用该方法,也只执行一次
     * @Author: Vis.Yang
     * @Date: 2021/6/8 18:12
     * @return: void
     */
    @Override
    public void destroy() {
        System.out.println("Servlet被销毁了...");
    }

    /**
     * @MethodName:初始化方法
     * @Description: 系统方法,服务器自动调用 当请求到达Servlet容器时,Servlet容器会判断Servlet对象是否存在,如果不存在,则创建实例并初始化 方法只执行一次
     * @Author: Vis.Yang
     * @Date: 2021/6/8 18:06
     * @return: void
     */
    @Override
    public void init() throws ServletException {
        System.out.println("Servlet被创建了...");
    }
}

HttpServletRequest 对象的常用方法

获取参数的两种方式

解决POST请求乱码,使用前这样写

request.setCharacterEncoding("UTF-8");

万能法