一、servlet简介
Servlet是sun公司提供的一个专门用于开发动态web资源的技术;
sun公司在api中就提供了servlet接口。如果程序员想要开发一个动态web资源(也就是开发一个java程序向浏览器输出数据),只需要完成以下两个步骤:
* 编写一个java类,实现servlet接口;
* 把开发好的这个java类部署到web服务器中。
和所有的入门demo一样,我们使用servlet向浏览器输出hello servlet。
那么api文档的查看是第一问题,我们平时查看的jdk文档都是j2se(java的standard edition),但是在web开发的开始我们已经知道了,javaweb是j2ee(java的enterprise edition)的内容,j2ee里涉及到了十三种技术,servlet就是这十三之一,显然他不是属于基本的j2se范围内,我们在普通jdk里是查找不到的。
查看servlet文档不推荐看整个j2ee的jdk,因为里面包含了十三种技术,直接下载servlet的api文档来看。
那么在servlet的文档里就可以看到核心的方法service,以及对应已经实现的实现类,在开始的时候我们还是手写一个servlet而不用eclipse来开发,因为eclipse会自动提示很多细节,为了掌握知识我们先来手写一个servlet。
二、在tomcat中创建web应用
在这个目录里
创建一个web应用为这样的目录:
然后写进去一个java文件:
编辑内容来手写Servlet:
package servletDemo.helloDemo;
import java.io.*;
import javax.servlet.*;
public class FirstServlet extends GenericServlet{
public abstract void service(ServletRequest req,ServletResponse res)throws ServletException,java.io.IOException{
OutputStream out=res.getOutputStream();
out.write("hello servlet!!".getBytes());
}
}
选择继承已经有的实现类GenericServlet来进行实现,核心方法service创建请求和响应,写出数据。
然后我们来编译这个代码。在eclipse里编译过web应用,因此可以预料,这里面肯定会缺jar包,因为默认使用命令来编译这个文件使用的依赖环境是j2se,如果是在eclipse里,我们需要做的肯定是把对应的Servlet等等包放进项目里,然后给classpath增加这些jar包让jvm编译的时候能找到他们的位置。
手写代码的时候应该怎么做呢?
可以想象,Servlet这技术在tomcat这个web服务器里肯定是有的,因为我们之前说了tomcat本身就是一个用java写好的web服务器,里面就有依赖的jar包,事实证明确实是:
就有Servlet。
我们把这个jar包加入到classpath里就行了:
在命令行输入设置classpath,然后加入对应的api:
然后再:
编译通过之后,我们再打开java文件在的地方,会发现编译出来多了设定的包的文件夹:
并且在包里已经有了class文件。
下一步,我们已经说过了,要配置对外的访问路径,不然不能通过浏览器对内容进行访问,在前面我们知道tomcat的目录内容,所有的配置信息都在server.xml文件里进行配置,我们只需要重新仿照一份文档在这个项目的目录里,进行设置就可以通过浏览器进行访问了。
(因为我的tomcat之前集成到了eclipse里,端口占用,环境变量等等问题需要重新配置,所以我不用这种方法进行尝试了。)
总结上述步骤就是: