第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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值