Servlet小练习

1、servlet实例什么时候被创建?

  :服务器启动时并未创建Servlet实例;当第一次访问的时候,实例才被创建。

小练习:

public class ServletDemo2 implements Servlet {

    /**
     * Servlet实例被创建后,调用init方法进行初始化
     *     Servlet什么时候被创建呢?
     *         * 不是服务器一启动时,实例被创建,第一次访问的时候,实例才被创建。
     *     init方法调用几次呢?
     *         * 只被调用一次。
     */
    public void init(ServletConfig config) throws ServletException {
        System.out.println("init...");
    }

    /**
     * service调用几次呢?
     *     * 有一次请求,调用一次service方法
     */
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
        System.out.println("service...");
    }

    /**
     * Servlet实例什么时候被销毁呢?
     *     * 服务器关闭,手动移除。
     *     destroy调用几次呢?
     *     * 一次
     */
    public void destroy() {
        System.out.println("destroy...");
    }
        public ServletConfig getServletConfig() {
        return null;
    }
    public String getServletInfo() {
        return null;
    }
}

注意:调用service()方法,Tomcat底层源码最终还是调用doGet与doPost等方法

public class ServletDemo5 extends HttpServlet {

    /**
     * 默认的情况下第一次访问的时候init被调用。
     *
     */
    public void init() throws ServletException {
        System.out.println("init...");
        // 初始化数据库的链接

    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 写的内容
        // 获取表单输入的内容
        // 自己逻辑,通过名称查询数据库,把张三的姓名查到了
        // 把张三返回浏览器,
        //向控制台输出结果
        System.out.println("doGet...");
        // 向页面输出内容
        response.getWriter().write("hello demo5...");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request,response);
    }

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

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

/**
 * ServletConfig对象
 * @author Administrator
 *
 */
public class ServletDemo6 extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 测试ServletConfig对象的api
        // 先获取ServletConfig对象
        ServletConfig config = getServletConfig();
        // 获取配置文件中serlvet的名称
        System.out.println("servlet的名称:"+config.getServletName());

        // 获取初始化的参数
        String username = config.getInitParameter("username");
        String password = config.getInitParameter("password");
        System.out.println(username+" : "+password);

        // 获取初始化参数的名称们
        Enumeration<String> e = config.getInitParameterNames();

        while(e.hasMoreElements()){
            String name = e.nextElement();
            String value = config.getInitParameter(name);
            System.out.println(name+" : "+value);
        }

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }

}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <!-- 配置全局初始化参数 -->
    <context-param>
        <param-name>encoding</param-name>
        <param-value>GBK</param-value>
    </context-param>

      <servlet>
          <servlet-name>ServletDemo2</servlet-name>
          <servlet-class>cn.itcast.servlet.ServletDemo2</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>ServletDemo2</servlet-name>
          <url-pattern>/demo2</url-pattern>
      </servlet-mapping>

  <!-- 使用模板生成的 -->
  <servlet>
    <servlet-name>ServletDemo5</servlet-name>
    <servlet-class>cn.itcast.servlet.ServletDemo5</servlet-class>
    <!-- 设置优先级 -->
    <load-on-startup>3</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletDemo5</servlet-name>
    <url-pattern>/demo5</url-pattern>
  </servlet-mapping>

  <!-- 演示初始化参数 -->
  <servlet>
    <servlet-name>ServletDemo6</servlet-name>
    <servlet-class>cn.itcast.servlet.ServletDemo6</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>123</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletDemo6</servlet-name>
    <url-pattern>/demo6</url-pattern>
  </servlet-mapping>
  <servlet-mapping>

</web-app>

原文地址:https://www.cnblogs.com/zsj03180204/p/11045424.html

时间: 2024-08-29 11:20:02

Servlet小练习的相关文章

Tomcat部署servlet小应用无法找到相应的servlet类的问题可能原因

今天特别有成就感, 感谢上帝,是他让我不轻易放弃.好了下面简单介绍一下我的问题.我最近在学习 Headfirst servlet JSP 第81页面关于部署一个小应用.但是无论怎么调试无法找到servlet,最开始是web.xml里面的servlet和servlet-mapping位置放错了,在这里也提醒一下各位,请一定要仔细检查这个部署文件,确定没有错. <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi=&qu

servlet小知识点(1)

为什么要学servlet呢? 用jsp完全可以开发一些网站,但是仅仅只是小型的网站,因为jsp页面的太过冗杂,几乎不好好维护,因此,才要学servlet,将显示和逻辑分开,因此我们需要另一种技术servlet. 有web1.0(页面内还有一个java代码,用来控制输出)和web2,0(完全分开,借助js来实现控制). Servlet是一个java程序,是在服务器上的以处理客户端请求并作出响应的程序. Sun公司仿照jdbc(访问数据库的接口)的一样做了一套j2ee的标准,对于服务器商,必须符合这

Servlet小总结

Servlet Servlet(服务器端小程序)是使用Java语言编写的服务器端程序,像JSP一样,生成动态的Web页.Servlet主要运行在服务器端,并由服务器调用执行. Servlet处理的基本流程:    (1)客户端通过HTTP提出请求: (2)Web服务器接收该请求并将其发送给Servlet,若这个Servlet尚未被加载,Web服务器将它加载到Java虚拟机中并执行它. (3)Servlet程序将接收该HTTP请求并执行某种处理. (4)Servlet会将处理后的结果向Web服务器

[FMG]两个简单的JSP+servlet小程序

周末啦,最后一天,问了一下妹子,你作业写完了没有,妹子说,木有,我就傻眼了... 好吧,妹子,我来帮你写. 于是乎,把作业ppt下载下来,看了看,还可以,不算难,于是就帮妹子写完了这一个作业.虽然说还有一个作业ppt连我都看不懂布置的老师是想要干什么,真心想吐槽一句,老师,不给力啊. 好了,先上一个代码结构图吧: 主要代码分为java代码部分和WebContent代码部分: java代码部分主要分成了3个包:BEAN(实体类包),DAO(数据库访问类包),Servlet(Servlet类包) B

java_第一个servlet小程序

xml中注册: <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>

Servlet小总结(转)

一,什么是Servlet? Servlet是一个Java编写的程序,此程序是基于Http协议的,在服务器端运行的(如tomcat), 是按照Servlet规范编写的一个Java类. 二,Servlet有什么作用? 主要是处理客户端的请求并将其结果发送到客户端. 三,Servlet的生命周期? Servlet的生命周期是由Servlet的容器来控制的,它可以分为3个阶段;初始化,运行,销毁.初始化阶段: 1,Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内

第一个servlet小例子

1.sendForward.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose

servlet 小知识

浏览器发送一个HTTP请求,HTTP请求由Web容器分配给特定的Servlet进行处理,Servlet的本质是一个Java对象,这个对象拥有一系列的方法来处理HTTP请求.常见的方法有doGet(),doPost()等.Web容器中包含了多个Servlet,特定的HTTP请求该由哪一个Servlet来处理是由Web容器中的web.xml来决定的. 作者:psyduck 链接:https://www.zhihu.com/question/21416727/answer/28555855 来源:知乎

Servlet小示例:jsp页面提交信息Servlet接收并打印输出

该示例采用doPost方法提交表单,该示例一共包含两个文件. 一个是用来提交用户信息的表单userForm2.jsp,另一个是用来接收参数的Servlet. userForm2.jsp 1 <%@ page language="java" contentType="text/html;charset=gb2312"%> 2 3 <html> 4 <head><title>用户表单</title></h