JavaWeb之第一个Servlet程序

我使用的编辑器是Intellj Idea,并且配置maven插件,无论是Intellj还是eclipse,重要的是编程思想,无所谓编辑器。

  1. 编写一个Servlet实现类:HelloServlet:

import javax.servlet.*;
import java.io.IOException;

public class HelloServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("int...");
    }

    @Override
    public ServletConfig getServletConfig() {
        System.out.println("config...");
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("service...");
    }

    @Override
    public String getServletInfo() {
        System.out.println("servletInfo...");
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("destory...");
    }
}

     2.在web.xml文件中注册servlet实现类:

<servlet>
<!-- servlet注册的名字 -->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet的全类名 -->
<servlet-class>com.yding.web.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
<!-- servlet的名字 -->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet的映射 -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>

  3.启动tomcat,将web项目部署到tomcat中,第一次访问http://localhost:8080/JavaWeb/hello时,servlet初始化,调用init()方法,并调用service方法,

  在以后访问此链接时,都会调用service()方法,当服务器关闭时,会调用destroy()方法。

int...
service...
service...
destory...

   4. <load-on-startup>参数,可以控制servlet的加载时间,1表示加载tomcat同时加载servlet

<servlet>
  <!-- servlet注册的名字 -->
  <servlet-name>HelloServlet</servlet-name>
  <!-- servlet的全类名 -->
  <servlet-class>com.yding.web.HelloServlet</servlet-class>
  <!-- 可以指定servlet的创建时间 1 表示启动tomcat时就加载此servlet -->
  <load-on-startup>1</load-on-startup>
</servlet>

  5.servlet可以匹配多个映射:

<servlet-mapping>
    <!-- servlet的名字 -->
    <servlet-name>HelloServlet</servlet-name>
    <!-- servlet的映射 -->
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello2</url-pattern>
  </servlet-mapping>

  6.serlet的URL通配符

  通配符只可以有两种形式:  第一种形式:  .action 或.html等    第二种形式:/*  不可以 /*.action

  7.servletConfig,这是servlet的参数

<servlet>
  <!-- servlet注册的名字 -->
  <servlet-name>HelloServlet</servlet-name>
  <!-- servlet的全类名 -->
  <servlet-class>com.yding.web.HelloServlet</servlet-class>
 
<init-param> <param-name>username</param-name> <param-value>root</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>lfdy</param-value> </init-param>
<!-- 可以指定servlet的创建时间 1 表示启动tomcat时就加载此servlet --> <load-on-startup>1</load-on-startup> </servlet>
 public void init(ServletConfig servletConfig) throws ServletException {
        String username = servletConfig.getInitParameter("username");
        System.out.println(username);
        String password = servletConfig.getInitParameter("password");
        System.out.println(password);
        System.out.println("int...");
        Enumeration<String> enumeration = servletConfig.getInitParameterNames();
        while(enumeration.hasMoreElements()){
            String name = enumeration.nextElement();
            String value = servletConfig.getInitParameter(name);
            System.out.println(name+": "+value);
        }
    }

结果:

root
lfdy
int...
password: lfdy
username: root
原文地址:https://www.cnblogs.com/lfdingye/p/7512648.html