WEB应用程序开发(二)Servlet概述

什么是Servlet ?

Servlet是Server Applet的简称,意思为用Java编写的服务器端的程序. 它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用Servlet方法,Servlet和客户通信采用“请求/响应”的模式。

Servlet的作用

1.接收用户发送的请求
2.调用其他的java程序来处理请求
3.根据处理结果,服务器将响应返回给客户

Servlet创建和使用

● 1.创建一个类继承javax.servlet.http包下的HttpServlet
● 2.在web.xml文件中配置Servlet
● 3.运行Servlet程序

通过浏览器访问http:localhost:8080/ helloword/配置的url-pattern
由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成。

创建发布web项目

第一步:继承HttpServlet方法

建立DemoServlet项目,对HttpServlet对象进行继承

在这里插入图片描述

对于上图中错误是因为缺少相对应的servlet.jar包我们将jar包放入相对应web包中,我讲jar包放入WEB-INF中的自建lib包中,再将jar包添加为库,刷新后jar包中的HttpServlet类就可以使用了

在这里插入图片描述

第二步:重写HttpServlet方法

在这里我们将重写HttpServlet中的三个方法以便后续了解

在这里插入图片描述

第三步:文件配置

为了能使我们预定好的项目可以在服务器上正常运行,我们需要在web中的web.xml文件中进行文件地址配置

在这里插入图片描述

在这里进行一点知识补充

xml 属于标记语言 html是标记内容指导内容如何显示 xml可扩展标记语言 用来保存数据 保存配置文件数据 web.xml 是web程序的配置文件,保存各种配置信息,在服务器启动时,由服务器读取

最后我们利用我们事先写好的超简易前端界面进行测试

在这里插入图片描述

最后测试结果如下

在这里插入图片描述

Servlet的生命周期

在这里插入图片描述

Servlet思绪流程图

在这里插入图片描述

部分关键源码讲解

DemoServlet源码

public class DemoServlet  extends HttpServlet {
    /*
     构造方法  初始化对象
     只被执行了一次,只创建了一个对象, 此对象由服务器创建的,
     默认是在客户端第一次访问该servlet时创建 servlet对象
     当 <load-on-startup>0</load-on-startup> 值>=0 时,会在服务器启动时创建
     */
    public DemoServlet(){
        System.out.println("DemoServlet");
    }

    /*
      初始化,当servlet对象创建后,服务器会自动调用init(),
      完成一些初始化操作.
      如果我们没有需要初始化的操作,也可以不重写init(),但是服务器依然会调用,会调用父类的init()
     */
    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("init");
        System.out.println(config.getInitParameter("name"));//获得配置文件中的信息
        System.out.println( config.getServletName());
    }
    /*
       为请求提供服务,每一次http请求,都会调用service(请求,响应)
     */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("service");
    }

    /*
     当servlet对象销毁时,服务器会调用destroy(),
     让我完成一些最终的操作(例如保存日志....)
     如果我们没有一些最终的操作,也可以不重写destroy(),但是服务器依然会调用父类中destroy()
     */
    /*@Override
    public void destroy() {
        System.out.println("destroy");
    }*/


}

Web.xml源码


<?xml version="1.0" encoding="UTF-8"?>

-<web-app version="4.0" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee">

<!--xml 属于标记语言 html是标记内容指导内容如何显示 xml可扩展标记语言 用来保存数据 保存配置文件数据 web.xml 是web程序的配置文件,保存各种配置信息,在服务器启动时,由服务器读取 -->


<!--配置servlet 把servlet配置进来,服务器就知道有这么一个类 -->



-<servlet>

<servlet-name>demo</servlet-name>

<!--为servlet对象定义一个名称-->


<!--配置类的地址 ,让服务器使用反射机制创建对象 -->


<servlet-class>com.ffyc.firstweb.servlet.DemoServlet</servlet-class>

<!--配置的参数-->


<!--给所创建的Servlet对象配置一个应用名-->
-<init-param>

<param-name>name</param-name>

<param-value>jim</param-value>

</init-param>

<!--配置servlet何时被加载创建 默认是第一次访问, 值>=0服务器启动就可以创建-->


<load-on-startup>0</load-on-startup>

</servlet>

<!--为servlet配置一个供前端访问的映射地址-->



-<servlet-mapping>

<servlet-name>demo</servlet-name>

<url-pattern>/demourl</url-pattern>

<!--地址以/开头 /表示项目的根目录 http://localhost:8888/firstweb-->


</servlet-mapping>

</web-app>
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值