J2EE学习笔记(四)之Servlet原理
发布日期:2021-05-10 11:43:48 浏览次数:22 分类:精选文章

本文共 2772 字,大约阅读时间需要 9 分钟。

一、Servlet简介

Servlet是JSP的核心技术,它是服务器端小程序,用于处理客户端的HTTP请求。通过继承HttpServlet类,Servlet可以实现对HTTP协议方法(如GET、POST、PUT等)的响应处理。

Servlet的主要特点

  • 生命周期管理:Servlet的生命周期由Web容器管理,创建和销毁由容器控制。
  • 方法重写:通常只需要重写doGet()doPost()方法,或者通过service()方法统一处理所有请求。
  • 多线程支持:Web容器会默认支持Servlet的多线程处理,提升吞吐量。

二、案例

1.新建一个Maven项目

在项目目录下右键新建模块,选择“Maven项目”,填写项目信息并添加必要的依赖:

javax.servlet
servlet-api
2.4
provided
javax.servlet.jsp
jsp-api
2.1
provided

2.新建一个登录界面login.jsp

ARE氏<% page language="java" pageEncoding="UTF-8"%> 
登录界面
用户名:
密码:

3.新建一个欢迎跳转页面welcome.jsp

<% page language="java" pageEncoding="UTF-8"%>
欢迎界面亲爱的<%=session.getAttribute("name") %>:你好!欢迎登录!

4.新建一个Servlet类

package com.example;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    public void service(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        String username = request.getParameter("username");        String pwd = request.getParameter("pwd");        HttpSession session = request.getSession();        session.setAttribute("name", username);        RequestDispatcher rd = request.getRequestDispatcher("/welcome.jsp");        rd.forward(request, response);    }}

5.将Servlet配置在Web应用中

web.xml中配置Servlet:

loginServlet
com.example.LoginServlet
loginServlet
/login

三、Servlet的生命周期

Servlet的生命周期关键点

  • Servlet实例的创建

    • 客户端首次请求时,Web容器创建Servlet实例。
    • 在Web应用启动时,通过load-on-startup指定的优先级创建实例。
  • 初始化阶段

    • Web容器调用init()方法,完成Servlet的初始化配置。
    • 初始化完成后,Servlet进入待命状态,等待客户端的请求。
  • 响应处理阶段

    • 每当接收到客户端的HTTP请求,Web容器调用Servlet的service()方法。
    • 根据请求方法(如GET、POST)调用对应的处理方法(如doGet()doPost())。
  • 销毁阶段

    • Web应用关闭时,Web容器调用destroy()方法,释放Servlet资源。
    • Servlet进入销毁状态,等待新的请求。
  • 四、load-on-startup

    load-on-startup的作用

    • 优先级决定load-on-startup属性值越小,优先级越高。当多个Servlet竞争资源时,优先级高的会优先加载。
    • 配置方式
    • web.xml中配置:
      必填
      优先级数值
    • Servlet类中使用注释配置:
      @WebServlet(name="loginServlet", urlPatterns="/login", loadOnStartup=1)

    示例

    一种可能的web.xml配置:

    appServlet
    org.springframework.web.servlet.DispatcherServlet
    2

    通过以上步骤,可以合理配置Servlet的生命周期和启动优先级,确保Web应用按需加载管理资源,提升整体性能。

    上一篇:J2EE学习笔记(五)之Servlet中的Filter过滤器
    下一篇:J2EE学习笔记(三)之重定向、转发、超链接及表单提交的区别和路径

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2025年04月10日 18时36分19秒