学习笔记(3)-----servlet的三种开发方式

servlet网络拓扑图:



servlet快速入门:

开发servlet的三种方法:(非eclipse开发)

1、实现servlet接口:

在之前部署的虚拟目录mywebside的WEB-INF文件夹下新建classes文件夹(放servlet类文件),和一个lib文件夹,

以及web.xml配置文件(可从tomcat安装目录,D:\Tomcat6.0\webapps\ROOT\WEB-INF下复制里面的web.xml文件,内容稍微改下(去主页文件配置))



在classes文件夹下先建MyFirstServlet.java文件,然后编写servlet:

package com.zzx;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class MyFirstServlet implements Servlet
{   //init用于初始化servlet,就是把servlet装载到内存,该方法只会被调用一次
    public void init(ServletConfig config)throws ServletException
    {

    }
    //getServletConfig永遇得到ServletConfig对象
    public ServletConfig getServletConfig()
    {
        return null;
    }
    //service是服务函数,我们的业务逻辑代码就是写在这里的,浏览器每次http请求,该函数就会被调用
    public void service(ServletRequest req,ServletResponse res)throws ServletException,java.io.IOException
    {
        System.out.println("hello word!" + new java.util.Date());//在控制台输出
        res.getWriter().println("hello word!" + new java.util.Date().toLocaleString());//在浏览器输出,getWriter获得通向浏览器的字符流
    }
    //getServletInfo函数得到servlet的配置信息
    public java.lang.String getServletInfo()
    {
        return null;
    }

    //销毁该servlet,从内存中清除掉,该函数在整个过程中被调用一次
    public void destroy()
    {

    }
    // main函数可不写
    public static void main(String args[])
    {

    }
}

编译:


当然要编译成功首先要配置环境变量,让程序能找到servlet-api.jar



当然有了servlet类还得部署servlet才能通过使服务器通过编写的servlet响应浏览器请求

在web.xml中部署:


<servlet-name>指定该servlet的名字(可以随便取),<servlet-class>指定该servlet的class文件放在哪个包下面

这里写com.zzx.MyFirstServlet(不带.class)

<url-pattern>指定通过浏览器如何访问servlet,这里的' /zzx '表示在浏览器输入:http://localhost:8081/mywebside/zzx

来访问该servlet

(浏览器资源定位到zzx,通过web.xml文件找到zzx对应的servlet名字,即MyFirstServlet,然后再通过<servlet>节点中的元素找到该servlet名对应的class文件,然后加载到Java虚拟机运行,最后将结果打包返回给浏览器)




2、实现GenericServlet接口:

GenericServlet接口已经实现了init(),ServletConfig(),getServletInfo(),destroy(),

所以只用实现servlet()方法。

在classes文件夹下创建MyGenericServlet.java文件

package com.zzx;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class MyGenericServlet extends GenericServlet
{
	public void service(ServletRequest req,ServletResponse res)throws ServletException,java.io.IOException
    {
        System.out.println("hello word!" + new java.util.Date());
        res.getWriter().println("hello word!" + new java.util.Date().toLocaleString());
    }
}

同样部署servlet:


通过http://localhost:8081/mywebside/xin053 访问




3、继承HttpServlet类:(90%公司是通过此方法开发的,现在的主流)

只需重写doGet()和doPost()方法

在classes文件夹下创建MyHttpServlet.java文件

package com.zzx;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class MyHttpServlet extends HttpServlet
{//在HttpServlet中,设计者对post和get提交分别处理
	protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,java.io.IOException
	{
        resp.getWriter().println("I am doing get()" + req.getParameter("username"));
	}

	protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,java.io.IOException
	{
		resp.getWriter().println("I am doing post() post name = " + req.getParameter("username"));
	}
}//其实doGet()和doPost()最终也是去调用service()方法

同样部署servlet:


通过http://localhost:8081/mywebside/xin访问




get提交于post提交:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值