1):简介
首先来收Servlet不是一个词,它是由:Server(服务器)-applet(小程序)俩个词组成得。她是JavaEE得核心规范,表现省,其实就是一个“接口”,我们需要定义类,然后实现这个接口,从而可以让Tomcat调用,接收客户端得数据。
1):创建web模块
2):在IDEA得Tomcat中配置这个WEB模块得访问路径,以及热部署
(1和2 就不在这里多说了,还不了解的朋友请看上一篇)
3):在src上右键–>new class,然后实现Servlet接口:
在你的service方法中输入
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("到达MyServelt1......");
}
4):在web/WEB-INF/web.xml中配置这个Servlet
代码如下(示例):
5):制作一个网页,嵌入一个“表单”,将表单提交action的路径,指定到这个Servlet:(这里需要注意哈,这个html文件要创建在你的web目录下,而不要在WEB-INF 中)
6).启动Tomcat,首先浏览我们的form表单的页面:(Debug运行)
http://localhost:8080/day02-Tomcat/form.html
IDEA运行出网页后,输入你的热部署名,和你刚刚创建的html文件
6).运行成功后,你的控制台就会输出如下
1).一个WEB项目(模块)只有一个web.xml),这里文件里面可以配置多个Servlet。
2).可以配置多个“路径”,映射到一个Servlet上:(一个,配置多个)
3).注意:
1).在一个web.xml文件中,多个标签的标签的值不能相同;
2).在一个web.xml文件中,多个标签中的标签的值不能相同;
3).在一个WEB项目中,只有一个web.xml文件,但会有n多的Servlet,都需要配置到这个xml文件中。
1).什么时候创建Servlet:默认情况下,程序第一次访问此Servlet时,Tomcat会创建一个此Servlet对象,并且会调用此对象的:init()方法。
2).什么时候执行Servlet:创建对象后,每次访问此Servlet,Tomcat都会调用service()方法。
3).什么时候销毁Servlet:通常情况下,在正常停止Tomcat时,Tomcat会销毁每个Servelt,并且在销毁前自动调用destory()方法。
注意:Tomcat对于每个Servlet类,采用:单例,多线程的方式运行。 所以,不建议在Servlet中定义“成员属性”——无“状态”的Servlet。
1).在Servlet的方法中的init()方法中,有一个参数:ServletConfig,它是一个接口,表示:Servlet的配置信息。在tomcat创建我们的Servlet对象时,调用init()方法时,会传入一个ServletConfig的子类对象,这个对象中封装了这个Servlet的一些配置信息——配置在web.xml中的此servlet的标签内。
2):例如
3).在web.xml中,配置这个Servlet的标签中,可以设置“初始化参数”,可以将此Servlet中所需要使用的一些“其它资源的名字”配置到web.xml中,作为初始化参数,这样可以避免由于“资源名被更改”,导致更改我们的Servlet代码,起到的作用:解耦合——解开我们的Servlet和其它资源之间的耦合关系。
但是呢,大家有没有发现。我们每次创建出来的类,其实使用的比较多的方法呢,就是service()方法,其他方法接近于摆设。那我们能不能把他们都删除了。显然是不能的。因为我们的类只是一个普通类,并且实现了Servlet,需要重写其中的方法。那怎么办呢?我们就需要了解一下。Servlet的体系结构了。
1):GenericServlet(抽象类) 他是Servlet的子类,这里为了我们方便记忆,这就是一个儿子类。可以看到,他只需要重写一个Service方法。,比实现Servlet方便了很多吧。看起来也是比较简洁。而其他的方法,就看你需要。手动给他重写。
1).HttpServlet (抽象类----这个类呢就是对HTTP协议的一个封装和描述),为了方便记忆,他就是我们所说的孙子类。也是以后较为常用的一种方法。
打开以后
而我们的Servlet中的Service做了一个方法分发。在我们重写的doPost()方法和 doget()方法。
和上面的正常步骤一样,在web.html中进行配置,运行,即可。
1.8 Servlet3.0【练习】
如果像以前我们新建一个每次编写一个Servlet,都要在web.xml中配置两个标签。如果有几百、几千的Servlet,那么web.xml文件将会非常庞大、可读性差、可维护性差。
而从Servlet3.0开始,采用“注解”的方式,代替了web.xml中的配置。(如何设置3.0呢,就是简简单单的创建时将红色方框标注打上对勾即可。)
代码如下(示例):
@WebServlet("/Servlet4")
public class Servlet4 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Servlet4");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
Java Servlet 有用的网站:
Sun’s Site on Servlets - Sun 的官方网站上关于 Servlet 的相关资料。
JSP Engine - Tomcat - Apache Tomcat 是一个开源软件,实现了对 Java Servlet 和 JSP(JavaServer Pages)技术的支持。
MySQL Connector/J - MySQL Connector/J 是 MySQL 官方 JDBC 驱动程序。
The JavaTM Tutorials - 该 Java 教程是为那些想用 Java 编程语言创建应用程序的编程人员提供的实用指南。
JavaTM 2 SDK, Standard Edition - JavaTM 2 SDK, Standard Edition 的官网。
Free Java Download - 为您的桌面计算机下载 Java!
Sun Developer Network - Sun Microsystem 的官方网站,上面列出了所有的 API 文档,最新的 Java 技术、书籍和其他资源。