(1)方法一:

//这是第一个实现servlet的方法。使用时限servlet接口的方法来实现,使用的时候须要引用servlet-api.jar
package com.lc;

import javax.servlet.*;
import java.io.*;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException; public class Hello implements Servlet{ //该函数用于初始化该servlet(相似于类的构造函数)
//该函数仅仅会被调用一次(当用户第一次訪问该servlet是被调用)
public void init(ServletConfig parm1) throws ServletException {
System.out.println("init it!"); } public ServletConfig getServletConfig() {
return null;
} //这个函数用于处理业务逻辑
//程序猿应当那个当业务逻辑逻辑代码写在这里
//当用户訪问servlet时都会被调用
//req用于获得client的信息
//res用户想client返回信息 (能够觉得是游览器)
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { //从res中得到Printwriter
System.out.println("service it!"); //在控制台显示
PrintWriter pw = res.getWriter();
pw.println("hello world!");//在游览器中显示
} public String getServletInfo() {
return "";
} //三种情况导致destroy的调用:
//1.reload 该servlet(webApps)
//2.关闭tomcat
//3.关机
public void destroy() {
//销毁servt实例 实际就是释放内存
System.out.println("destroy it!");
} }

(2)方法二:

//第二个实现servlet程序,继承GenericServlet  这样的方法非常easy

package com.tsinghua;

import javax.servlet.GenericServlet;
import java.io.*;
import javax.servlet.*; public class HelloGenericServlet extends GenericServlet{ //重写service方法就可以 public void service(ServletRequest req,ServletResponse res){ //返回hello world!generic try{
PrintWriter pw =res.getWriter();
pw.println("Hello world! generic!");
}
catch(Exception ex){
ex.printStackTrace();
}
} }

(3)方法三:

//第三个servlet实现程序。通过继承HttpServlet

package com.tsinghua;

import javax.servlet.http.*;
import java.io.*; public class HelloHttp extends HttpServlet{ //处理get请求
//req:用于获得client(游览器)的信息
//res:用于向client(游览器)返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res){ //业务逻辑
try{
PrintWriter pw = res.getWriter();
pw.println("hello http!");
}
catch(Exception ex){
ex.printStackTrace();
}
}
//处理post请求
//req:用于获得client(游览器)的信息
//res:用于向client(游览器)返回信息
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}

在实现上述三种方法的时候 须要配置web.xml文件。代码例如以下:

<?

xml version="1.0" encoding="ISO-8859-1"?>

<web-app 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_3_0.xsd"
version="3.0"
metadata-complete="true"> <display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description> <!--JSP servlet mappings starts--> <servlet>
<!--给自己的servlet起个名字 随意的名字-->
<servlet-name>Hello</servlet-name>
<!--指明servlet的路径(包名+类名)-->
<servlet-class>com.tsinghua.Hello</servlet-class>
</servlet>
<servlet-mapping>
<!--和上边的servlet的名字是一样的-->
<servlet-name>Hello</servlet-name>
<!--这是在游览器中输入的訪问该servlet的url-->
<url-pattern>/helloworld</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>HelloGenericServlet</servlet-name>
<servlet-class>com.tsinghua.HelloGenericServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloGenericServlet</servlet-name>
<url-pattern>/helloGeneric</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>HelloHttp</servlet-name>
<servlet-class>com.tsinghua.HelloHttp</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloHttp</servlet-name>
<url-pattern>/helloHttp</url-pattern>
</servlet-mapping> <!--JSP servlet mappings end-->
</web-app>

ok!

Servlet实现的三种方法的更多相关文章

  1. struts2的action访问servlet API的三种方法

    学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...

  2. Action访问Servlet API的三种方法

    一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器 ...

  3. Servlet开发的三种方法

    第一种 实现 Servlet 接口,需要覆写 Servlet 的5个方法,并将ServletConfig对象保存到类级变量中 package app01a; import java.io.IOExce ...

  4. Java导出freemarker的三种方法

    在上一篇呢,我将导出word文档的想法与思路以及实现功能的代码分享了一下,在这里, 我想说的是我对导出freemarker模板路径的三种方法的理解和认知.  有错误的话希望大家帮忙指正 在接下来我会使 ...

  5. getParameter() getInputStream()和getReader() 区别 这三种方法是有冲突的,因为流只能被读一次。

    我们经常用servlet和jsp, 经常用request.getParameter() 来得到数据. request.getParameter()request.getInputStream()req ...

  6. SpringMVC的请求转发的三种方法

    SpringMVC请求转发的三种方法 首先明白请求转发是一次请求,地址栏不会发生变化,区别于重定向.springmvc环境自行配置. 以下举例中存在如下文件/WEB-INF/pages/success ...

  7. IDEA+Maven+Tomcat构建Web项目的三种方法

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 本文将介绍三种方 ...

  8. Servlet Servlet的装载三种情况

    感谢原文作者:DaleyDC 原文链接:https://blog.csdn.net/sinat_32873711/article/details/53170342 Servlet的装载三种情况: 自动 ...

  9. 像画笔一样慢慢画出Path的三种方法(补充第四种)

    今天大家在群里大家非常热闹的讨论像画笔一样慢慢画出Path的这种效果该如何实现. 北京-LGL 博客号@ligl007发起了这个话题.然后各路高手踊跃发表意见.最后雷叔 上海-雷蒙 博客号@雷蒙之星 ...

随机推荐

  1. 关于Android不同系统版本的市场占比情况详解

    一,google官方统计的不同Android版本市场的占比强开 google统计的数据情况 这个是google官方对于不同版本的市场占比情况.这个是针对全世界所有的Android手机占比情况. 二,友 ...

  2. Java Hibernate和.Net EntityFramework 如何在提交事务之前 就拿到需要新增实体的Id

    在Hibernate中很容易做到这一点,因为hibernate在事务commit之前  还有一个save方法,这个save方法就可以持久化并且拿到Id. 但是EF并不可以呀,EF是将对象标记为新增状态 ...

  3. 开发 ASP.NET vNext 初步总结(使用Visual Studio 2015 Preview )

    新特性: vNext又称MVC 6.0,不再需要依赖System.Web,占用的内存大大减少(从前无论是多么简单的一个请求,System.Web本身就要占用31KB内存). 可以self-host模式 ...

  4. 利用nodeJs anywhere搭建本地服务器环境【转载】

    首先去nodeJs官网下载最新版nodeJs     https://nodejs.org/en/ 安装成功后win+r打开cmd 输入node -help 或者node -v查看是否安装成功 装好后 ...

  5. 免费的.NET混淆和反编译工具

    免费的.NET代码混淆工具: Eazfuscator.NET  http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.as ...

  6. git 免密码配置

    1.cd ~/ 2.touch .git-credentials   (注意文件名前面有个  ”点”) 3.打开刚刚创建的文件,写入 https://username:password@github. ...

  7. Spring boot的hot swapping

    前言 嘛,都是看官方文档的,就先贴上文档地址: using-boot-hot-swapping 使用 使用hot swapping只需要把devtools的jar包添加到你的classpath里. 在 ...

  8. Netstat -tln 命令是Linux查看端口使用情况

    Netstat -tln 命令是Linux查看端口使用情况

  9. redis_NoSql入门概述

    一.为什么要使用Nosql 今天我们可以通过第三方平台(如:google,facebook)可以很容易的访问和抓取数据.用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加. ...

  10. HDU 3339 In Action【最短路+01背包】

    题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=3339] In Action Time Limit: 2000/1000 MS (Java/Other ...