Servlet实现的三种方法
(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实现的三种方法的更多相关文章
- struts2的action访问servlet API的三种方法
学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...
- Action访问Servlet API的三种方法
一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器 ...
- Servlet开发的三种方法
第一种 实现 Servlet 接口,需要覆写 Servlet 的5个方法,并将ServletConfig对象保存到类级变量中 package app01a; import java.io.IOExce ...
- Java导出freemarker的三种方法
在上一篇呢,我将导出word文档的想法与思路以及实现功能的代码分享了一下,在这里, 我想说的是我对导出freemarker模板路径的三种方法的理解和认知. 有错误的话希望大家帮忙指正 在接下来我会使 ...
- getParameter() getInputStream()和getReader() 区别 这三种方法是有冲突的,因为流只能被读一次。
我们经常用servlet和jsp, 经常用request.getParameter() 来得到数据. request.getParameter()request.getInputStream()req ...
- SpringMVC的请求转发的三种方法
SpringMVC请求转发的三种方法 首先明白请求转发是一次请求,地址栏不会发生变化,区别于重定向.springmvc环境自行配置. 以下举例中存在如下文件/WEB-INF/pages/success ...
- IDEA+Maven+Tomcat构建Web项目的三种方法
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 本文将介绍三种方 ...
- Servlet Servlet的装载三种情况
感谢原文作者:DaleyDC 原文链接:https://blog.csdn.net/sinat_32873711/article/details/53170342 Servlet的装载三种情况: 自动 ...
- 像画笔一样慢慢画出Path的三种方法(补充第四种)
今天大家在群里大家非常热闹的讨论像画笔一样慢慢画出Path的这种效果该如何实现. 北京-LGL 博客号@ligl007发起了这个话题.然后各路高手踊跃发表意见.最后雷叔 上海-雷蒙 博客号@雷蒙之星 ...
随机推荐
- 使用Opencv时编译错误
1)无法打开包括文件: “cv.h”: No such file or directory 我的配置文件没有问题,但是一直报错,我是在HEVC测试软件HM中调用了opencv. HM有很多个工程,我只 ...
- 如何才能通俗易懂地解释JS中的的"闭包"?
看了知乎上的话题 如何才能通俗易懂的解释javascript里面的‘闭包’?,受到一些启发,因此结合实例将回答中几个精要的答案做一个简单的分析以便加深理解. 1. "闭包就是跨作用域访问变量 ...
- python生成随机数据插入mysql
import random as r import pymysql first=('张','王','李','赵','金','艾','单','龚','钱','周','吴','郑','孔','曺','严' ...
- Recursion in Java
Recursion in Java 递归无出口 public class RecursionExample1 { public static void p() { System.out.println ...
- SQL join关键字
如果一张表有很多个字段可能填入起来十分的困难复杂,不如把它拆分成两个表,然后查看的时候合并起来. 比如我要记录学生的姓名,班级,成绩,父母的电话号码,那么我们可以创建一个表1 储存学生的姓名班级成绩, ...
- 【转】eval()函数用法
eval 功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法: eval(source[, globals[, locals]]) -> value 参数: source:一个Py ...
- CodeForces 772A Voltage Keepsake
二分答案,验证. 二分到一个答案,比他小的时间都需要补充到这个时间,计算所需的量,然后和能提供的量进行比较. #include <cstdio> #include <cmath> ...
- 动态规划:部分和问题和数字和为sum的方法数
很久之前看过这个题目,但是没有仔细整理,直到现在看基础才想到这两个题.这两个题非常经典也非常类似.接下来分别介绍. 部分和问题 题目描述 给定整数a1.a2........an,判断是否可以从中选出若 ...
- ssm整合总结(一)--第一步之使用maven搭建一个web项目
本文内容来自:山硅谷,本文内容整合了任务2,任务3,任务4内容.http://www.gulixueyuan.com/my/course/50 1说明 1.1该项目使用的知识点有 1.1.1校验方式是 ...
- 【8.28校内测试】【区间DP】
感受到了生活的艰辛QAQ...这才是真正的爆锤啊...(因为t1t3还没有理解所以只能贴t2叻QAQ 区间DP...爆哭把题理解错了,以为随着拿的东西越来越多,断点也会越来越多,出现可以选很多的情况Q ...