一、Servlet使用步骤
二、Servlet生命周期
三、Servlet接收与返回数据
四、GET请求与POST请求的区别
五、转发与重定向

一、Servlet使用步骤

servlet是运行在服务器上的应用程序。
Servlet是单实例多线程的。

  • 创建web项目,在web.xml中配置Servlet信息。
  • 编写Servlet.java
...
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {...// 该Servlet要执行的逻辑代码}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
  • 运行项目
  • 浏览器地址:http://ip:端口号/项目名称/映射地址http://localhost:8080/test_war_exploded/index.jsp

二、Servlet生命周期

  • 加载跟实例化Servlet。

Servlet 通过调用 构造 方法进行实例化,构造方法必须为无参构造方法。默认是在第一次被访问的时候构造对象。

也可以在web.xml中通过
<load-on-startup>N</load-on-startup>
配置Servlet被创建的时机。
(N为一个整数表示优先级,>=0表示在web服务器启动的时候创建,<0表示第一次访问时创建)

  • Servlet 实例创建完毕后立马通过调用 init () 方法进行初始化。

如果初始化失败抛出ServletException,Servlet对象将会被垃圾回收器回收。init初始化操作只会执行一次。初始化时机紧跟Servlet创建。

  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 通过调用 destroy() 方法终止(结束)。
  • 最后Servlet 由 JVM 的垃圾回收器进行垃圾回收。

三、Servlet接收与返回数据

接收表单数据:request.getParameter("xxx");
返回数据:response.getWriter().write("xxx");

返回的数据可以通过回调函数的data参数取得。

四、GET请求与POST请求的区别

get post
参数拼接在url,不安全 post的参数封装到请求体,相对安全
传的只能是字符串类型 除了传字符串还可以传非字符串类型比如文件
数据大小限制2kb,速度快 理论上大小没有限制,速度慢

五、转发与重定向

转发:req.getRequestDispatcher("xxx").forward(req,res);

一次请求,返回200,地址栏无变化。

重定向:res.sendRedirect("xxx");

二次请求,第一返回302,第二次请求会使用第一次请求响应中的Location头信息地址进行访问。第二次请求返回200或者304,地址栏会改变。

抉择使用转发还是重定向的时候,一般由是否传值、传值的方式所决定。例如,若使用request传值,由于request只在一次请求中存活,故只能使用转发这种一次请求的方式。若使用session传值,由于session存活范围更大则可以使用重定向来跳转页面。

小汤学编程之JavaEE学习day02——Servlet使用步骤、生命周期、接收与返回数据、GET与POST、转发与重定向相关推荐

  1. 小汤学编程之JavaEE学习day08——Maven

    一.Maven介绍 1.什么是Maven     2.Maven的功能     3.什么是构建     4.项目的构建方式 二.Maven的安装 1.下载     2.安装     3.配置      ...

  2. 小汤学编程之JavaEE学习day06——LayUI

    一.LayUI简介 1.下载     2.入门案例 二.栅格布局 三.图标 四.按钮 1.按钮类型     2.主题     3.尺寸     4.圆角     5.按钮组 五.后台布局 六.表格数据 ...

  3. 小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT

    一.SVN 1.SVN介绍     2.SVN安装     3.SVN操作 二.GIT 1.GIT介绍     2.集中式和分布式     3.GIT的基本使用     4.GIT时光机     5. ...

  4. 小汤学编程之JavaEE学习day05——会话管理、文件上传与下载、Ajax

    一.会话管理 1.HTTP协议     2.会话的概念     3.会话跟踪技术     4.会话跟踪技术分类(四种) 二.文件上传与下载 1.上传     2.下载     3.上传和下载合并优化成 ...

  5. 小汤学编程之JavaEE学习day01——HTTP简介、B/S与C/S应用、连接的建立与断开、Tomcat

    一.HTTP简介 1.HTTP请求报文     2.HTTP响应报文 二.B/S与C/S应用 三.连接的建立与断开 1.连接的建立(三次握手)     2.断开连接(四次挥手) 四.连接的建立与断开 ...

  6. 小汤学编程之JavaScript学习day02——运算符、流程控制与循环、函数

    一.运算符 1.算术运算符     2.一元运算符     3.关系运算符     4.逻辑运算符     5.赋值运算符     6.运算符的优先级 二.流程控制与循环 1.顺序结构     2.分 ...

  7. 小汤学编程之JavaEE学习day10——Spring

    一.Spring简介 1.特点     2.核心特性     3.两大核心 二.Spring环境搭建 1.导包     2.准备数据库和表.实体类     3.定义dao层接口和接口映射文件      ...

  8. 小汤学编程之JavaEE学习day09——Mybatis

    一.Mybatis简介 1.官网     2.Mybatis是什么     3.有何作用     4.扩展:Hibernate 二.Maven介绍 1.导包     2.准备数据库和表.实体类    ...

  9. 小汤学编程之JavaEE学习day04——EL表达式、JSTL

    一.EL表达式 1.EL表达式简介     2.禁用EL     3.EL中的11个隐式对象     4.EL表达式的作用 二.JSTL 1.引入步骤     2.通用标签     3.条件标签    ...

最新文章

  1. 上一篇的js处理失真数据存在问题换了种方法
  2. iptables+geoip来过滤阻挡来源IP
  3. 网络广告推广浅析网站中的关键词密度要如何控制呢?
  4. java获取pdf的页数、内容和缩略图
  5. CVPR 2019 | PoolNet:基于池化技术的显著性目标检测
  6. DCMTK:测试文件是否使用DICOM Part 10格式
  7. php template strring,PHP字符串函数
  8. oopc——4.继承
  9. linux下面实时查看进程,内存以及cpu使用情况使用命令
  10. 3大AI事件入围百度2017科技热搜,柯洁对战AlphaGo排名第一
  11. .NET现成程序给你用[四]
  12. 如何在线将WAV转换为MP3格式
  13. 小学生听力测试软件,中小学英语听力软件
  14. 【NLP】NLP,能辅助法官判案吗? | CCF C³
  15. 7位白手起家的亿万富豪的7大独特做事准则 凤凰科技02-0411:46 原标题:7位白手起家的亿万富豪的7大独特做事准则 那些白手起家的亿万富翁企业家是否有一些独特的思维方式和做事准则,从而让自己获得
  16. redis学习(十二)——hiredis的使用
  17. 2、java的应用领域
  18. ctp交易接口股票怎么查询历史数据?
  19. 从前车马很慢,书信很远,一生只够爱一个人
  20. 国人独有(写诗、对对联)--国学中的深度学习项目

热门文章

  1. 认识Linux系统中的inode,硬链接和软链接
  2. Entityframework Code First 系列
  3. Android API level 版本对应关系
  4. jsp - 9 内置对象application详解
  5. Linux按键驱动,中断实现流程
  6. 平时碰到的一些编程题
  7. 对抗攻击之利用水印生成对抗样本
  8. Java hibernate假外键_java – Hibernate:外键的列数错误
  9. 【python教程入门学习】六、python中字符串的常用方法
  10. 未来2年,会Python的人将会非常抢手