Servlet

Server+Applet,是一种服务器端的Java应用程序 只有当一个服务器端的程序使用了Servlet API的时候,这个服务端的程序才能称之为Servlet

jsp从莫种意义上来说也是一个servlet

创建Servlet

继承HttpServlet类

Servlet中主要方法以及对象

  1. init():Servlet的初始化方法,仅仅会执行一次

  2. service():处理请求和生成响应

  3. destroy():在服务器停止并且程序中的Servlet对象不再使用的时候调用,只执行一次

ServletRequest

封装客户的请求信息

作用相当于JSP内置对象request

ServletResponse

创建响应信息,将处理结果返回给客户端

作用相当于JSP内置对象response

ServletConfig

包含了Servlet的初始化参数信息

Servlet生命周期

生命周期 谁来做 何时做
实例化 Servlet 容器 Servlet容器启动或者容器检测到客户端请求时
初始化 Servlet 容器 实例化后,容器调用Servlet的init()初始化对象
处理请求 Servlet 容器 得到客户端请求并做出处理时
销毁 Servlet 容器 当程序中的Servlet对象不再使用的时候,或者Web服务器停止运行的时候

部署运行Servlet

  1. 修改web.xml(部署描述文件)

  2. 添加<servlet>:把Servlet内部名映射到一个Servlet类名

  3. 添加<servlet-mapping>:把用户访问的URL映射到Servlet的内部名

    <servlet-mapping>与<servlet>中的<servlet-name>必须一致

  4. 通过URL访问Servlet

配置

<servlet><servlet-name>myServlet3</servlet-name><servlet-class>demo.web.servlet.MyServlet3</servlet-class>
</servlet>Servlet名称唯一
Servlet类所在路径<servlet-mapping><servlet-name>myServlet3</servlet-name><url-pattern>/myServlet3</url-pattern>
</servlet-mapping>与<servlet>的<servlet-name>设置相同
访问Servlet的URL

初始化参数设置

配置<init-param>元素

<servlet>……
<init-param>
<param-name>charSetContent</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>

读取

public void init(ServletConfig config) throws ServletException {String initParam=config.getInitParameter("charSetContent");System.out.println(initParam);
}

相关对象方法

HttpServletRequest

getParameter()

getRequestDispatcher()

HttpServletResponse

sendRedirect()

HttpSession

request.getSession()

过滤器

简述以及作用

  • 是向Web应用程序的请求和响应添加功能的Web服务组件

  • 过滤器可以统一地集中处理请求和响应

  • 使用过滤器技术实现对请求数据的过滤

  • @WebFilter("/*")代表路径以/开头的都过滤

  • @WebFilter("/")就是/路径

过滤器的使用步骤

建立实现javax.servlet.Filter接口的类,实现过滤行为

在web.xml中配置过滤器

doFilter(...)  {
//过滤请求
chain.doFilter(request, response); //调用下一个过滤器或Web资源
//过滤响应
}<filter><filter-name>过滤器名</filter-name><filter-class>过滤器的完全限定名</filter-class>
</filter>
<filter-mapping><filter-name>过滤器名</filter-name><url-pattern>过滤器映射的Web资源</url-pattern>
</filter-mapping>

过滤器的生命周期

  1. 实例化

  2. 初始化:init()

  3. 过滤:doFilter()

  4. 销毁:destroy()

初始化参数

配置

<filter>
<init-param><param-name>Encoding</param-name><param-value>UTF-8</param-value></init-param>
</filter>

读取

init(FilterConfig fConfig)  {String encoding=fConfig.getInitParameter("Encoding");
}

新知识点

在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ includefile="/index.jsp"%>的情况。 到了servlet-2.4中Filter默认下只拦截外部提交的请求

但,想过滤其他请求就要这样写

<filter>
<filter-name>TestFilter</filtername>
<filter-class>anni.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filtername>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EXCEPTION</dispatcher>
</filter-mapping>

如果是注解就要这样写

@WebFilter(urlPatterns = {"/WEB-INF/*"},dispatcherTypes={DispatcherType.ASYNC,DispatcherType.ERROR,DispatcherType.FORWARD,DispatcherType.INCLUDE,DispatcherType.REQUEST,} )servlet2.3还是2.4大概以tomcat8.5为界限

Servlet与过滤器相关推荐

  1. Servlet中过滤器的实现原理(源码实现)

    2019独角兽企业重金招聘Python工程师标准>>> 一 回顾 控制台有如下打印: 过滤器1执行前 过滤器2执行前 过滤器3执行前 过滤器3执行后 过滤器2执行后 过滤器1执行后 ...

  2. java nodefilter类,Java Servlet Filter过滤器概述

    Java Servlet Filter过滤器概述 Filter是Servlet的过滤器,是Servlet 2.3规范中新增加的一个功能,主要用于完成一些通用的操作,如编码的过滤.判断用户的登录状态等. ...

  3. Servlet之过滤器详解

    Servlet分为三种:标准的Servlet----MVC中控制器 .过滤Servlet(过滤器).监听Servlet(监听器). 这篇博客将结合实例来讲解过滤Servlet(过滤器). Servle ...

  4. SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener

    SpringBoot定义三大组件Servlet,过滤器Filter,监听器Listener 1.定义组件的配置类: com.example.mybatis2018.config.MyServletCo ...

  5. Servlet WEB过滤器

    WEB应用中的过滤器截取从客户端进来的请求,并做出处理的回答.它可以说是外部进入 网站的第一道关.在这个头目里,可以验证客户是否来自枳的网络,可以对客户提交的数据进行 重新编码,可以系统里获得配置的信 ...

  6. 【Servlet】过滤器技术

    过滤器技术 过滤器 过滤器的运行原理 过滤器链 过滤器的核心接口 Filter FilterConfig FilterChain 过滤器的生命周期 过滤器的开发 过滤器的应用 过滤器 过滤器(Filt ...

  7. Servlet 编写过滤器

    Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet.Servlet 过滤 ...

  8. 动手学servlet(六) 过滤器和监听器

     过滤器(Filter) 过滤器是在客户端和请求资源之间,起一个过滤的作用,举个例子,比如我们要请求admin文件夹下的index.jsp这个页面,那么我们可以用一个过滤器,判断登录用户是不是管理员 ...

  9. Java Web中的一些概念(JSP、Servlet以及过滤器等)

    1.Servlet   Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的 ...

  10. Javaweb核心之servlet规范过滤器-----Filter

    2 Servlet规范中的过滤器-Filter 2.1 过滤器入门 2.1.1 过滤器概念及作用 过滤器--Filter,它是JavaWeb三大组件之一.另外两个是Servlet和Listener. ...

最新文章

  1. exe编辑器_windows下的EXE文件大揭密
  2. echarts前后端交互数据_SpringBoot2.0实战(26)整合SpringSecurity前后端分离JSON交互...
  3. 青龙面板修改端口教程避开5700更安全
  4. 2.1.5 梯度检验
  5. struts实战--添加功能(重点文件上传)
  6. 算法题存档20190204
  7. mingus python_【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型...
  8. hdu 4836 The Query on the Tree(线段树or树状数组)
  9. gulp-uglify《JS压缩》----gulp系列(四)
  10. win10电脑性能测试软件,win10系统测试计算机性能的图文方法
  11. 多功能智慧(灯杆)路灯项目建设背景及现实的意义主要体现在哪几个方面?
  12. 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔 ...
  13. 白嫖画师原作训练Stable Diffusion引正主不满:未经同意,说用就用?
  14. 20210429 ---- 浅谈 视口
  15. 快速寻找研究方向+发文章的方法!!按头安利!
  16. Qt学习笔记--文件读写(QFile、QDataStream、QTextStream)
  17. 新零售系统mysql设计(评价表)
  18. php语言缺点,php语言优缺点分析
  19. 键盘上一些常用按键的ASCII码值
  20. java后台判断请求来自移动端访问还是PC端访问

热门文章

  1. golang 单点登录系统(go-sso)
  2. 利用 Web Share API 将网页分享到 App(上)
  3. 使用telnet登录服务器
  4. VS插件Reshaper使用教程,超级好用
  5. Spring源码解析三
  6. java button和jbutton_java – JButton中的组合与继承
  7. 百度网盘秒传链接生成及提取方法
  8. Caused by: java.io.IOException: On-disk size without header provided is 6, but block header contains
  9. seafile 部署_seafile服务端的搭建
  10. 30岁改行学python_我30岁了,转行学编程可以吗? 排除法告诉你答案