servlet详解

from now, 开始我的web开发扫盲系列。搞web,怎么能不懂servlet呢?but,我就是不懂,那就从servlet开始。

 

什么是servlet?

servlet就是在服务器端运行的一个程序,是一个被编译好的java类;当web服务器开始执行时,servlet类就被初始化;当现实在某个浏览器上的XHTML文档请求某个servlet类对象时,该对象就在服务器上运行。它会处理浏览器上发来的请求,并动态生成XHTML文档作为响应。

其实通俗点讲,它的作用就是:动态生成对浏览器请求的响应。

 

servlet的实现

任何servlet要么实现Servlet接口,要么就得扩展实现一个Servlet类。

客户在编程时,通常使用的是继承一个HttpServlet类(HttpServlet类是对GenericServlet类的继承,GenericServlet类是一个预定义的Servlet接口的实现)。

HttpServlet提供了多种响应客户请求的方法,最常用的几种方法如下表:

方法用途
doGet         处理HTTP GET请求
doPost处理HTTP POST请求
doPut处理HTTP PUT请求
doDelete处理HTTP DELETE请求

我们在继承HttpServlet时,必须覆盖上面方法的至少其中一种。

其中HTTP PUT和HTTP DELETE的作用分别是客户端请求上传文件到服务器或者删除服务器上的文件,而在大多数情况下,服务器时不允许用户操作上面的文件,所以一半情况下,我们只需要覆盖doGet、doPost方法,即处理HTTP GET和HTTP POST请求。

下面我么讲一个例子,怎么去覆盖doGet方法(doPost方法类似)

doGet方法的协议如下:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException

其中两个参数,HttpServletRequest参数包含了客户端请求,HttServletResponse提供服务器返回给客户段的响应方法。

 

现在假设我们客户端发送一个HttpGet请求,希望服务器返回一个字符串,我们来看看服务器端的servlet要怎么写

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

public class TestServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter returnHTML;
        response.setContentType("text/html"); //设置文档的返回类型
        returnHTML = response.getWriter();
        returnHTML.println("<html><head><title>");
        returnHTML.println("A simple GET servlet");
        returnHTML.println("</title></head><body>");
        returnHTML.println("<h2> This is your servlet answering </h2>");
        returnHTML.println("</body></html>");
        returnHTML.close();
    }
}

 这样我们就返回了一句“This is your servlet answering“来响应客户段的get请求。

 

另外别忘了,现在常用Tomcat servlet容器来运行servlet。至于Tomcat的配置方法,自己google去吧。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值