笔记总结自网易云课堂Servlet系列课程
什么是Servlet
Servlet == Server + Applet
Applet是采用Java编写的小应用程序,可以内嵌在HTML中,由支持applet的浏览器在客户端运行。
而Servlet指的是在服务器端运行的applet,Servlet类是一个独特的Java类,它本身不包含main方法,不能独立运行于JVM中,需要运行在特殊的容器中,由容器进行管理。编写Servlet程序时,需要遵循Servlet规范。Servlet与HTTP关系紧密,能够处理HTTP请求,并提供HTTP响应。用一句话来总结,即:
一个Servlet是一个Java类,并且提供基于请求-响应模式的Web服务
Servlet容器
Servlet依靠容器运行,而又与容器分离,相互独立发展。
Servlet容器提供Servlet的装载和管理工作,包括Servlet的创建运行和销毁。
而Servlet容器本质上是一个服务器程序,负责将请求分配给对应的Servlet,然后将Servlet运行的结果回传给服务器,服务器再将最后的结果返回给客户端。
Servlet的创建
创建一个Servlet类,需要这个类继承自HttpServlet类,我们可以在tomcat/lib文件目录下找到servlet.jar文件,只要将这个文件添加进IDE的lib中,就可以了,或者我们也可以直接安装Eclipse IDE for Java EE版本链接在此。
创建完成之后,重写doGet和service方法。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(req, resp);
PrintWriter pw = resp.getWriter();
pw.print("hello world");
pw.close();
}
之后import进所有需要的库文件,这样,我们的hello world就写好了,想要真实的看到语句的执行结果,需要有服务器的基础知识,即web.xml文件的配置路径和配置方法。web.xml配置一般放在项目目录下WEB-INF文件目录下。这里仅介绍Servlet的配置。
<servlet>
<servlet-name>Servlet的名字</servlet-name>
<servlet-class>Servlet类的路径以包的形式来写,比如com.java.helloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet的名字,与上相同</servlet-name>
<url-pattern>Servlet对外路径,如/hello</url-pattern>
</servlet-mapping>
接下来,只需要启动Tomcat,部署项目,进行访问就可以了。
如果我们进行跟踪的话,会发现,Servlet在进行访问时,会先调用service方法,再调用doGet方法。
在处理HTTP请求时,servlet容器会根据配置文件web.xml找到servlet地址,并将请求转发给service方法,传入两个参数,如果请求是GET方法,service就会将请求再次转发给doGet方法进行后续的处理工作。最后,我们会使用HttpServletResponse对象将数据返回。这就是一个完整的Servlet处理流程。
网友评论