随笔-159  评论-114  文章-7  trackbacks-0

javax.servlet
Interface Servlet

是规范的接口,为了深入了解Servlet原理,要实际开发一个实现该接口的类,来作为第一个Servlet。

public void init(ServletConfig config)
          throws ServletException

这个方法,是由容器在实例化一个Servlet实例后,确切会调用该方法一次。通过判断是否抛出异常来确认Servlet是否被正确初始化。

public void service(ServletRequest req,
                    ServletResponse res)
             throws ServletException,
                    java.io.IOException

这个方法,是我们实现业务逻辑的方法,req和res就是由Web服务器对于请求和相应的有效封装。

没有什么神秘的,java网络编程中,ServerSocket的accept方法返回之后,会获得相应的一个Socket对象,通过该对象可以进而获得对应客户端的输入流和输出流。在对其进行封装就进而到Request和Response对象。

传入service方法,req可以获得请求的头部信息,res.getWriter,获得一个输出,进行输出信息,作为真正响应。

public void destroy()

 This method is only called once all threads within the servlet's service method have exited or after a timeout period has passed.

只有在service方法运行完,或者一个timeout后,会被调用。

After the servlet container calls this method, it will not call the service method again on this servlet.

一旦调用它,就不会再提供服务。

public ServletConfig getServletConfig()

返回传入init方法的那个ServletConfig,也就是服务器的ServletConfig。这个方法主要为了其他实例来使用ServletConfig实例。

public java.lang.String getServletInfo()

好比普通的toString()方法,返回注册信息。


编译注意事项:

要在环境变量的classpath中将servlet-api.jar的路径加上,这样编译才能通过。

所以最好先准备好tomcat服务器,以便利用它内置的jar文件。

D:\jakarta-tomcat-5.0.19\common\lib\servlet-api.jar

======================================

编译好后,是一个带包结构的.class文件目录层次。

如何部署呢?

很简单,在D:\jakarta-tomcat-5.0.19\webapps中建立一个自己的应用文件夹,例如:imshark

这时就可以将静态网页放入该文件夹了,然后要按照java web 应用的规范,建立一个WEB-INF的文件夹,然后里面放置一个标准的web.xml文件,就可以访问了。

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version
="2.4">
    

</web-app>


然后部署servlet,在WEB-INF文件夹中,建立一个classes的目录,然后,将带目录结构的.class文件放入该文件夹,然后修改web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version
="2.4">
    
     
<servlet>
        
<servlet-name>TimeServlet</servlet-name>
        
<servlet-class>imshark.servlet.basic.TimeServlet</servlet-class>
    
</servlet>
    
     
<servlet-mapping>
        
<servlet-name>TimeServlet</servlet-name>
        
<url-pattern>/getTime.jsp</url-pattern>
    
</servlet-mapping>

</web-app>

1.gif

http://localhost:8080/imshark/getTime.jsp

所以可看出getTime.jsp是一个虚拟的路径地址,并不实际存在,完全有web.xml构造的。

以上就是最基本的Servlet的知识点。



posted on 2006-02-09 00:01 北国狼人的BloG 阅读(1723) 评论(0)  编辑  收藏 所属分类: 达内学习总结

只有注册用户登录后才能发表评论。


网站导航: