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发起了这个话题.然后各路高手踊跃发表意见.最后雷叔 上海-雷蒙 博客号@雷蒙之星 ...
随机推荐
- CircleIndicator
dependencies { compile 'com.nineoldandroids:library:2.4.+' compile 'me.relex:circleindicator:1.0.0@a ...
- Flume(二)Flume的Source类型
一.概述 官方文档介绍:http://flume.apache.org/FlumeUserGuide.html#flume-sources 二.Flume Sources 描述 2.1 Avro So ...
- ie6 css 返回顶部图标固定在浏览器右下角
比较常用记录一下. #e_float{ _position:absolute; _bottom:auto; _right:50%; _margin-right:-536px; _top:express ...
- 【转】django 与 vue 的完美结合 实现前后端的分离开发之后在整合
https://blog.csdn.net/guan__ye/article/details/80451318 最近接到一个任务,就是用django后端,前段用vue,做一个普通的简单系统,我就是 ...
- bean的singleton(没有看到生命周期范围??)
4.5.1 The singleton scope Only one shared instance of a singleton bean is managed, and all requests ...
- scrapy抓取拉勾网职位信息(六)——反爬应对(随机UA,随机代理)
上篇已经对数据进行了清洗,本篇对反爬虫做一些应对措施,主要包括随机UserAgent.随机代理. 一.随机UA 分析:构建随机UA可以采用以下两种方法 我们可以选择很多UserAgent,形成一个列表 ...
- iOS 9应用开发基础教程下册
iOS 9应用开发基础教程下册 介绍: 本教程是国内第一本iOS 9开发应用教程.本教程基于Xcode 7.0,使用Swift 2.0语言讲解如何开发iOS 9的应用App. 学习建议:本教程针对 ...
- Divisible by Seven CodeForces - 376C (数论)
You have number a, whose decimal representation quite luckily contains digits 1, 6, 8, 9. Rearrange ...
- Python Socket多线程并发
1.SocketServer模块编写的TCP服务器端代码 Socketserver原理图 服务端: import SocketServer #导入SocketServer,多线程并发由此类实现 cla ...
- MySQL笔记(五)之表的连接
MySql数据库中表的连接一共有如下几种 INNER JOIN 内连接 语法: SELECT column_name(s) FROM table_name1 INNER JOIN table_name ...