三 Servlet Infterface and demo

12 篇文章 0 订阅

在我上篇关于Servlet API 的文章中,我说明了在创建任何Servlet时你必须直接或间接地实现Servlet接口(间接地实现就是通过扩张那些实现了Servlet接口的类,这些类是GenericServlet和HttpServlet).

 

如果想创建协议相关的servlet,例如htt servlet,那么就应该扩展HttpServlet类,对于协议不相关的servlet就以应该扩展Genericervlet类。 在这里我不会详细解释GenericServlet,HttpServlet,因为我会在其他独立章节解释他们。

 

简单来说有三种方式创建servlet

1) 扩展HttpServlet 类

2)扩展GenericSerlet类

3)通过扩展Servlet接口

注意:但是,您应该始终选择创建servlet的第一种方式,即通过扩展HttpServlet类。

 

接口SErvlet 接口中的方法

 

这里是在Servlet接口中的清单:

1)void destory(): 该方法在Servlets寿命周期最后面被servlet容器调用。与service()方法在生命周期被多次调用不同,这个方法在生命周期完成是被容器调用一次。一旦destory()被容器调用就不会在调用servlet的service()方法。

2)void init(ServletConfig config): 当Servlet容器启动时(当web服务器启动时开启)载入所有的servlet并实例化它们。在每个servlet实例调用init()后,这个方法就会初始化servlet。

3) void service(SerevletRequest req,ServletResponse res): 这是唯一的在servlet生命周期中被多次调用的方法。这个方法处理客户端的请求,在服务器接受一次用户请求就调用一次此方法。

4)ServletConfig getServletConfig(): 返回一个ServletConfig对象,包含此servlet初始化和启动参数。

5)java.lang.String getServletInfo(): 返回关于此servlet的信息,例如作者,版本和版权。

 

 

例子:

在这个例子中,我们通过扩展Servlet接口创建一个servlet类。

 

index.html

 

<a href="welcome">Click here to call the servlet</a>

 

DemoServlet.java


 

mport java.io.*;

import javax.servlet.*;

public class DemoServlet implements Servlet{

ServletConfig config=null;

public void init(ServletConfig config){

this.config=config;

System.out.println("Initialization complete");

}



public void service(ServletRequest req,ServletResponse res)

throws IOException,ServletException{

res.setContentType("text/html");

PrintWriter pwriter=res.getWriter();

pwriter.print("<html>");

pwriter.print("<body>");

pwriter.print("<h1>Servlet Example Program</h1>");

pwriter.print("</body>");

pwriter.print("</html>");

}

public void destroy(){

System.out.println("servlet life cycle finished");

}

public ServletConfig getServletConfig(){

return config;

}

public String getServletInfo(){

return "A Demo program written by Chaitanya";

}

}

web.xml

<web-app>

<servlet>

<servlet-name>Beginnersbook</servlet-name>

<servlet-class>DemoServlet</servlet-class>

</servlet>



<servlet-mapping>

<servlet-name>Beginnersbook</servlet-name>

<url-pattern>/welcome</url-pattern>

</servlet-mapping>

</web-app>

 

 

 

 

具体操作:

提前安装好jdk和tomcat,我这里安装的是jdk8 和tomcat7.

1) 将tomcat 中lib文件夹下的servlet.jar 复制到jdk的jre/lib/ext目录下,方便我们后面的编译。

cp ./lib/servlet.jar /opt/jdk8/jre/lib/ext/

2) 在tomcat 的webapps 文件夹中创建我们的目录demoservlet,在此目录中创建WEB-INF,在WEB-INF中创建classes文件夹用来保存我们将来的servlet的class文件,在WEB—INF 下创建web.xml文件

mkdir demoservlet

mkdir ./demoservlet/classes

touch ./demoservlet/web.xml

3)复制我们的DemoServlet.java 到上面的classes文件夹下,并编译,填充web.xml内容

javac DemoServlet.java

4) 启动tomcat并验证,浏览器输入:http://localhost:8080/demoservlet/welcome

如果看到大写黑体的“Servlet Example Program”

那么则证明成功了。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值