栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Servlet学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet学习笔记

前言:我们首先要创建一个web模块的动态项目工程 1.手动创建一个Servlet程序

HelloServlet类:

package com.atguigu.servlet;

import javax.servlet.*;
import java.io.IOException;
public class HelloServlet 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("Hello Servlet被访问了!");
    }

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

    @Override
    public void destroy() {

    }
}

web.xml:



    
        username
        context
    
    
        password
        root
    
    
    
        
        HelloServlet
        
        com.atguigu.servlet.HelloServlet
    
    
    
        
        HelloServlet
        
        /hello
    
 
2.url地址到Servlet程序的访问 

客户端的浏览器会先通过ip地址定位服务器,

我们使用的Tomcat所分配的端口号是8080

记住一个服务器可以有多个端口号,但是一个端口号只能对应一个服务器。之后再定位是哪一个工程路径,并且表示清楚是哪一个资源路径,也就是具体到哪一个文件上。

之后我们就要解析web.xml文件了,从类的别名解析到包下的Java类

最后找到对应的Java类

如下所示:

  

 

 

 3.Servlet 的生命周期

前两个之只会在第一次访问的时候,进行调用一次。

第三个每次都会调用

第四个方法只会在终止运行时调用

 4.POST 和 GET请求分发处理
package com.atguigu.servlet;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class HelloServlet implements Servlet{
    public HelloServlet() {
        System.out.println("1.构造器方法");
    }

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("2. init初始化方法");
    }

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

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("3---Hello Servlet被访问了!");
        HttpServletRequest httpServletRequest=(HttpServletRequest)servletRequest;
        //我们可以通过这个方法去获取我们的访问类型是post还是get
        String method=httpServletRequest.getMethod();
        if ("GET".equals(method)) {
            doGET();
        } else if ("POST".equals(method)) {
            doPOST();
        }
    }
    public void doGET() {
        System.out.println("get请求");
        System.out.println("get请求");
    }
    public void doPOST() {
        System.out.println("post请求");
        System.out.println("post请求");
    }
    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("destroy销毁方法");
    }
5.通过继承 HttpServlet 实现 Servlet 程序

 6.使用 IDEA 创建 Servlet 程序

创建的时候记得把这个默认的勾号去掉,那么就会是使用xml了。

如果不去掉,那么就会是使用注解了。

 

创建之后会自动会生成Java重写类

 最后web.xml中进行部署即可

 在Html文件中更换地址重新进行访问

 7.Servlet 类的继承体系 8.ServletConfig 类 ServletConfig 类从类名上来看,就知道是 Servlet 程序的配置信息类。 Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建,我们负责使用。 Servlet 程序默认是第一次访问的时候创建, ServletConfig 是每个 Servlet 程序创建时,就创建一个对应的 ServletConfig 对象。  

 

9.ServletConfig 类的三大作用 1 、可以获取 Servlet 程序的别名 servlet-name 的值 2 、获取初始化参数 init-param 3 、获取 ServletContext 对象

 

 10.为什么必须super初始化config?

 

 

 11.什么是 ServletContext? 1 、 ServletContext 是一个接口,它表示 Servlet 上下文对象 2 、一个 web 工程,只有一个 ServletContext 对象实例。

 

 无论是哪一个地址进行访问,只会有一个ServletContext 对象实例。

3 、 ServletContext 对象是一个域对象。 4 、 ServletContext 是在 web 工程部署启动的时候创建。在 web 工程停止的时候销毁。 12.什么是域对象?

 域对象,是可以像 Map 一样存取数据的对象,叫域对象。

这里的域指的是存取数据的操作范围,整个 web 工程。 13.ServletContext 类的四个作用 1 、获取 web.xml 中配置的上下文参数 context-param 2 、获取当前的工程路径,格式 : / 工程路径 3 、获取工程部署后在服务器硬盘上的绝对路径

 4、像 Map 一样存取数据

web.xml文件中代码:



    
        username
        context
    
    
        password
        root
    
    
    
        
        HelloServlet
        
        com.atguigu.servlet.HelloServlet
        
        
            
            username
            
            root
        
        
            
            url
            jdbc:mysql://localhost:3306/test
        
    
    
    
        
        HelloServlet
        
        /hello
    
    
    
        HelloServlet2
        com.atguigu.servlet.HelloServlet2
        
            namespace
            leomessi
        
        
            url
            lionel
        
    
    
    HelloServlet2
    /hello2


    HelloServlet3
    com.atguigu.servlet.HelloServlet3

    
        ContextServlet
        com.atguigu.servlet.ContextServlet
    
    
        ContextServlet1
        com.atguigu.servlet.ContextServlet1
    
    
        ContextServlet2
        com.atguigu.servlet.ContextServlet2
    
    
        ContextServlet2
        /helloContext3
    
    
        ContextServlet1
        /helloContext2
    
    
        ContextServlet
        /helloContext
    
    
      HelloServlet3
      /hello3
  
14.一个网页的全景查看方式

 Console就是看控制台输出运行结果的

 15.HTTP协议【理解记忆一下】 什么是协议 ? 协议是指双方,或多方,相互约定好,大家都需要遵守的规则,叫协议。 所谓 HTTP 协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则叫 HTTP 协议。 HTTP 协议中的数据又叫报文 16.请求的 HTTP 协议格式

客户端给服务端发送数据叫做请求

 

 GET请求

 POST请求

17.常见的POST和GET请求

 

 18.响应的HTTP格式

 服务端给客户端回传数据叫做响应

 19.常用的响应码说明 200 表示请求成功 302 表示请求重定向(明天讲) 404 表示请求服务器已经收到了,但是你要的数据不存在(请求地址错误) 500 表示服务器已经收到请求,但是服务器内部错误(代码错误) 例子:

 

 进入一个网页,然后F12

 20.HttpServletRequest 类的常用方法

 

 

 

 21.doGet和doPost中文乱码的解决:

 

22.请求转发 什么是请求的转发 ? 请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发

 

 

23.base标签的作用  

 

 24.绝对路径和相对路径

 

 

 

25.web 中 / 斜杠的不同意义 在 web 中 / 斜杠 是一种绝对路径。 / 斜杠 如果被浏览器解析,得到的地址是: http://ip:port/ < a href ="/" > 斜杠 / 斜杠 如果被服务器解析,得到的地址是: http://ip:port/ 工程路径 1 、 < url-pattern >/servlet1 2 、 servletContext.getRealPath(“/”); 3 、 request.getRequestDispatcher(“/”); 特殊情况: response.sendRediect(“/”); 把斜杠发送给浏览器解析。得到 http://ip:port/  26.请求重定向

 

 27.解决服务器响应客户端时的乱码问题 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754848.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号