夜光序言:
不管是人还是妖怪,只要心灵想通就没有区别,孤单一人会感到寂寞,最初的一步会害怕,都是如此~~
正文:积水成河~~厚积薄发
Servlet概述
生命周期方法:
- void init(ServletConfig):出生之后(1次);
- void service(ServletRequest request, ServletResponse response):每次处理请求时都会被调用;
- void destroy():临死之前(1次);
特性:
- 单例,一个类只有一个对象;当然可能存在多个Servlet类~
- 线程不案例的,所以它的效率是高的~
Servlet类由我们来写,但对象由服务器来创建,并且由服务器来调用相应的方法。
1 什么是Servlet
Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:
- 接收请求数据;
- 处理请求;
- 完成响应。
例如客户端发出登录请求,或者输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们自己来编写,每个Servlet必须实现javax.servlet.Servlet接口。
2 实现Servlet的方式(由我们自己来写~~)
实现Servlet有三种方式:
- 实现javax.servlet.Servlet接口;
- 继承javax.servlet.GenericServlet类;
- 继承javax.servlet.http.HttpServlet类;
通常我们会去继承HttpServlet类来完成我们的Servlet,但学习Servlet还要从javax.servlet.Servlet接口开始学习。
Servlet.java
public interface Servlet {
public void init(ServletConfig config) throws ServletException;
public ServletConfig getServletConfig();
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;
public String getServletInfo();
public void destroy();
}
3 创建helloservlet应用
我们开始第一个Servlet应用吧!首先在webapps目录下创建helloservlet目录,它就是我们的应用目录了,然后在helloservlet目录中创建准备JavaWeb应用所需内容:
- 创建/helloservlet/WEB-INF目录;
- 创建/helloservlet/WEB-INF/classes目录;
- 创建/helloservlet/WEB-INF/lib目录;
- 创建/helloservlet/WEB-INF/web.xml文件;
接下来我们开始准备完成Servlet,完成Servlet需要分为两步:
- 编写Servlet类;
- 在web.xml文件中配置Servlet;
HelloServlet.java
public class HelloServlet implements Servlet {
public void init(ServletConfig config) throws ServletException {}
public ServletConfig getServletConfig() {return null;}
public void destroy() {}
public String getServletInfo() {return null;}
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
System.out.println("Genius:hello servlet~~");
}
}
我们暂时忽略Servlet中其他四个方法,只关心service()方法,因为它是用来处理请求的方法。我们在该方法内给出一条输出语句!
web.xml(下面内容需要背下来)
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>cn.Genius.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
在web.xml中配置Servlet的目的其实只有一个,就是把访问路径与一个Servlet绑定到一起,上面配置是把访问路径:“/helloworld”与“cn.itcast.servlet.HelloServlet”绑定到一起。
- <servlet>:指定HelloServlet这个Servlet的名称为hello;
- <servlet-mapping>:指定/helloworld访问路径所以访问的Servlet名为hello。
<servlet>和<servlet-mapping>通过<servlet-name>这个元素关联在一起了~~
接下来,我们编译HelloServlet,注意,编译HelloServlet时需要导入servlet-api.jar,因为Servlet.class等类都在servlet-api.jar中。
javac -classpath F:/tomcat6/lib/servlet-api.jar -d . HelloServlet.java
然后把HelloServlet.class放到/helloworld/WEB-INF/classes/目录下,然后启动Tomcat,在浏览器中访问:http://localhost:8080/helloservlet/helloworld即可在控制台上看到输出~~~
/helloservlet/WEB-INF/classes/cn/itcast/servlet/HelloServlet.class;