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

2020最新servlet教程-Servlet全解和案例实操这篇教程详细介绍了 Servlet 的各个方面 从 Servlet 规范 开发步骤到对象生命周期 涵盖 HttpServletR HttpServletR 接口的使用 以及在线考试系统的实现来加深对 do

大家好,欢迎来到IT知识分享网。

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/154082.html

(0)
上一篇 2025-02-28 14:10
下一篇 2025-02-28 14:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信