之前都是集成的Servlet真的太过于繁琐了, Servlet接口提供了一个实现类 为HttpServlet  只要实现doGet 和doPost方法就可以了

仍然以一个表单为例

新建一个web工程

 1 package com.xiaoan.test;
 2
 3 import javax.servlet.http.HttpServlet;
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpServletResponse;
 6
 7 public class TestHttpServlet extends HttpServlet{
 8
 9     /**
10      *
11      */
12     private static final long serialVersionUID = 1L;
13
14
15     public void doGet(HttpServletRequest req, HttpServletResponse resp){
16         System.out.println("GET METHOD");
17     }
18
19     public void doPost(HttpServletRequest req, HttpServletResponse resp){
20         System.out.println("POST METHOD");
21     }
22 }

编辑web.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 3   <display-name>testHttpServlet</display-name>
 4
 5   <servlet>
 6       <servlet-name>TestHttpServlet</servlet-name>
 7       <servlet-class>com.xiaoan.test.TestHttpServlet</servlet-class>
 8   </servlet>
 9   <servlet-mapping>
10       <servlet-name>TestHttpServlet</servlet-name>
11       <url-pattern>/testHttpServlet</url-pattern>
12   </servlet-mapping>
13 </web-app>

这样运行项目访问路径为http://localhost:8080/testHttpServlet/testHttpServlet  控制台会输出GET METHOD

写一个表单将其post提交到这个路径

在WebContent里面新建一个testform.jsp

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 2     pageEncoding="ISO-8859-1"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="testHttpServlet" method="post">
11     <input type="submit" value="tijiao">
12     </form>
13 </body>
14 </html>

运行这个jsp页面, 直接点击提交 注意浏览器中的变化和控制台的输出为POST METHOD

HttpServletRequest   HttpServletResponse  这里面和Serlvet.service方法中使用方法可以认为完全一样

并且在HttpServlet 的父类GenericServlet 中获得了Servlet初始化 init方法中的ServletConfig为一个成员属性 可以直接调用

ServletResponse: 封装了响应信息, 如果想给用户什么响应, 具体可以使用该接口的方法实现

1> getWriter(): 返回PrintWriter对象. 调用该对象的pring()方法, 将把pring()中的参数直接打印到客户浏览器上
PrintWriter out = response.getWriter();
out.println("neirong");

2> 设置响应内容类型: response.setContentType("application/msword");

3> woid sendRedirect(String location): 请求的重定向(本方法为HttpServletResponse中定义)

练习
在web.xml文件中设置两个WEB初始化参数 user, password. 定义一个login.html, 里面定义两个请求字段 user, password. 此对其和web.xml文件中定义的请求参数是否一致,若一致, 就响应Hello: xxx, 不一致就响应Sorry: xxx

1GenericServlet:
1> 是一个Servlet. 是Servlet接口和ServletConfig接口的实现类. 但是是一个抽象类. 其中的servlet方法为抽象方法
2> 如果新建的Servlet程序直接继承GenericServlet会使开发更简洁
3> 具体实现:
1) 在GenericServlet中声明了一个ServletConfig类型的成员变量, 在init(ServletConfig)方法中对其进行了初始化
2) 利用servletConfig成员变量的方法实现了ServletConfig接口的方法
3) 还定义了一个init()方法, 在init(ServletConfig)方法中对其进行调用, 子类可以直接覆盖init() 在其中实现对Servlet的初始化
4) 不建议直接覆盖init(ServletConfig), 因为如果忘记写super.init(config); 而是还使用了ServletConfig接口的方法, 则会出现空指针异常
5) 新建的init(){} 并非Servlet的生命周期方法. 而init(ServletConfig)是生命周期相关的方法

2 HttpServlet:
1是一个Servlet 继承自GenericServlet. 针对于HTTP协议所定制

转载于:https://www.cnblogs.com/azhw/p/5739008.html

JavaWeb核心编程之(三.6)HttpServlet相关推荐

  1. python核心编程第三版_Python之父:自学python,这3本书能节约你一大半时间编程...

    今天给大家推荐三本书,有两本是属于一个系列,即<Python核心编程>第二版和第三版,一本讲基础和一本讲进阶,非常适合Python的初学者和有一定基础的学习者.还有一本书适合所有想学Pyt ...

  2. python核心编程第三版_《Python核心编程(第3版)》

    <Python核心编程(第3版)>是经典畅销图书<Python核心编程(第二版)>的全新升级版本,本书适合具有一定经验的Python开发人员阅读,总共分为3部分.第1部分为讲解 ...

  3. Windows核心编程 第三章 内核对象

    第3章内核对象 在介绍Windows API的时候,首先要讲述内核对象以及它们的句柄.本章将要介绍一些比较抽象的概念,在此并不讨论某个特定内核对象的特性,相反只是介绍适用于所有内核对象的特性. 首先介 ...

  4. 【JavaWeb - 网页编程】三 jQuery 类库

    第三章 jQuery 类库 创作日期:2021-12-21 3.1 jQuery 介绍         jQuery,顾名思义,也就是 JavaScript 和 查询(Query)它就是辅助 Java ...

  5. python核心编程第三版(一)学习笔记:正则表达式

    注:下面有些内容不全都来源于原著,这些都是通过各方面的资料收集合并的结果. 目录 一.正则表达式介绍 二.分类解析 1.元字符 匹配对象以及group()和groups()方法 搜索与匹配的比较 2. ...

  6. python程序练习题第三章_python核心编程-第三章-习题

    1.这是python的语言特性,python先创建对象,在给变量赋值时,不需要定义变量的名称和类型,它实际是用变量引用对象.变量类型在给变量赋值时自动声明 2.原因类似变量无须声明类型 3.pytho ...

  7. C++核心编程(三)

    4.6 继承 继承是面向对象三大特性之一 子类拥有父类的一些共性 利用继承的技术可以减少重复的代码 4.6.1 继承方式 语法: class 子类 : 继承方式 父类{} 子类 也被称为派生类 父类 ...

  8. java swing http请求_JavaWeb核心编程之(三.5)HTTP请求和接受表单数据

    HTTP简介 WEB浏览器与WEB拂去其之间的一问一答的交互过程, 必须遵循一定的规则,这个规则就是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简 ...

  9. java web核心编程_JavaWeb核心编程之(三)Servlet配置

    Servlet配置 1.配置Serlvet加载时机 2.配置多映射 配置加载时机 新建项目config->创建包com.xiaoan.config->创建类FirstServlet imp ...

  10. Java核心编程总结(三、多态与内部类),java就业班百度网盘

    需要存在方法重写 1.4多态的优劣势 优势 在多态形式下,右边对象可以实现组件化切换,业务功能也随之改变,便于扩展和维护.可以实现类与类之间的解耦 实际开发的过程中,父类类型作为方法形式参数,传递子类 ...

最新文章

  1. go的打包依赖构建工具-dep
  2. 阿里云服务器买了,如何建站呀?
  3. 一台服务器上起2个mysql服务
  4. linux centos7 设置 grub2
  5. Java监听器的用法(一):内部类监听器
  6. 年轻人,别动不动就想搞个“大社交”,工具型社交才是正路子
  7. jetbrains是最好的编译器系列
  8. Python中的MySQL数据库编程
  9. 分类算法之贝叶斯(Bayes)分类器
  10. linux gtk python,python-Linux上具有pygtk(gtk.gdk)的桌面/根窗口上的键盘/鼠标事件
  11. 数据分析学习笔记—python简单操作EXCEL
  12. Vue3 组合式Api之customRef实现防抖功能
  13. 计算机音乐叫什么名字,电脑开机那段美妙的音乐叫什么名字?
  14. Linux系统发布ASP.NET项目
  15. Atitit java ftp client sumup apache common net jar 1.1. 协议解析 1 1.2. 读取文件 1 2. } 3 1. 下载文件 ftpCli
  16. ae制h5文字动画_绝对干货!H5动画制作方法全揭秘!
  17. 12 如何分析kernel panic?
  18. codeforces 1677A. Tokitsukaze and Strange Inequality
  19. 如何使用WordPress推送通知和智能通知插件
  20. UBLOX F9P搭建NtripCaster组建RTK

热门文章

  1. CF1106F Lunar New Year and a Recursive Sequence(矩阵快速幂+bsgs+exgcd)
  2. 资深CTO带来的8条Serverless最佳实践
  3. 企业转向云服务的速度比企业的思想更快
  4. Exchange Server 2013系列十二:邮箱的基本管理
  5. MySQL复制篇之---半同步复制
  6. Linux命令学习手册-mount命令
  7. [Android] 图片JNI(C++\Java)高斯模糊 多线程
  8. Luogu1919 【模板】A*B Problem升级版(FFT快速傅里叶)
  9. 项目中对axios的全局封装
  10. Nacos1.4.1下载与配置