一、Servlet基础

a)   Servlet和JSP的关系

1、 Servlet是一个运行在服务器端的Java程序,它可以动态地生成web页面,是属于客户和服务器响应的中间层。可以说JSP就是一个Servlet。

2、 Servlet是JSP的底层实现;实际上,在运行JSP时,服务器底层将JSP编译成一个Servlet。

3、 Servlet适合纯编程,和Servlet相比,编写JSP成本更低。

b)   Servlet的编写

1、 继承javax.servlethttp.HttpServlet;

2、 重写HttpServlet的doGet()和doPost()方法

doGet()和doPost()方法使用来处理业务逻辑上。

3、 在web.xml中配置Servlet

<servlet>

<servlet-name>Servlet名</servlet-name>

<servlet-class>Servlet类路径</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Servlet名</servlet-name>

<url-pattern>映射路径</url-pattern>

</servlet-mapping>

<servlet>和<servlet-mapping>中配置的<servlet-name>要一致才能制定此两项配置是同一个Servlet。

4、 部署Servlet

c)   Servlet的运行机制

初次运行Servlet时实例化Servlet

Servlet采用多线程机制,首次执行时实例化,当有多个用户请求时创建多个线程,每次请求时执行doGet()或doPost()方法。

d)   Servlet的生命周期

init()方法:Servlet实例化过程中将会调用此方法。

doGet()/doPost()/service()方法:当用户请求Servlet时会调用service方法,service方法会根据请求类型去调用doGet()或doPost()方法。

destroy()方法:Servlet实例消亡时自动调用此方法。

e)   Servlet与JSP内置对象

1、 JSP的request对象---HttpServletRequest

2、 JSP的response对象---HttpServletResponse

3、 JSP的out对象---Servlet的(PrintWriter)response.getWriter()

4、 JSP的session对象---Servlet的(HttpSession)resquest.getSession()

5、 JSP的application对象---Servlet的(ServletContext)this.getServletContext()

f)   Servlet参数读取和web.xml的参数配置

1、 web.xml文件参数配置

a)   全局参数配置:所有的Servlet都能访问

全局参数配置在web.xml的最上面,格式为:

<context-param>

<param-name>参数名</param-name>

<param-value>参数值</param-value>

</context-param>

b)   局部参数配置:只有相应的Servlet才能访问

配置格式为:

<servlet>

<servlet-name>Servlet名称</servlet-name>

<servlet-class>Servlet类路径</servlet-class>

<init-param>

<param-name>参数名</param-name>

<param-value>参数值</param-value>

</init-param>

</servlet>

2、 Servlet获取参数

a)   获取全局参数

ServletContext application = this.getServletContext();

Application.getInitParameter(“参数名”);

b)   获取局部参数

this.getInitParameter(“参数名”);

二、Servlet高级

a)   Servlet页面跳转

1、 Servlet重定向

使用response.sendRedirect(url)

页面重定向到一个新的页面,同JSP中的response.sendRedirect();

2、 Servlet服务器跳转

ServletContext application = this.getServletContext()

RequestDispatcher rd=application.getRequestDispatcher(url)

rd.forword(request,response);

该方式同JSP中的<jsp:forword page=””></jsp:forward>

b)   ServletContext高级功能:(application对象)

获取当前项目资源的绝对路径信息:使用getRealPath()

转载于:https://www.cnblogs.com/leejie/archive/2012/07/26/Servlet.html

JavaEE Web开发之Servlet篇相关推荐

  1. Java服务器接口快速开发之Servlet详细教程

    今日科技快讯 7月14日晚间消息,据乐视网刚刚披露的业绩预告,公司预计2017年上半年亏损6.37亿至6.42亿元,上年同期盈利2.84亿元.报告期内,乐视网资产减值损失计提规模较大约为2.3亿元,其 ...

  2. Swift Web 开发之 Vapor - 入门(一)

    简介 Vapor 是一个基于纯 Swift 构建出的 Web 开发框架,目前可以运行在 macOS 和 Ubuntu ,用于构建出漂亮易用的网站或者 API 服务. 官方称是用的最多的 Swift w ...

  3. Swift Web 开发之 Vapor - 模版 Leaf(三)

    模版引擎,对现在的 Web 开发极为重要,几乎所有主流 Web 框架都会支持一种或多种模版引擎,模版引擎可以分离用户界面和业务逻辑,工作原理主要是一种翻译,后端对特定的标记.语法.变量等渲染后再输送给 ...

  4. 视频教程-跟着王进老师学开发之C#篇:基础语法-C#

    跟着王进老师学开发之C#篇:基础语法 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ¥208.00 ...

  5. 跟着王进老师学开发之C#篇:基础语法-王进-专题视频课程

    跟着王进老师学开发之C#篇:基础语法-10520人已学习 课程介绍         本次课程是初级课程,只要熟悉计算机的基本应用和操作,都可以完成本次课程学习.本课程深入浅出的介绍了C#语言的基本语法 ...

  6. 跟着王进老师学开发之Python篇第一季:基础入门篇-王进-专题视频课程

    跟着王进老师学开发之Python篇第一季:基础入门篇-2859人已学习 课程介绍         本季课程首先对Python简要介绍,然后演示如何搭建Python的开发环境,以及如何在IDE中调试Py ...

  7. 视频教程-跟着王进老师学开发之Python篇第一季:基础入门篇-Python

    跟着王进老师学开发之Python篇第一季:基础入门篇 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ...

  8. 移动web开发之rem布局(rem基础、媒体查询、 less 基础、rem适配方案)

    移动web开发之rem布局 一.rem基础 rem单位 rem (root em)是一个相对单位,类似于em,em是父元素字体大小. 不同的是rem的基准是相对于html元素的字体大小. 比如,根元素 ...

  9. Jmeter Kafka插件开发之Sampler篇

    Jmeter Kafka插件开发之Sampler篇 背景:在项目中经常需要往kafka里面写数据,并拿生成的数据执行后续的操作,并且有些接口中也需要用到kafka里的数据,小编使用JMeter做接口测 ...

最新文章

  1. 一场高质量的技术盛会怎样炼成?「2019中国大数据技术大会」蓄势待发,还不快上车?...
  2. [Buzz.Today]HP停止 webOS 设备的研发和运作
  3. oracle可以迁徙mysql吗_项目oracle迁徙到mysql的小总结
  4. Activiti-01
  5. PHP5各个版本的新功能和新特性总结
  6. linux web 服务器性能,Linux系统Web服务器性能测试(2)
  7. 动手写的Python的HTML语法分析器(面向对象)
  8. 剑指offer之用链表实现栈(带头节点)
  9. 【测试工具】在linux测试环境安装bug管理工具禅道
  10. [机器学习]正则化项L1和L2的学习与理解
  11. 音视频技术傻瓜版解析:带你解锁RTMP
  12. Eclipse中,对工作空间中的项目进行分组(在查询中,也可也选择这个分组)。
  13. juc包下四大并发工具
  14. animate支持的css属性
  15. paip.最省内存的浏览器评测 cah
  16. Spring MVC @JsonView使用详解
  17. DWM1000 帧过滤代码实现
  18. 工具篇:Navicat-12版本破解安装
  19. 【Linux的开胃小菜】基于Ubuntu搭建内网DNS服务器
  20. 【转】Xposed+JustTrustMe关闭SSL证书验证解决无法抓取https包问题

热门文章

  1. 【机器学习】Apriori 算法进行关联分析和FP-growth算法
  2. python基础练习(六)
  3. java 正则 u2E80_java正则表达式中的POSIX 字符类和Unicode 块和类别的类介绍
  4. pmp学习资料_PMP怎样叫通过考试,拿到证书?
  5. 长沙网络推广教你如何在网站优化中让URL标准化?
  6. 网络推广外包——网络推广外包专员浅析移动端网站建设要点
  7. 浅析刚刚起步的创业公司应该如何选择适合自己的网站类型呢?
  8. mysql导入sql文件限制,Mysql导入大容量SQL文件数据有关问题
  9. java opencv 平移_如何使用opencv pnpRansac()函数中的平移矩阵和旋转矩阵设置Rajawali相机的旋转?...
  10. mysql使用大内存页面,设置MySQL使用大内存页面