欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java Web 学习笔记(2)

程序员文章站 2024-02-16 09:34:58
...

码上生花,ECharts 作品展示赛正式启动!>>> Java Web 学习笔记(2)

Servlet

#什么是Servlet

Servlet是JavaWeb开发的基石,Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。简单来说它是与平台无关的服务器组件,负责与客户端进行通信。

Servlet的功能:

1、创建并返回基于客户请求的动态HTML页面。

2、与数据库进行通信。

#如何使用Servlet

Servlet本身是一组接口,自定义一个类,并且实现Servlet接口,这个类就具备了接收客户端请求以及做出相应的功能。

package com.janeroad.servlet;

import javax.servlet.*;
import java.io.IOException;


public class MyServlet implements Servlet
{
   
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
     
     
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    System.out.println("I am Servlet,I have received the request from the client,the parameter is:"+id);
    servletResponse.setContentType("text/html;charset=UTF-8");
    servletResponse.getWriter().write("Hello,Client");

        
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
      
    }
}

浏览器不能直接访问Servlet,只能通过映射的方式来间接访问Servlet,映射需要开发者手动配置,有两种配置方式。

1.基于XML文件的配置方式


    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.janeroad.servlet.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/myservlet</url-pattern>
    </servlet-mapping>

2.基于注解的方式

@WebServlet("/mysetvlet")
public class MyServlet implements Servlet{

}

以上两种配置方式结果完全一致,将myservlet与MyServlet进行映射,即在浏览器地址栏中直接访问myservlet就可以映射到MyServlet。

 

Servlet的生命周期

1.当浏览器访问Servlet的时候,Tomcat会查询当前Servlet的实例化对象是否存在,如果不存在,则通过反射机制动态创建对象,如果存在,直接执行第3步。

2.调用init()方法完成初始化操作。

3.调用service()方法完成业务逻辑操作。

4.关闭Tomcat时,会调用destory()方法释放当前对象所占用资源。

Java Web 学习笔记(2)

Servlet的生命周期方法:无参构造函数、init、service、destory

1.无参构造函数只调用一次,创建对象。

2.init()方法只调用一次,用于初始化对象。

3.service()方法调用N次,用于执行业务逻辑。

4.destory只调用一次,用于卸载对象。

 

ServletConfig

该接口用来描述Servlet的基本信息

接下来简单概括几个常见方法

getServletName()返回Servlet的名称,全类名(带着包名的类名)

getInitParameter(string key)获取init参数的值(web.xml)

getInitParameterNames()返回所有的initParamter的name值,一般用作遍历初始化参数

getServletContext()返回ServletContext对象,它是Servlet的上下文,整个Servlet的管理者

ServletConfig和ServletContext的区别:

ServletConfig作用于某个Servlet实例,每个Servlet都有对应的ServletConfig,ServletContext作用于整个Web应用,一个Web应用对应一个ServletContext,多个Servlet实例对应一个ServletContext。

一个是局部对象,一个是全局对象。