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) 方法
然后去找你相应的请求

目录
相关文章
|
7月前
|
缓存 Java 应用服务中间件
javaweb实训第三天上午——Servlet(1)
Servlet基础 课程介绍 Servlet基础; (掌握) 基本结构 生命周期 执行流程 接收参数 响应数据
87 0
|
3月前
|
Java 应用服务中间件 Maven
JavaWeb基础5——HTTP,Tomcat&Servlet
JavaWeb技术栈、HTTP、get和post区别、响应状态码、请求响应格数据式、IDEA使用Tomcat、报错解决、Servlet的体系结构、IDEA使用模板创建Servlet
JavaWeb基础5——HTTP,Tomcat&Servlet
|
6月前
|
SQL druid Java
javaweb案例实训之基于jsp和servlet的用户管理开发[增删改查及登录注销]
javaweb案例实训之基于jsp和servlet的用户管理开发[增删改查及登录注销]
40 0
|
6月前
|
SQL 数据可视化 数据库
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
26 0
|
7月前
|
存储 安全 JavaScript
JavaWeb之Servlet(下)
本文主要介绍了JavaWeb开发中关于请求、响应、会话和Servlet3.0注解的相关知识。首先讲解了请求(Request)的常用方法,以及处理请求乱码问题的几种方式。接着讨论了响应(Response)的方法,,以及设置全局初始化参数。然后介绍了会话(Session)的概念,包括其生命周期、如何设置和获取初始化参数,并对比了全局初始化参数和Servlet3.0的`@WebServlet`注解。文中给出了具体的代码示例和测试结果,帮助读者更好地理解和掌握这些概念。
|
7月前
|
Java 应用服务中间件 程序员
JavaWeb之Servlet(上)
本篇博文介绍了JavaWeb中Servlet的基本概念和应用。Servlet是用于交互式浏览和修改数据、生成动态Web内容的Java程序,通常运行在支持Java的应用服务器上。文章讲解了Servlet的工作模式,包括客户端请求、服务器调用Servlet以及响应返回客户端的过程。此外,还提到了Servlet API,特别是doGet和doPost方法用于处理请求和响应。作者通过创建第一个Servlet的步骤,展示了如何实现Servlet接口并配置web.xml文件。最后,文章简述了Servlet的工作原理和生命周期,强调了Servlet的单例特性以及初始化、服务和销毁的过程。
|
7月前
|
存储 前端开发 Java
JavaWeb:servlet+jsp+mybatis商品管理增删改查
商品管理通常包括增加(添加)、删除、修改和查询商品信息
182 1
JavaWeb:servlet+jsp+mybatis商品管理增删改查
|
7月前
|
安全 Java
javaweb实训第四天下午——员工管理系统-JSP&Servlet&JDBC综合练习-CRUD
1.课程介绍 Servlet细节; (掌握) 员工信息相关的CRUD; (掌握) 部门信息相关的CRUD; (掌握) 2.Servlet细节 2.1.多种匹配方式
102 0
|
7月前
|
编解码 应用服务中间件 数据库
|
7月前
|
小程序 应用服务中间件 数据库连接