第4章:Servlet介绍

4.1 Servlet简介
  1. Servlet是一种Web服务器端编程技术
  2. 是实现了特殊接口的Java类
  3. 由支持Servlet的Web服务器调用和启动运行
  4. 一个Servlet负责对应的一个或一组URL访问请求,并返回相应的响应内容
4.2 Intellij IDEA上的out目录

Intellij IDEA中,将整个web项目,会放在project目录下的out/artifacts中,不会放在Tomcat的webapps下,但Tomcat启动后,会将该out/artifacts下的项目加载到Tomcat中(正常情况下可以通过修改server.xml实现),猜测这是为了方便移植才这样处理,因为一旦需要将这个web项目,由开发环境转到生产环境时,只需将out/artifacts目录下所有内容导入生产环境的Tomcat中的webapps下即可

4.3 Servlet生命周期
  1. 每种Servlet,都是只有一个实例,无法重复创建多个,多次同一个请求,是由同一个Servlet对象处理的
  2. 当一个Servlet接收到第一次请求时,创建该Servlet对象,并调用init方法
  3. 如果在web.xml中配置了<load-on-startup>标签,那么在Tomcat启动时,就会创建该Servlet对象,中间的数值表示优先级
<servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
  1. 服务器关闭后,先调用destroy方法,然后销毁Servlet对象
4.4 Servlet中的service、doGet、doPost方法之间的关系
//HttpServlet中的service方法代码片段
if (method.equals("GET")) {
	...
	this.doGet(req, resp);
}else if (method.equals("POST")) {
    this.doPost(req, resp);
}
... 
  1. 自己编写的Servlet中的service、doGet、doPost都会覆盖HttpServlet中对应的方法
  2. 如果覆盖了service方法, 而新的service方法中没有调用doGet或doPost,那么接收到的请求,不再会进行doGet、doPost处理
  3. HttpServlet中没提供doGet、doPost的默认实现,因此如果自己编写的Servlet中不重写这两个方法, 就无法正确处理请求,响应码405
  4. 编写Servlet时,不需要重写service方法,只需重写doGet和doPost即可
4.5 自定义jsp发送post请求

在这里插入图片描述

  1. method.jsp
<%--
  Created by IntelliJ IDEA.
  User: 含低调
  Date: 2020/2/19
  Time: 16:22
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <!--form为表单,action表示该表单提交后所发送的uri,method为请求方法-->
    <form action="HelloWorld" method="post">
        用户名:<input type="text" name="name" value=""><br/>
        密码:<input type="text" name="pwd" value=""><br/>
        <input type="submit" value="登录">
    </form>

</body>
</html>
  1. 浏览器访问该jsp
http://localhost:8080/myfirstServlet/method.jsp
发布了32 篇原创文章 · 获赞 0 · 访问量 929

猜你喜欢

转载自blog.csdn.net/hanzong110/article/details/104393643