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

目录

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()方法运行在多线程的环境下

猜你喜欢

转载自blog.csdn.net/weixin_62190821/article/details/127488355
今日推荐