1、HelloWorld分析 1、编写一个类去实现 Servlet 接口

2、实现service方法,处理请求,并响应数据

3、到 web.xml 中去配置 servlet 程序的访问地址

①目标 在页面上点击超链接,由Servlet处理这个请求,并返回一个响应字符串:Hello,I am Servlet

②思路

创建Servlet类 方式一:实现Servlet接口 方式二:继承HttpServlet 一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。

2、具体操作 ①第一步:创建动态Web module

②第二步:创建超链接 Servlet Hello World 1 2 ③第三步:创建HelloServlet的Java类 package com.atguigu.servlet;

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

public class HelloServlet implements Servlet {

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

}

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

//service方法时专门用来处理请求和响应的
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
    // 控制台打印,证明这个方法被调用了
    System.out.println("我是HelloServlet,我执行了!");

    // 返回响应字符串
    // 1、获取能够返回响应数据的字符流对象
    PrintWriter writer = response.getWriter();

    // 2、向字符流对象写入数据
    writer.write("Hello,I am Servlet");
}

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

@Override
public void destroy() {

}

}

 两个输出流的说明 字节流:getOutputStream(); 常用于下载(传递二进制数据) 字符流:getWriter(); 常用于回传字符串(常用) 两个流同时只能使用一个。使用了字节流,就不能再使用字符流,反之亦然,否则就会报错。

④第四步:配置HelloServlet 配置文件位置:WEB-INF/web.xml


<!-- 配置Servlet本身 -->
<servlet>
    <!-- 全类名太长,给Servlet设置一个简短名称 -->
    <servlet-name>HelloServlet</servlet-name>
    <!-- 配置Servlet的全类名 -->
    <servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
</servlet>
<!-- 将Servlet和访问地址关联起来 -->
<servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <!--
        url-pattern 标签配置访问地址
        / 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径
        /helloServlet 表示地址为:http://ip:port/工程路径/helloServlet
    -->
    <url-pattern>/helloServlet</url-pattern>
</servlet-mapping>

『虚拟路径』:Servlet并不是文件系统中实际存在的目录或文件,所以为了方便浏览器访问,我们创建了虚拟出来的路径来访问它。

常见的错误一:url-pattern 中配置的路径没有以斜杠开头

常见的错误二:servlet-name 配置的值不存在

常见的错误三:servlet-class 标签的全类名配置错误

⑤url 地址到 Servlet 程序的访问

Servlet技术详解[1]_servlet helloword

⑥小结 需求:在浏览器上点击超链接能够访问Java程序

Servlet技术详解[1]_servlet_02

3、梳理概念

①原生Tomcat

Servlet技术详解[1]_servlet helloword_03

②IDEA中的Tomcat实例

Servlet技术详解[1]_servlet helloword_04

③IDEA中的Web工程

Servlet技术详解[1]_servlet helloword_05

④根据Web工程生成的war包

Servlet技术详解[1]_servlet_06

⑤Web工程中的资源

【1】静态资源

HTML文件 CSS文件 JavaScript文件 图片文件

【2】动态资源

Servlet

⑥访问资源的地址

【1】静态资源

/Web应用名称/静态资源本身的路径

【2】动态资源

/Web应用名称/虚拟路径

⑦Web应用名称

Servlet技术详解[1]_servlet helloword_07

⑧总体的逻辑架构

Servlet技术详解[1]_servlet_08