Servlet入门案例(三)Servlet的生命周期、api和请求方式、工作原理、注解开发

简介: Servlet入门案例(三)Servlet的生命周期、api和请求方式、工作原理、注解开发

一.Servlet的API:

HttpServletResponse:是对响应信息的封装。

HttpServletRequest:是对请求信息的封装。

Servlet(接口)
|-GenericServlet(抽象类)
       |-HttpServlet(抽象类)
             |-FirstServlet(自定义的servlet)

我们自定义的类是否实现了servlet接口,是我们判断该类是否是servlet的唯一标准。

二.Servlet类的生命周期

一个servlet对象从创建到销毁的整个过程。

Servlet接口方法:

Init()方法

Destroy()方法

Service()方法。

1.当客户端有请求过来时,都会去执行service方法。每一个请求都会去调用servlet的service方法。


2.当servlet对象被创建出来时,servlet对象会自动执行init方法。当第一次请求过来时,servlet容器会实例化出servlet对象。Servlet对象是单实例的。所有的客户端请求都会使用第一次请求创建的servlet对象。


3.当tomcat停止服务时。Servlet会被销毁掉。销毁前,servlet会调用destroy方法。

  • 因此得出结论:
    Servlet是单实例的,所有的请求公用一个servlet对象。那么servlet对象不要定义属性。

面试常见servlet生命周期的问题:

  • 1.谁创建了servlet。
  • 2.创建servlet的时机。
  • 3.三个方法的调用时机。
  • 4.什么时候servlet被销毁。

Servlet的请求方式

  • 1.在浏览器里面直接输入url可以请求servlet
  • 2.使用超链接 <a / href=”/appName/url-pattern”>点我
  • 3.form提交的方式请求servlet Form的action=”/appName/url-pattern”

让form表单和servlet结合起来,收参

三.Servlet的工作原理

四.Servlet的注解开发

注解开发实例:

package com.macw.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
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 com.macw.services.UserServices;
import com.macw.services.impl.UserServiceImpl;
/**
 * @author 超伟
 * @2019年6月5日 下午9:30:52
 * @博客:https://blog.csdn.net/MacWx
 */
@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
  public void service(HttpServletRequest req,HttpServletResponse resp)
      throws IOException,ServletException{
    String name = req.getParameter("username");
    String pwd = req.getParameter("password");
    System.out.println("username="+name+"\tpwd="+pwd);
    UserServices service = new UserServiceImpl();
    boolean register = service.Register(name,pwd);
    if (register) {
      req.getRequestDispatcher("/login.jsp").forward(req, resp);
    }else{
      req.setAttribute("error", "注册失败,请重新注册!");
      req.getRequestDispatcher("/register.jsp").forward(req, resp);
    }
  }
}

五.乱码问题

目录
相关文章
|
2月前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
32 8
|
7天前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
|
3天前
|
XML 数据格式
XML配置Servlet文件,不使用注解配置路径的方法
XML配置Servlet文件,不使用注解配置路径的方法
|
7天前
|
搜索推荐 Java 数据库连接
探索Java Web开发:Servlet与JSP的协同工作原理
【6月更文挑战第23天】Java Web开发中,Servlet和JSP协同打造动态网站。Servlet是服务器端的Java程序,处理HTTP请求并执行复杂逻辑;JSP则结合HTML和Java,生成动态内容。Servlet通过`doGet()`等方法响应请求,JSP在首次请求时编译成Servlet。两者常搭配使用,Servlet处理业务,JSP专注展示,通过`RequestDispatcher`转发实现数据渲染。这种组合是Java Web应用的基础,即使新技术涌现,其价值仍然重要,为开发者提供了强大的工具集。
|
8天前
|
JSON 监控 中间件
中间件在API请求/响应处理
【6月更文挑战第16天】
17 7
|
9天前
|
中间件 API 开发者
中间件在API请求处理中的作用
【6月更文挑战第15天】
26 8
|
10天前
|
XML 数据采集 中间件
中间件API请求处理
【6月更文挑战第14天】
18 5
|
11天前
|
前端开发 中间件 API
中间件API 请求和响应
【6月更文挑战第13天】
10 3
|
3天前
|
API
获得servlet相关API,获得请求头和cookie-spring23
获得servlet相关API,获得请求头和cookie-spring23
|
10天前
|
Java 应用服务中间件 开发工具
基于Servlet的3.1以上注解方式完成上传功能。
基于Servlet的3.1以上注解方式完成上传功能。
7 0