JavaWeb中的Servlet

1.Servlet是什么

Servlet 是Java Web 三大组件之一,它属于动态资源,Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要 1.接收数据请求。2.处理请求。3.完成响应。 例如客户端发出登录请求,或者输入注册请求,这些请求都应该由Servlet来完成处理。当然Servlet类需要我们自己来编写。每个Servlet类都必须实现javax.servlet.Servlet接口

2.实现Serlvet的方式

1.实现javax.servlet.Servlet接口。2.继承javax.servlet.GenericServlet类。3.继承javax.servlet.http.HttpServlet类

一般来说我们都选择实现HttpServlet类来完成我们的Servlet.但学习Servlet还是要从javax.servlet.Servlet接口来学起。

2.1实现javax.servlet.Servlet接口

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;

/**
 * Created by ql on 2018/4/6.
 */


import java.io.IOException;

    public interface Servlet {
        /*
        Servlet生命周期方法
        它会在Servlet对象创建之后马上执行,并且只执行一次
        * */
        void init(ServletConfig var1) throws ServletException;
       //该方法用来获取Servlet的配置信息
        ServletConfig getServletConfig();
             /*
               它会被调用多次,每次处理请求都是在调用这个方法
                */
        void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
        //该方法用来获取Serlvet的信息
        String getServletInfo();
    /*
        它会在Servlet销毁之前调用,并且只调用一次。
     */
        void destroy();
    }

其中三个生命周期方法是由服务器调用的,我们是无法调用的。

2.2继承HttpServlet类

HttpServlet类使我们永达送次数最多的也是最简单的。由类名可知,与http有关。


方法中,值得我们关注的是doGet()和doPost()。还有两个service()方法.其中doGet()和doPost()方法是需要我们来重写的。

uml如下:


图中405的含义是说服务器不支持客户端(即浏览器)用此种方法访问,因为HttpServlet类的源码中doGet()和doPost()方法体里面就是这样写的,你在定义的xxxservlet中如果不重新重写这两个方法就会出现405的状态吗。在实现中,常以一下形式


FServlet即为我们自己定义的servlet类,doGet()和doPost()方法中即可写相应的业务逻辑。

扩展:对ServletContext的解释

服务器会为每个应用创建一个ServletContext 对象,一个应用只有一个ServletContext对象!我们可以再N多个Servlet中来获取这个唯一对象,使用它可以给多个Servlet传递数据。此对象在Tomcat(服务器)启动时就创建,在服务器关闭时就销毁。

ServletContext是JavaWeb四大域对象(PageContext,ServletRequest,HttpSession,ServletContext)之一,域对象所具有的特点是:1.能够存数据。2能够取数据

所有的域对象都有存取数据的功能,因为域对象内部有一个Map,用来存储数据,下面是ServletContext对象用来操作数据的方法:



Servlet类三大域:

1.request:在Servlet中直接用,因为实现的doPost()方法中有request这个参数

2.session:在Servlet中通过HttpSession session=request.getSession();得到

3.application:在Servlet中通过ServletContext application=this.getServletContext();得到。

JSP中四大域

1.page域:即9大内置对象中的pageContext,为PageContext的实例。注意:“page域”不同于9大内置对象中“page”。

2.request域:即9大内置对象中的request,为HttpServletRequest的实例。

3.session域:即9大内置对象中的session,为HttpSession的实例。

4.application:即9大内置对象中的ServletContext的实例。

如上几种方式便可实现我们自定义的Servlet类。但实际开发中我们只需要使用继承HttpServlet类完成我们的自定义xxxServlet

(另外学了SSM框架中的Spring MVC 框架后,就用不着我们再这样实现Servlet 了)

Servlet是Java编写的服务器端程序,用于处理客户端(通常是浏览器)发送的HTTP请求并生成响应。Servlet运行在支持Java Servlet规范的Web服务器,如Apache Tomcat。 Servlet通过继承javax.servlet.HttpServlet类来创建。在Servlet,可以重写一些方法来处理请求和生成响应,其最常用的方法包括: - doGet(HttpServletRequest request, HttpServletResponse response):处理HTTP GET请求。 - doPost(HttpServletRequest request, HttpServletResponse response):处理HTTP POST请求。 - doPut(HttpServletRequest request, HttpServletResponse response):处理HTTP PUT请求。 - doDelete(HttpServletRequest request, HttpServletResponse response):处理HTTP DELETE请求。 在这些方法,可以通过HttpServletRequest对象获取请求的参数、头信息等,并通过HttpServletResponse对象生成响应,如设置响应的内容、状态码、头信息等。 为了将Servlet与特定的URL映射起来,需要在web.xml文件配置Servlet的映射关系。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping> ``` 上述配置将名为MyServletServlet映射到"/myservlet"的URL上。当客户端请求该URL时,Web服务器将调用MyServlet的相应方法来处理请求。 除了处理请求和生成响应外,Servlet还可以在初始化和销毁时执行一些操作。可以通过重写init()和destroy()方法来实现这些操作。 希望这个简单的介绍对你有帮助!如果你有更多关于Servlet的问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值