servlet是什么
servlet是使用java语言编写的服务器端小程序,和JSP一样,servlet也是动态的WEB。先有了servlet,但因为比较复杂难用。为了便于大家使用,sun公司学习了微软的ASP,开发出了JSP程序。
而且servlet是一个多线程的CGI程序。所以在性能上,比多进程的CGI程序要强大很多。
servlet怎么用
servlet属于javaee,而java和javac属于javase,所以要想使用servlet,比如在classpath中导入javaee中的开发包——servlet-api.jar包。或者拷贝到java/jdk/jre/lib/ext当中去。
使用servlet,必须要继承httpservlet抽象类而且必须复写doGet方法。
还有一个要求,就是每一个servlet都必须要在web.xml中配置映射。这里有个老生常谈的问题,就是每一次的配置,都要重新启动服务器来进行加载。
配置的格式如下,假如是一个已经编译好的hello.class文件。存在在路径的org.xxx.servletdemo.HelloServlet中的话。那么映射的配置如下。
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>org.xxx.servletdemo.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-patten>/helloServlet<rl-patten> //映射的路径
</servlet-mapping>
其实就类似于在web.xml中配置的index页面一样。配置完这个以后,在浏览器中直接输入根目录+映射路径就可以了。
servlet比较有意思的一点是,可以通过配置多个servlet-mapping,来为同一个servlet配置多个映射路径。尤其是使用*来表示目录下所有名称都可以访问。这一点在struts中将会得到应用。
servlet怎么输出页面
servlet的输出是一件很麻烦的事情,我们需要根据doGet方法中的resp对象中父类的方法来得到一个输出流的对象,如:
PrintWrite out=resp.getWrite();
然后通过这个对象中的方法来输出HTML代码,如:
out.printIn(“<html>”);
……
out.printIn(“</html>”);
out.close();
这种输出方式真的很头疼。现在servlet基本上不会作为输出页面使用,因为太不方便了。还不如用JSP。所以servlet基本上作为中间逻辑层使用。