Servlet

1 涉及的技术知识点
  1)Servlet 
  2)Request请求对象
  3)Response响应对象

2 什么是Servlet?
  1)Servlet是Sun公司制定的一套技术标准,包含与Web应用相关的一系列接口,是Web应用实现方式的宏观解决方案。而具体的Servlet容器负责提供标准的实现。Tomcat(Web应用服务器,Servelt容器)实现了这些标准。
  2)Servlet作为服务器端的一个组件,它的本意是“服务器端的小程序”。Servlet的实例对象由Servlet容器负责创建;Servlet的方法由容器在特定情况下调用;Servlet容器会在Web应用卸载时销毁Servlet对象的实例。
  3)简单可以理解为:Servlet就是用来处理客户端的请求的.

3 Servlet开发规则

1)实际编码通过继承HttpServlet来完成Servlet的开发

2)Servlet类的相关方法

  doGet   Servlet中用于处理get请求的方法

  doPost  Servlet中用于处理post请求的方法

  service

    ①在Servlet的顶层实现中,在service方法中调用的具体的doGet或者是doPost

    ② 在实际开发Servlet的过程中,可以选择重写doGet以及doPost  或者 直接重写service方法来处理请求。

Servlet在web.xml中的配置:非常关键的一步


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  
  <!-- 配置LoginServlet : 配置LoginServlet与 处理的请求的映射.  
      
       客户端请求匹配的过程:
           与<serlvet-mapping>中的< url-pattern>进行匹配, 匹配到以后,再找到<servlet-mapping>
           中的<servlet-name>的值, 再拿上该值 到<servlet>节点中匹配 相同的<servlet-name>,进而
           找到<servlet-class>.
           Tomcat通过反射的方式创建LoginServlet的实例,根据具体的请求方式调用对应的doGet或者是doPost方法. 
  
  -->
  <servlet>
      <servlet-name>loginServlet</servlet-name>
      <servlet-class>com.web.servlet.LoginServlet</servlet-class>
      
  </servlet>
  
  <servlet-mapping>
      <servlet-name>loginServlet</servlet-name>
      
      <!--  客户端的登录请求: http://localhost:8888/web01/login -->
      <url-pattern>/login</url-pattern>
  </servlet-mapping>
</web-app>
package com.web.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {
    /*
    //根据具体的请求方式来调用doGet 或者 doPost
    @Override
    protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        super.service(arg0, arg1);
    }
    */
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doPost(req, resp);
    }
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        System.out.print("qingqiu");
    }
}

原文地址:https://www.cnblogs.com/lemonzhang/p/12840674.html