JavaWeb初识 Servlet家族

简介: JavaWeb开发环境需要javax.servlet 插件 Servlet 一个普普通通的接口 网络处理规范接口 网络处理接待处 Servlet JavaWeb的核心技术 网页请求发送 服务器 Servlet(逻辑,触发都在这)输出到 服务器将内容发送到客户端 .

JavaWeb开发环境需要javax.servlet 插件

Servlet 一个普普通通的接口 网络处理规范接口 网络处理接待处

Servlet JavaWeb的核心技术

网页请求发送 服务器 Servlet(逻辑,触发都在这)输出到 服务器将内容发送到客户端

Servlet 是由触发进行运行的

servlrt是如何被浏览器访问的:

                     这项工作是在启动是就会工作
                     tomcat再启动是就会将所有的注解 搜索到
                     并将直接存储起来 当服务器启动是就会找的你的注解
                     
                     1、浏览器输入地址http://localhost:8080/hello
                     2、浏览器发出请求 请求头 访问内容和路径已经说明好了 我要访问/hello
                     3、发送到端口8080 接受请求后 解析请求头信息  分析你要请求的内容 是资源还是类
                     4、我要访问hello类(类都在包下 不会重复)
                     5、查看又没有一个类叫hello 找到你注解所对应的类
                     6、如果创建对象执行对象中的方法
                     7、如果类没有 就会去找资源 如果找不到他就会报404错误

如果修改源码就需要重启tomcat 如果修改资源的话就不要要重启直接刷新页面即可

网页运行不管运行多少次都要有请求头和响应头

Servlet:

        是一个普通的接口
        Servlet是JavaWEB的核心技术,通过URL地址可以对Servlet进行访问
        Servlet就是接收外界访问的处理类
        开发servlet 必须继承HttpServlet 重写里面的service方法 也可以不重写 还有其他的
        开发方式:1.使用注解开发Servlet
                        2.使用web.xml配置Servlet

idea类图查看快捷键Ctrl+Alt+Shift+U


import javax.servlet.annotation.WebServlet;//网页注解时看清引用  不要引用错了
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;//引用时看清引入 不要引错了
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    //继承与HttpServlet 不要引用错了
    @Override
    //重写了servlec方法
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Hello,Servlet!!");
        response.setHeader("Content-type", "application/json;charset=UTF-8");//解决 web服务器无法运行中文
        PrintWriter out = response.getWriter();
        out.println("嘻嘻嘻啊");
    }
}

Servlet是用来处理请求

Javax.servlet.Servlet 接口
init(ServletConfig); 初始化方法 配置信息 谁调用我谁就给我传进相应的配置参数 Tomcat调用所有由Tomcat传入参数
service(ServletRequest, ServletResponse); 处理请求方法
destroy(); Servlet销毁方法

GenericServlet实现与Servlet接口

Servlet对象不是由我们来new的是由Web容器来new的

init(){}; 用来给客户得知初始化信息的方法(程序员),重写这个方法 因为有参数的是由Tomcat调用的 可以让我们得知什么时候初始化

init(ServletConfig config){}; 这里在调用init()方法,当他调用你重写的方法(因为调用关系就是先调用子类)

service(ServletRequest var1, ServletResponse var2){};

destroy(){}

Javax.servlet.http.HttpServlet 继承与 GenericServlet

service(ServletRequest, ServletResponse)
面向接口编程 Javax.servlet.Servlet调用的是个这个方法(他实现了Servlet中的service方法)

service(HttpServletRequest, HttpServletResponse);
方法重载 带协议 发出请求时先接受到的是不带协议的 找到带协议的转换成不带协议的方法

        if (req instanceof HttpServletRequest && res instanceof HttpServletResponse) {//判断下传进来的是不是带协议的
            HttpServletRequest request = (HttpServletRequest)req;
            HttpServletResponse response = (HttpServletResponse)res;
            this.service(request, response);//转换后将他交给不带协议的方法
        } else {
            throw new ServletException("non-HTTP request or response");
        }

doGet(HttpServletRequest, HttpServletResponse); 请求方法形式
doPost(HttpServletRequest, HttpServletResponse);请求方法形式
doPut(HttpServletRequest, HttpServletResponse)请求方法形式
细致的
等等请求形式方法
.
service(HttpServletRequest, HttpServletResponse);
他会根据你的请求方法 进行判断进行选择(不需要细致的将请求方法细致分开)

如果你重写了doPut 非要用doGet他就直接调用父类的doGet方法他就会报错(请求方式不匹配)405 400服务

        String protocol = req.getProtocol();
        String msg = lStrings.getString("http.method_get_not_supported");
        if (protocol.endsWith("1.1")) {
            resp.sendError(405, msg);
        } else {
            resp.sendError(400, msg);
        }

    }

所有的请求都是先经过service(ServletRequest, ServletResponse) 方法
然后去找你相应的请求

目录
相关文章
|
3月前
|
缓存 Java 应用服务中间件
javaweb实训第三天上午——Servlet(1)
Servlet基础 课程介绍 Servlet基础; (掌握) 基本结构 生命周期 执行流程 接收参数 响应数据
52 0
|
4月前
|
小程序 Java 应用服务中间件
【JavaWeb学习】—Servlet(十三)
【JavaWeb学习】—Servlet(十三)
|
7月前
|
安全 Java 应用服务中间件
【JavaWeb】Tomcat底层机制和Servlet运行原理
网络通信:Tomcat使用Java的Socket API来监听特定的端口(通常是8080),接收来自客户端的HTTP请求。 线程池:Tomcat使用线程池来处理并发的请求。当有新的请求到达时,Tomcat会从线程池中获取一个空闲线程来处理该请求,这样可以提高处理效率。 生命周期管理:Tomcat负责管理Servlet和其他Web组件的生命周期,包括初始化、请求处理和销毁等阶段。(init(), run())
|
7月前
|
数据安全/隐私保护
JavaWeb用户信息管理系统-创建登录业务的Servlet
JavaWeb用户信息管理系统-创建登录业务的Servlet
29 0
|
3月前
|
存储 前端开发 Java
JavaWeb:servlet+jsp+mybatis商品管理增删改查
商品管理通常包括增加(添加)、删除、修改和查询商品信息
43 1
JavaWeb:servlet+jsp+mybatis商品管理增删改查
|
3月前
|
安全 Java
javaweb实训第四天下午——员工管理系统-JSP&Servlet&JDBC综合练习-CRUD
1.课程介绍 Servlet细节; (掌握) 员工信息相关的CRUD; (掌握) 部门信息相关的CRUD; (掌握) 2.Servlet细节 2.1.多种匹配方式
38 0
|
3月前
|
编解码 应用服务中间件 数据库
|
4月前
|
小程序 应用服务中间件 数据库连接
|
6月前
|
存储 设计模式 JavaScript
掌握JavaWeb开发的必备技能:Servlet、JSP、Cookie、Session、EL、JSTL详解 ~~~~B站老杜--Servlet-JSP-课堂笔记(三)
当某个特殊的事件发生(特殊的事件发生其实就是某个时机到了。)之后,被web服务器自动调用。 思考一个业务场景
46 0
|
7月前
|
Java 中间件 应用服务中间件
【JavaWeb】知识总结Ⅶ(Servlet)
什么是 Servlet? Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。