服务器学习笔记之servlet

初衷

想学习下服务器这边的知识,制定了一条学习路线:java8--->servlet--->springMvc--->springBoot--->springCloud。在此当做学习笔记。

本文开发环境是IDEA正式版。

概念

servlet本质是一个java接口,这个接口定义了处理网络请求的一组规范或需求描述。

servlet容器将请求分发给servlet,由特定的servlet处理请求。

常见的servlet容器如Tomact。

主要方法

  • init() :初始化servlet
  • service() :处理客户端请求
  • destroy() :终止servlet(servlet由JVM进行垃圾回收)

servlet实例

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {

    private String message;

    public void init() throws ServletException {
        message="Hello World";
    }

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter writer=resp.getWriter();
        writer.println("<h2 style='color:red'>"+message+"</h2>");
    }

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }

    @Override
    public void destroy() {
        super.destroy();
    }
}

说明:

  • 我们的api中已经有两个实现好servlet接口的类,分别是HttpServlet和GenericServlet,通常自己只需要继承HttpServlet类即可。
  • @WebServlet注解用来标注URL和servlet的映射。(还有一种配置方法是在web.xml中配置servlet,请看下面说明)
  • PrinterWriter是字符类型的打印输出流,继承于Writer。

在web.xml中配置servlet

<!--配置servlet-->
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.gree.servlet.MyServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
  </servlet-mapping>

说明:

  • servlet-name:要注册的servlet名称。
  • servlet-class:指向要注册的servlet类的地址,包名加类名。
  • url-pattern:配置注册的servlet组件的访问路径。
  • 注意上下两个servlet-name要一致。

以上是一个servlet最简单的例子,但仅仅是关于servlet。

贴上两个优秀的手把手建web项目指导帖,大家可以参考下,人家写的很详细我就不重复了。有不懂的问题欢迎私信,一起学习啊~

idea搭建web工程帖:https://www.cnblogs.com/Sinte-Beuve/p/5730553.html

web工程详细配置帖:https://www.cnblogs.com/deng-cc/p/6416332.html

猜你喜欢

转载自www.cnblogs.com/hongdiandian/p/9146348.html