Servlet学习之一开发Servlet的三种方法

来源:互联网 发布:linux打印行号 编辑:程序博客网 时间:2024/05/21 11:05

开发步骤:

1)在%TOMCAT_HOME%\webapps下WEB-INF的文件夹,写一个文件web.xml(该网站的配置信息。。。),建立一个classes的子文件夹,也可以从别的目录ROOT下拷贝

2)开发servlet(引入servlet.api.jar)

注:题主学习时用的JCreator开发环境开发的,安装JCreator时会设置绑定JDK,所以启动JCreator后,点击Configure再点击Options时,在JDK Profiles下可以看到JDK下的相关jar包。而这个servlet.api.jar(位于Tomcat5.0\common\lib下)要我们手动引入到环境中。



3)部署你的servlet,在web.xml文件中,添加如下代码:

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"    "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>  <display-name>Welcome to Tomcat</display-name>  <description>     Welcome to Tomcat  </description><!-- JSPC servlet mappings start -->    <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>/sp</url-pattern>    </servlet-mapping><!-- JSPC servlet mappings end --></web-app>
4、Servlet生命周期

1)装载servlet,由相应的容器来完成

2)创建一个Servlet实例

3)调用Servlet的init()方法,该方法只会在第一次访问该servlet时被调用一次

4)服务:调用servlet的destroy()方法,销毁该servlet实例。该方法在一下情况被调用:a:tomcat 重新启动  b:reload该Webapp c:重新启动电脑

三种实现方式

1、实现Servlet接口

package com.tsinghua;import javax.servlet.*;import java.io.*;public class Hello implements Servlet{//该函数用于初始化该servlet(类似于类的构造函数)//该函数只会被调用一次(当用户第一次访问该Servlet时被调用)    public void init(ServletConfig parml) throws ServletException{    System.out.println("init it");    }    //得到Servlet配置文件,不是很重要    public ServletConfig getServletConfig(){    return null;    }    //这个函数用于处理业务逻辑    //程序员应当把业务逻辑代码写在这里    //该函数会被调用多次,当每次访问servlet时,都会被调用    //req 用于获得客户端信息   res用于向客户端返回信息  客户端即浏览器    public void service(ServletRequest req,ServletResponse res) throws ServletException{    //从res中得到PrintWriter    //控制台显示    System.out.println("service it");    try{    PrintWriter pw=res.getWriter();    //发回网页显示        pw.println("hello,world");    }catch(IOException e)    {        }        }    public String getServletInfo(){    return "";    }    //销毁Servlet实例(释放内存)    //什么情况被调用1.reload 该serlvet(webApps) 2.关闭tomcat  //3.关机    public void destroy(){    System.out.println("destroy");    }}


2、继承GenericServlet

通过GenericServlet去开发Servlet,只需要重写Service相对来说要简单一些。

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

3、继承HttpServlet

需要重写doGet、doPost方法。这是目前用的最多的一种方法。

表单提交方法有两种,一种是get,一种是post;

两者区别:

安全性:get<post   内容大小:get<post get   请求速度:get>post; get要求服务器立即处理请求,而post请求可能形成一个队列请求。

package com.tsinghua;import javax.servlet.http.*;import java.io.*;public class HelloHttp extends HttpServlet{   //重写get请求   public void doGet(HttpServletRequest req,HttpServletResponse res){     try{     PrintWriter pw=res.getWriter();     pw.println("hello,http");     }catch(Exception ex)     {     ex.printStackTrace();     }   }      //重写get请求   public void doPost(HttpServletRequest req,HttpServletResponse res){      this.doGet(req,res);   }}


0 0
原创粉丝点击