Java Servlet入门

版权声明:转载请注明出处 : https://blog.csdn.net/coder_what/article/details/90141546


Copyright© stonee

Servlet 概念

  • Servlet是按照Servlet规范编写的Java类
  • Servlet是Web应用的一个组件
  • Servlet由容器tomcat管理
  • Servlet扩展了服务器的功能
  • Servlet可以生成动态的Web页面
  • Servlet产生在JSP之前

Servlet 功能特点

  • 当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立服务器到客户机的响应
  • Servlet可以创建并返回一个基于客户请求性质的动态内容完整的HTML页面
  • 可以与其他服务器资源进行通信(DBMS, Java应用程序)
  • 可以把多个客户端传递的值传递给多个另外的客户机上

Servlet周期

  • 装载Servlet,默认动态执行
  • 创建Servlet实例
  • Server调用Servlet的init方法
  • 客户端请求到达Server
  • Server创建请求对象
  • Server创建响应对象
  • Server激活Servlet的service()方法,把请求和响应对象作为参数
  • service()获得请求对象信息,处理请求访问其他资源,获取需要信息
  • service()使用响应对象方法,将响应传回Server,最终到达客户端。Service可以激活其他方法区处理请求,如doGet,doPost或者其他自定义请求
  • 对于更多客户端请求,Server创建新的请求和响应对象,循环上述,但不用再次调用init方法
  • 最后Server调用Servlet的destroy()方法关闭Servlet

img

Servlet与JSP的区别

  • JSP本质上就是Servlet,但创建方式不一样
  • 用Servlet输出HTML太过麻烦,JSP是个嵌入型的脚本语言
  • JSP属于MVC模型中的View层,Servlet属于Control层
  • JSP编译后是“类Servlet”
  • Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来;而JSP是Java和HTML组合成一个扩展名为.jsp的文件

新建一个小项目

使用IDEA,默认安装Tomcat和JDK

Q: 网上已经有很多用IDEA新建servlet的项目了,我为什么要再费时费事写一遍?

A:网上许多教程对新手(我)十分不友好!只告诉你要怎么做,但是没有说为什么要这样做,搞得我在一段时间内糊里糊涂的!

如果新手单单要运行一个Servlet项目,没有大多数网上项目那么复杂,不需要配置许多路径。想让一个最简单的项目跑起来,4步就可以

一、点击文件,新建一个项目,配置

在这里插入图片描述

  • 配置项目路径,配置完毕项目创建成功

  • 此时左侧的结构如下

    在这里插入图片描述

  • src还是存储.java的目录

  • web目录存放和网络相关的目录

  • 在网上的许多新手教程中,都要把web下面再创建一个lib和classes目录分别用来存放导入的Jar包和编译后的classes文件,在我看来,如果你仅仅是想让你的项目跑通,简简单单理解一下servlet,根本不需要配置classes,而lib也不用设置,因为我们仅仅完成的是hello world级别的玩具,所以根本就不用导入外来jar包

二、点击运行,编辑配置,左上方点击“+”,选择Tomcat。这一步是配置tomcat的

在这里插入图片描述

三、点击左侧的项目结构
  • 在project部分有一个 “项目编译输出” ,它用于存储所有项目的编译结果,默认情况下,模块的输出路径项目编译输出路径的子目录,这也就是刚才我们不配置classes的原因
  • project下面是模块部分,点击左侧的路径,如果我们刚才新建了classes,那么就需要选择第二个使用模块编译输出路径。但是我们并没有新建classes,那就按照默认的来就好了。点击路径左侧的依赖,我们可以看到有两个依赖,一个是jdk11,一个是tomcat,如果我们还有别的依赖的话,就要返回到刚才的步骤,新建一个lib包,然后把lib包导进来,lib里存放依赖
  • 点击确定
四、在src中新建一个.java文件
import javax.servlet.ServletConfig;
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;
import java.io.PrintWriter;

//此处是注解,不用配置xml。意思是servlet的url路径,http://localhost:8080/hhh
@WebServlet(urlPatterns = "/hhh")	
public class MyServlet extends HttpServlet {
    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("初始化...");
    }


    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("hello Servlet");
        PrintWriter out = resp.getWriter();
        out.print("hello me");
    }

    @Override
    public void destroy() {
        System.out.println("销毁...");
    }
}
  • 此时我们运行该项目,在控制台中我们会发现“初始化”和“hello servlet”,说明已经启动

  • 切换到浏览器(一般会自动弹出)

    在这里插入图片描述

  • 换到servlet的路径中

在这里插入图片描述

  • 四步大功告成

@感谢Evankaka

猜你喜欢

转载自blog.csdn.net/coder_what/article/details/90141546