JavaWeb学习笔记-05初识servlet

Posted Moon&&Dragon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb学习笔记-05初识servlet相关的知识,希望对你有一定的参考价值。

初识servlet

1、什么是servlet


是sun公司为了扩展web服务器开发,提供的一组组件

  • 扩展: 早期的web服务器只能处理静态资源,servlet可以处理动态页面(数据处理,交互);

  • 组件: 软件模块的功能;

  • 容器: 组件需要运行到什么样的环境里面;

书写servlet

  • 写一个类继承HttpServlet----基于Http协议

    public class FirstServlet extends HttpServlet {}
    
  • 重写里面处理请求的方法-get/post/delete/put…—>service(可以处理一切请求)

    public class FirstServlet  extends HttpServlet {
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
           // 这里就可以写业务代码了
            super.service(req, resp);
        }
    }
    

2、什么是XML


  • 可扩展的标记语言,类似html
  • 用来 存储和传输数据--------db.properties
  • db.properties比较扁平化,不够立体,在处理一些比较复炸的数据的时候,有很多不足

如果使用properties编写以下配置文件,可以写,但是非常麻烦:

湖北省
	武汉市
				武昌
				汉口
		       	汉阳

	荆州市
				公安
				监利
				松滋

但是使用xml来书写配置文件,就可以使用标签对的形式来表达:

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

<省份>
  <城市>
    <地区>
      <详细>
      
      </详细>
    </地区>
  </城市>  
</省份>

XML的特点:

  • 对于格式 要求比较严格,需要严格遵守约束

  • 也有 文档声明

  • 有专门的属性,注释,元素

3、注册servlet


为什么需要注册?

当我们写了一个servlet类以后,服务器并不知道,也不知道如何访问,注册其实就是 告诉浏览器,怎么访问我写的servlet类,注册的方式有俩种,一种是 通过配置文件,另一种是 通过注解 来注册。

通过配置文件进行注册

  • 写完一个servlet类以后,找到项目路径src/main/webapp/WEB-INF/web.xml,打开配置文件

  • 这里的配置文件的头信息是默认的,我们**使用我们tomcat的配置文件的头信息,可以在tomcat目录下的示例文件中的配置文件中拷贝,就是以下头信息(覆盖项目web配置文件**):

    <?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_4_0.xsd"
             version="4.0">
    </web-app>
    
  • 在web-app标签中注册

    <!-- 声明一个servlet -->
        <servlet>
            <!-- 声明servlet名称(别名) -->
            <servlet-name>firstServlet</servlet-name>
            <!-- 声明servlet的包(类地址) -->
            <servlet-class>com.moon.controller.FirstServlet</servlet-class>
        </servlet>
    
        <!-- 声名映射,定义请求地址 -->
        <servlet-mapping>
            <!-- 声明好的servlet名称(别名) -->
            <servlet-name>firstServlet</servlet-name>
            <!-- 请求地址 -->
            <url-pattern>/first</url-pattern>
        </servlet-mapping>
    
  • 完整的配置文件:

    <?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_4_0.xsd"
             version="4.0">
    
        <!-- 声明一个servlet -->
        <servlet>
            <!-- 声明servlet名称(别名) -->
            <servlet-name>firstServlet</servlet-name>
            <!-- 声明servlet的包(类地址) -->
            <servlet-class>com.moon.controller.FirstServlet</servlet-class>
        </servlet>
    
        <!-- 声名映射,定义请求地址 -->
        <servlet-mapping>
            <!-- 声明好的servlet名称(别名) -->
            <servlet-name>firstServlet</servlet-name>
            <!-- 请求地址 -->
            <url-pattern>/first</url-pattern>
        </servlet-mapping>
    
    </web-app>
    
  • 如果==有多个servlet,就为每一个servlet配置一对servlet和mapping==

通过注解进行注册

  • 在servlet类的类前添加注解@WebServlet("请求的地址")

    @WebServlet("/firstServlet")  // 注解--映射服务器请求地址
    
  • 完整的注解注册:

    package com.moon.controller;
    
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    /**
     * @author 晓龙
     * @version 1.8.271
     * @ProtectName JavaWeb
     * @ClassName FirstServlet
     * @Description TODO
     * @createTime 2021年04月10日 12:12:00
     */
    
    @WebServlet("/firstServlet")  // 注解--映射服务器请求地址
    public class FirstServlet extends HttpServlet {
       
    }
    
    

4、设置默认访问页面


我们的项目启动以后,会默认设置 index.jsp为默认页面,如果我们想要让服务器默认访问知道页面,只需要在 web.xml配置文件中配置以下信息

<!-- 在welcome-file标签中填写默认想要访问的页面  -->
<welcome-file-list>
     <welcome-file>login.html</welcome-file> 
</welcome-file-list>

5、常见的Http错误代码


Http状态码:

在这里插入图片描述

常见状态码:

  • 404: 请求的资源找不到/不存在 – 服务器没有正常启动,或者路径错误
  • 405: 请求方法错误
  • 200: 表示一次请求响应完美结束
  • 500: 服务器不可预期错误----一般都是服务器代码写错了
  • 503: 表示服务器不能处理客户端请求,但是一段时间后可能会恢复
  • 403: 服务器收到了你的请求,但是不想理你

以上是关于JavaWeb学习笔记-05初识servlet的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb学习笔记之Servlet

JavaWeb Servlet 学习笔记总结( 一 )

初识JSP

JavaWeb学习笔记-07servlet生命周期

java学习笔记:JavaWeb应用

JavaWeb学习笔记-10servlet线程安全