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发起了这个话题.然后各路高手踊跃发表意见.最后雷叔 上海-雷蒙 博客号@雷蒙之星 ...
随机推荐
- DNS使用TCP还是UDP?
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.下面将介绍DNS分别在什么情况下使用这两种协议. TCP与UDP简介 TCP ...
- tensorflow运行出现错误 : ImportError: Could not find 'cudart64_90.dll'.
安装 tensorflow-gpu 版本后,需要安装相应的 CUDA 和 cuDNN 注意版本问题:tensorflow-gpu 1.7以及之后的版本要安装 CUDA 8.0 以上的版本,tf 1.7 ...
- Codeforces Round #302 (Div. 1) D - Road Improvement 树形dp
D - Road Improvemen 思路:0没有逆元!!!! 不能直接除,要求前缀积和后缀积!!! #include<bits/stdc++.h> #define LL long lo ...
- oracle创建计划任务
特别提示: oracle是执行完任务,才按照interval去计算下次执行时间!!! 为精确每个5分钟执行一个任务,必须自己计算时间. 如:trunc_minute(sysdate)+/ create ...
- SpringBoot入门系列
集合redis,mysql,测试例子 http://blog.csdn.net/lxhjh/article/details/51764604
- 【SQL SERVER】触发器(一)
下面是个人对触发器知识的整理,触发器其实很简单,但想要编写发杂的触发器操作还是需要一定的SQL语句编写,触发器主要用于SQL SERVER约束.默认值和规则的完整性检查,还可以实现由主键和外键不能保证 ...
- axios请求数据
1.安装axios模块 import axios from 'axios'; //安装方法 npm install axios //或 bower install axios 2.引入模块 直接引用: ...
- 转:perl源码审计
转:http://www.cgisecurity.com/lib/sips.html Security Issues in Perl Scripts By Jordan Dimov (jdimov@c ...
- HDU 6199gems gems gems (DP)
gems gems gems Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 浅谈MVVM模式和MVP模式——Vue.js向
浅谈MVVM模式和MVP模式--Vue.js向 传统前端开发的MVP模式 MVP开发模式的理解过程 首先代码分为三层: model层(数据层), presenter层(控制层/业务逻辑相关) view ...