• 初识Java Servlet


    Java Servlet是什么?

    Servlet的本质就是一个Java接口,之所以能生成动态的Web内容,是因为对客户的一个HTTP请求,Servlet通过接口这个规范重写了其中的方法,然后Web服务器通过这些反馈给客户端。所以Servlet并不直接和客户端打交道,我们需要一个Web服务器如Tomcat,是Web服务器完成与客户的监听、消息的传输等工作。Servlet的运行需要在web.xml中进行描述和注册。如配置Servlet的类,初始化的参数,不同的URL映射到对应的Servlet,还有过滤等功能。所以Servlet类似其他CGI技术。

    Servlet的方法

    Servlet由javax.servlet和javax.servlet.http两个包构成(在Tomcat安装目录的lib有servlet-api.jar)。servlet包中定义了Servlet类必须实现和拓展的通用接口和类,http包定义了采用HTTP通信的HttpServlet类。

    Servlet接口有5个方法:

    init(ServletConfig config)初始化一个Servlet类实例,在一个生命周期中此方法只被调用一次。

    service(ServletRequest req,ServletResponse res),用于处理用户请求,可以执行多次,每个请求都会执行一次service()方法。所以重写这个方法需要保证线程安全性。因为一个Servlet实例可以同时服务多个客户请求。

    destroy()终止Servlet服务,一个生命周期执行一次。

    getServletConfig()获取ServletConfig对象,包含初始化参数和ServletContext对象。

    getServletInfo()返回一个String对象,包含Servlet相关信息。

    Servlet程序的编译运行

    可以直接将编译好的文件放入tomcat安装目录下的webapps,可以先用ROOT文件夹。然后重写web.xml文件对Servlet进行配置。

    web.xml文件的主要标识:

    <servlet-name>是名字,可以随便起,要和<servlet-mapping>里面的名字一致。

    <servlet-class>是要调用的Class文件,默认是在/classes文件夹下,一定要与对应的Class文件名一致。

    <init-param>Servlet初始化的参数,有<param-name>和<param-value>这两个对应了一个key-value参数。通过更改这里的参数就不需要修改Servlet的代码。

    <load_on_startup>用于指定加载Servlet的优先权,数字小的先加载。

    <servlet-mapping>是对Servlet的访问路径的映射,<servlet-name>与前面的名字一致,通过<url-pattern>的URL路径来标识地址栏输入的路径。为什么需要有servlet-mapping呢?因为通过它可以使用通配符来调用对应的servlet-class。

    放好编译文件,写好XML配置文件,就可以打开Tomcat服务器,然后通过浏览器调用Servlet程序了。浏览器地址后缀是<url-pattern>的内容。

    当然更方便的是使用Eclipse等IDE集成Tomcat来实现这些功能。

    下面是一份参考的写法:

     1 <servlet>
     2 
     3 <servlet-name>HelloWorld</servlet-name>
     4 <servlet-class>HelloWorld</servlet-class>
     5 <init-param>
     6     <param-name>user</param-name>
     7     <param-value>alex</param-value>
     8 </init-param>
     9 <init-param>
    10     <param-name>address</param-name>
    11     <param-value>http://www.baidu.com</param-value>
    12 </init-param>
    13 <load-on-startup>1</load-on-startup>
    14 
    15 </servlet>
    16 
    17 <servlet-mapping>
    18     <servlet-name>HelloWorld</servlet-name>
    19     <url-pattern>/servlet/*</url-pattern>
    20 </servlet-mapping>
  • 相关阅读:
    RESTful API 设计指南
    浅析JS中的模块规范(CommonJS,AMD,CMD)
    Gitbucket—快速建立自己的Github
    单点登录详解
    Java常用类--处理日期
    Java常用类--数字常用类
    java常用类--字符串
    java常用类--系统相关
    java常用类--与用户互动
    设置PATH和CLASSPATH
  • 原文地址:https://www.cnblogs.com/-Chamgin/p/9195419.html
Copyright © 2020-2023  润新知