package javax.servlet;

import java.io.IOException;

public interface Servlet {

    public void init(ServletConfig config) throws ServletException;

    public ServletConfig getServletConfig();

    public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException; public String getServletInfo(); public void destroy();
}
public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable
package com.xh.test.api;

import javax.servlet.*;
import java.io.IOException; /**
* Created by root on 17-11-12.
*/
public class MyGenericServlet extends GenericServlet {
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println(">>>service " + req + " , " + res);
String id = req.getParameter("id");
System.out.println(">>>id " + id);
res.getWriter().write("hello i am MyGenericServlet");
res.flushBuffer(); } @Override
public void init(ServletConfig config) throws ServletException {
System.out.println(">>>init_p :" + config);
super.init(config);
} @Override
public void init() throws ServletException {
System.out.println(">>>init");
super.init();
} @Override
public void destroy() {
System.out.println(">>>destroy");
super.destroy();
} public MyGenericServlet() {
System.out.println(">>>MyGenericServlet");
}
}

访问:http://localhost:8080/testservlet/1?id=100

浏览器输出:hello i am MyGenericServlet

控制台输出:

>>>MyGenericServlet
>>>init_p :org.apache.catalina.core.StandardWrapperFacade@4a1957bf
>>>init
>>>service org.apache.catalina.connector.RequestFacade@e4f73de , org.apache.catalina.connector.ResponseFacade@297fd904
>>>id 100

PS:容器启动的时候没有初始化,第一次访问才初始化。init(ServletConfig config)的参数由容器传入。ServletConfig包括当前Servlet的名字,服务器监听的地址等

配置文件:

web.xml:

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>MyGenericServlet</servlet-name>
<servlet-class>com.xh.test.api.MyGenericServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>MyGenericServlet</servlet-name>
<url-pattern>/1</url-pattern>
</servlet-mapping>
</web-app>

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xh.test.servlet</groupId>
<artifactId>testservlet</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>testservlet Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency> </dependencies>
<build>
<plugins>
<!-- 本地环境使用 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<hostName>localhost</hostName> <!-- Default: localhost -->
<port>8080</port> <!-- 启动端口 Default:8080 -->
<path>/${project.artifactId}</path> <!-- 访问应用路径 Default: /${project.artifactId}-->
<uriEncoding>UTF-8</uriEncoding> <!-- uri编码 Default: ISO-8859-1 -->
</configuration>
</plugin>
</plugins>
<finalName>testservlet</finalName>
</build> </project>

重新学习Servlet的更多相关文章

  1. 重新学习Servlet二

    重新学习Servlet public abstract class HttpServlet extends GenericServlet package com.xh.test.api; import ...

  2. JavaWeb学习——Servlet相关的接口和类

    JavaWeb学习——Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...

  3. 学习servlet时出现的一些问题

    此篇用来记录学习servlet时遇到的一些问题,谨防以后再犯. 问题1.导入的web项目,servlet中导入的包名报错. (1)缺少相关包,推荐一个网站下载jar包很方便http://mvnrepo ...

  4. 这样学习Servlet,会事半功倍!!

    前言 工作已经有一段时间了,如果让我重新学Servlet,我会怎么学呢?下面抛出两个常见的问题,我分开来解答 2020年了,还需要学Servlet吗? Servlet的学习路线(学习重点) 一.202 ...

  5. 小波学ItDay01--开始学习Servlet

    曾经想过许多的开场白,有热血的,有励志的,最后思前想后还是用这句话开篇吧! 生活不会亏待每一个愿意努力的人-------<摘自某微信群的语录> 今天第一天,结合自己的进度开始学习Servl ...

  6. JavaWeb学习--Servlet认识

    Servlet开发 用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种请 ...

  7. javaee学习-servlet初始化参数

    1.需要定义ServletConfig对象来接收servlet配置的初始化参数. 2.当servlet配置了初始化参数后,web容器在创建servlet实例对象时, 会自动将这些初始化参数封装到Ser ...

  8. JavaWeb学习—Servlet

    1.什么是Servlet Servlet是一个继承HttpServlet类的Java类 Servlet必须部署在web服务器端,用来处理客户端的请求 2.Servlet运行过程 Web Client ...

  9. 打开新世界的第一步:学习servlet

    什么是servlet? 是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容. 创建servlet 一.创建一个web project 1)流程:eclipse-F ...

随机推荐

  1. 理解C语言递归up_and_down

    函数调用.理解递归 对于程序,编译器会对其分配一段内存,在逻辑上可以分为代码段,数据段,堆,栈. 代码段:保存程序文本,指令指针EIP就是指向代码段,可读可执行不可写 数据段:保存初始化的全局变量和静 ...

  2. xml文件格式化后不能获取到值

    在有些时候,我们要使用到xml文件,必须得将文件中的内容压缩成一行,才能读取到其中的值,一旦有换行符.制表符.空格之类的就读不到.所以只能在开发好以后,将代码压缩再执行,十分不方便. 尝试了几个替换符 ...

  3. day30 纸牌游戏

    import json from collections import namedtuple Card = namedtuple('Card', ['rank', 'suit']) # rank 牌面 ...

  4. Heaven of Imaginary(PKUSC2018)

    Day-4 巨佬一个星期前就停了课,而蒟蒻还在教室里,收拾一地学科的烂摊子. 蒟蒻为什么要停课呢?真的有\(1\%\)的可能,成功报名PKUSC吗? 真的有. 蒟蒻滚回了机房. 三天,能做些什么呢?可 ...

  5. SharePoint 2013 首页修改

    最近客户要求统一首页的风格,所以对各网站的首页进行了统一的修改. 1. 左边导航菜单修改: 修改的地方: Site Settings –> Look and feel –> Navigat ...

  6. sprintf-%s的用法

    @2018-9-19 sprintf-%s的用法 #include <stdio.h> #include <string.h> char string[] = "I ...

  7. 深入理解Adaboost算法

    理解算法确实是欲速则不达,唯有一步一步慢慢看懂,然后突然觉得写的真的太好了,那才是真的有所理解了. Adaboost的两点关键点: 1. 如何根据弱模型的表现更新训练集的权重: 2. 如何根据弱模型的 ...

  8. asp <----> vb(com,dll) <---> c 来回的调用,生命在于折腾

    最近想改进一个两年前写的小程序,原因是最近将运行在托管服务器上的asp程序迁移到阿里云主机上运行. 初次使用阿里云主机,买了一个配置较低的主机(1核,1G内存,年付:1500左右吧) 原来使用的托管的 ...

  9. 下拉列表JComboBox,列表框JList

    1.下拉列表JComboBox public class Demo extends JFrame { public Demo() { setBounds(100, 100, 200, 100); se ...

  10. yolov2源码分析

    分析过程首先我们从yolo的训练命令开始分析(yolo的源码是用c++写的): ./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darkn ...