Servlet 基础知识(1)(Servlet 概念及设计步骤及生命周期)

本文介绍了Servlet的基本概念,包括其作为Web服务器端应用程序的角色,以及如何处理GET和POST请求。接着详细阐述了Servlet的设计步骤,包括创建Servlet类、覆写doGet()和doPost()方法,以及在web.xml中的注册过程。最后,探讨了Servlet的生命周期,分为加载和初始化、服务以及结束三个阶段。示例代码展示了Servlet如何获取和响应HTTP请求参数。
摘要由CSDN通过智能技术生成

目录

1、Servlet 基本概念

2 Servlet 设计步骤  

3 Servlet 的生命周期


1、Servlet 基本概念

Servlet 是遵循 Java Servlet 规范的 Java 类,由 Web服务器 端的 JVM 执行,被用来 扩展 Web服务器 的功能,是在 Web服务器 端的符合“请求-响应”访问模式的应用 程序 ,可以接收来自 Web 浏览器或其他 HTTP 客户 程序 的请求,并将响应结果返回给客户端。Servlet 通常用于在服务器端完成访问数据库、调用 JavaBean 等业务性操作。

 

如果 HTTP 请求方法为 GET,则缺省情况下调用doGet(),如果 HTTP 请求方法为 POST,则缺省情况下就调用 doPost()。
由于 service()方法会自动调用与请求方法相对应的 doGet()或 doPost()方法,所以,在实际编程中,不 需要覆写 service()方法,只需覆写相应的 doGet()和 doPost()方法。

2 Servlet 设计步骤  

创建 Servlet 类,该类继承自 javax.servlet.http.HttpServlet。
覆写 doGet()和 doPost()方法。
在 web.xml 文件中注册 Servlet,这一注册工作也可由 Servlet 创建向导自动完成。
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Servlet01" method="post">
	账号:<input type="text" name="account" />${accountErrorString }<br>
	密码:<input type="password" name="psd" />${psdErrorString }<br>
	<input type="submit" value="提交" /><br>${errorString }
</form>
</body>
</html>
package first;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

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 org.apache.jasper.tagplugins.jstl.core.Out;

/**
 * Servlet implementation class Servlet01
 */
@WebServlet("/Servlet01")
public class Servlet01 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlet01() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		String account=request.getParameter("account");
		String psd=request.getParameter("psd");
		PrintWriter out=response.getWriter();
		out.println(account);
		out.println(psd);
		Enumeration<String> headers=request.getHeaderNames();
		response.setContentType("text/html;charset=utf_8");
		while(headers.hasMoreElements()) {
			String header_name=headers.nextElement();
			String header_value=request.getHeader(header_name);
			out.println("<h1>"+header_name+":"+header_value+"h1");
		}
		out.println("<h1>"+request.getRemoteAddr()+"<h1>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

Servlet 的生命周期

Servlet 的生命周期主要有加载和初始化阶段、Servlet 服务阶段和 Servlet 结束阶段。

1.加载和初始化阶段
当 Web 服务器启动时,Servlet 容器首先到发布目录的 WEB-INF 下查找配置文件web.xml。这个配置文件中有相关的 Servlet 的配置信息,主要是定义 Servlet 和定义Servlet 的代表这个应用在 Tomcat 中的访问路径 url 请求映射。
2.Servlet 服务阶段
Servlet 被初始化以后,该 Servlet 实例就处于能响应请求的就绪状态,可以被服务器用来服务于客户端的请求并生成响应。当 Web 服务器接受到浏览器的访问请求后,Web服务器会调用该实例的 service(ServletRequest request, ServletResponse response)方法,request 对象和 response 对象由服务器创建并传给 Servlet 实例。request 对象封装了客户端发往服务器端的信息,respons对象封装了服务器发往客户端的信息个Servlet 实例能够同时服务于多个客户端请求,即 service()方法运行在多线程的环境下
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郭同学忒骚了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值