Servlet

1.是什么

 servlet是一个小应用程序

一个专门用来处理网络请求的接口;处理完了,返回一个响应。

继承自GenericServlet:可以处理所有协议

继承自HttpServlet:专门用来处理http协议

所有的实现类:

FacesServlet

GenericServlet:

HttpServlet(为GenericServlet的子类)

 

2.作用

处理从客户端发送的请求及服务端的响应。

3.开发步骤

Sun公司在其API中提供了一个servlet接口,用户若想开发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:

1.编写一个Java类,实现servlet接口。

2.把开发好的Java类部署到web服务器中。

 

a)  写一个类ServletDemo1,继承javax.servlet.GenericServlet类,实现service方法

b)       打开web.xml文件,配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <!--配置Servlet-->
    <!--servlet标签用来定义一个servlet对象-->
    <servlet>
        <servlet-name>myServlet1</servlet-name>
        <servlet-class>com.hcx.web.servlet.MyServlet1</servlet-class>
    </servlet>
    
    <!--servlet-mapping作用:定义一个映射关系,即访问的方式-->
    <servlet-mapping>
        <servlet-name>myServlet1</servlet-name>
        <url-pattern>/myServlet1</url-pattern>
    </servlet-mapping>

</web-app>

 

创建一个Servlet对象:

 

<servlet>
       <servlet-name>类名</servlet-name>  给Servlet起名
       <servlet-class>包名.类名</servlet-class>  创建一个Servlet对象(随便起)
</servlet>

 

定义如何在浏览器中访问此Servlet(服务器访问的):

 

<servlet-mapping>
       <servlet-name>类名</servlet-name>  必须和上面的name的名字一样
       <url-pattern>/servlet/类名</url-pattern> 规定访问上面那个类的方式
</servlet-mapping>

 

4.调用过程

Servlet可以处理从远程传来的请求,处理的方式:
请求发送到服务端,由tomcat接收该请求,调用引擎来分析该请求的url,找到资源地址,哪个工程,资源地址是哪个,拿到资源地址和工程里的web.xml文件里面的所有的url-pattern来对比,对比上了,就找到了这个servlet,接下来调用无参构造器创建servlet对象,创建好之后,默认调用带参的init()方法,再调用service方法处理请求,处理完请求,再向客户端发送数据,采用response响应对象,将数据发送给服务器(不是直接到浏览器),Tomcat再按照http的格式要求,把这些数据组合成一个键值对的方式,发送回客户端,客户端浏览器接收到响应正文的时候,由于响应正文都是字符串,会按照响应头里的各个信息,来依次解析响应正文,再显示在浏览器中。

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐