JavaWeb(三)——Servlet基础

JavaWeb(一)——JavaWeb介绍、Tomcat服务器、HTTP协议
JavaWeb(二)——Maven的使用

Servlet简介

  • Servlet是sun公司提供的一门用于开发动态web资源的技术。

  • Servlet是运行在服务器上的一个java小程序,它可以接收客户端发送过来的请求,并响应数据给客户端,作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

    开发一个Servlet程序需要完成两个步骤:

    1. 编写一个类,实现Serlet接口
    2. 把开发好java类部署到web服务器中

Servlet的运行过程

Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:
  ①Web服务器根据请求的URL判断请求的是哪一个Servlet。找到对应的Servlert后,检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
  ②装载并创建该Servlet的一个实例对象。
  ③调用Servlet实例对象的init()方法。
  ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
  ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

Servlet接口实现类

  • Servlet接口SUN公司定义了两个默认实现类,分别为:GenericServlet、HttpServlet。

  • HttpServlet能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。如果想要获取HTTP请求的参数,就必须将它强转为HttpServlet。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。

  • HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。

第一个Servlet程序

第一步:创建我们的Servlet类,继承HttpServlet,重写doGet()和doPost()方法

public class HelloServlet extends HttpServlet {
   
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
        //设置响应正文的类型
        resp.setContentType("text/html");

        //获取响应的输出流
        PrintWriter out = resp.getWriter();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>HelloServlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("HelloServlet!");
        out.println("</body>");
        out.println("</html>");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
        //一般post方法的请求和响应都交给get方法处理
        doGet(req, resp);
    }
}

第二步:在web.xml中注册我们的Servlet程序,以及将我们的Servlet程序映射为一个对外可访问的路径

<!-- 注册Servlet -->
  <servlet>
    <!-- Servlet注册的名称 --><
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值