2020最新servlet教程-Servlet全解和案例实操

这篇教程详细介绍了Servlet的各个方面,从Servlet规范、开发步骤到对象生命周期,涵盖HttpServletResponse、HttpServletRequest接口的使用,以及在线考试系统的实现来加深对doGet和doPost的理解。教程还涉及了请求和响应对象的生命周期、HttpSession、Cookie、过滤器和监听器的运用,全面阐述了多个Servlet之间的数据共享和交互策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1p/39p Servlet规范介绍

在这里插入图片描述

2p/39p Servlet接口实现类开发步骤

在这里插入图片描述

一个实现了servlet接口的java类才是动态资源文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
GenericServlet这个类实现了Servlet这个接口,HttpServlet这个类又继承了GenericServlet这个类。我们自己编写的OneServlet类再去继承HttpServlet类,所以说此时OneServlet也是Servlet的实现类。

  • 为什么OneServlet不直接实现Servlet接口呢?而要去一层一层继承?

为了降低开发难度。因为接口是完全抽象的,如果直接去实现接口的话,就要对Servlet中的五个抽象方法都进行重写,而我们只能用的上其中的一个抽象方法,这就比较麻烦。所以采用的办法就是让一个抽象类去实现接口,然后再编写类去继承抽象类,这样就可以只对需要的方法进行重写。

  • 抽象类的作用:为了降低开发难度

将接口中不需要使用的抽象方法交给抽象类去重写,这样接口的实现类只需要继承此抽象类,对需要使用的方法进行重写即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

查看类图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3p/39p Servlet对象生命周期

一般默认的Servlet对象是在访问servlet服务时创建的,也可以在XML中使用命令定义为tomcat启动时自动创建servlet实例对象。
在这里插入图片描述

在这里插入图片描述

4p/39p HttpServletResponse接口

在这里插入图片描述

使用标准输出流、响应对象将结果写入到响应体中。
在这里插入图片描述
1、写入字符串

在这里插入图片描述

1、写入int数字
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
问题解决
在这里插入图片描述
3、写入HTML标签命令
设置contentType中的编译器类型和字符集
在这里插入图片描述
结果如下:
在这里插入图片描述
在这里插入图片描述
解决方案
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4、fourServletD
通过sendRedirection设置location。
在这里插入图片描述

在这里插入图片描述

5p/39p HttpServletRequest接口【打印到控制台有问题,不知道为啥】

通过请求行拿到url和method
在这里插入图片描述
在这里插入图片描述
通过请求行拿到uri在这里插入图片描述
通过请求行拿到请求参数名与请求参数值,失败。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
post方式打印出的请求参数乱码问题
在这里插入图片描述
在这里插入图片描述

6p/39p 请求对象与响应对象生命周期

需要注意的是这个请求对象和响应对象是请求协议包的两个对象。这个响应对象不是下面响应协议包中的。
在这里插入图片描述
在这里插入图片描述

7p/39p 在线考试管理系统搭建帮助理解doGet和doPost方法【理解auto_increment】

在这里插入图片描述

第一步:准备用户表。【mysql】
在这里插入图片描述
第2步:创建users类
在这里插入图片描述
第3步:导入之前写的JDBC的工具类进行复用
在这里插入图片描述

package com.bjpowernode.utils;

import java.sql.*;

/**
 *  将JDBC规范下相关对象【创建】与【销毁功能】封装到方法
 *
 *   一。JDBC开发步骤:
 *      1.注册数据库服务器提供的Driver接口实现类
 *      2.创建一个连接通道交给Connection接口的实例对象【JDBC4Connection】管理
 *      3.创建一个交通工具交给PreparedStatement接口的实例对象【JDBC4PreparedStatement】管理
 *      4.由交通工具在Java工程与数据库服务器之间进行传输,推送SQL命令并带回执行结果
 *      5.交易结束后,销毁相关资源【Connection,PreparedStatement,ResultSet】
 */
public class JdbcUtil {
   

    final String URL="jdbc:mysql://localhost:3306/bjpowernode";
    final String USERNAME = "root";
    final String PASSWORD = "333";

    Connection con = null;//类文件属性,可以在类文件中所有的方法中使用
    PreparedStatement ps=null;//类文件属性,可以在类文件中所有的方法中使用

    //静态语句块 static{}
    //在当前类文件第一次被加载到JVM时,JVM将会自动调用当前类文件静态语句块
    static{
   
        //1.注册数据库服务器提供的Driver接口实现类

        try {
   
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
   
            e.printStackTrace();
        }

        System.out.println("Driver接口实现类被注册了");
    }

    //封装Connection对象创建细节 不需要考虑使用对象创建细节
    public  Connection  createCon(){
   
        try {
   
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bjpowernode", "root", "333");
        } catch (SQLException e) {
   
            e.printStackTrace();
            System.out.println("Connection对象创建失败。。。。。");
        }
        return con;
    }

    //封装PreparedStatement对象创建细节
    public PreparedStatement createStatement(String sql){
   

        Connection con = createCon();
        try {
   
            ps = con.prepareStatement(sql);
        } catch (SQLException e) {
   
            e.printStackTrace();
        }
        return ps;
    }

    //封装PreparedStatement对象与Connection对象销毁细节
    public void close(){
   
        if(ps!=null){
   
            try {
   
                ps.close
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值