Servlet与过滤器

1.Servlet做了什么

本身不做业务处理,只是接受请求并决定电泳·调用哪个JavaBean去处理请求

确定用哪个页面来显示处理返回的数据

2.Servlet是什么

Servlet+Applet,服务器端的Java应用程序

只有服务器端的应用程序使用了Servlet API的时候,这个服务端的程序才能称为Servate

3.Servate API

1、javax.servlet.Servlet接口:基础接口,所有实现类的方法集

2、javax.servlet.GenericServlet:是Servlet的通用版本,与协议无关的Servlet

4.创建Servlet创建方式

创建类实现javax.servlet.Servlet接口

创建类继承javax.servlet.GenericServlet类

创建类继承javax.servlet.http.HttpServlet类

5.Servlet的主要方法

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

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

destroy()Servlet对象不再使用时调用,仅执行一次

6.ServletRequest

相当于JSP内置对象request

7.ServletResponse

相当response

8.ServletConfig

包含Servlet的初始化参数信息

9.Servlet生命周期

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

10.Servlet部署运行

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

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

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

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

通过URL访问Servlet

配置<servlet>元素

<servlet>

<servlet-name>myServlet3</servlet-name>

<servlet-class>demo.web.servlet.MyServlet3</servlet-class>

</servlet>

配置<servlet-mapping>元素

<servlet-mapping>

<servlet-name>myServlet3</servlet-name>

<url-pattern>/myServlet3</url-pattern>

</servlet-mapping>

12.初始化参数设置

配置<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);

}

13.MVC

14.过滤器

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

统一处理请求和响应

15.配置过滤器的初始化参数

配置<init-param>元素

<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");

}

16.多个过滤器会形成过滤链

17.EL表达式

${EL表达式}

操作符'.' 获取对象的属性

\] 获取对象的属性 ${news\["title"\]} 获取集合中的对象,例如:${newsList\[0\]} 18.访问作用域 request.setAttribute("news", news); 两种方式取数据: 使用Java小脚本:request.getAttribute("news"); 使用EL表达式: ${ news } 或者 ${ requestScope.news } |-----------|----------------------------------------------------------|-----------------------------------------------| | **作用域** | **Java****代码取值** | **EL****取值** | | **请求作用域** | **request.****getAttribute****("news");** | **${****request****Scope****.news****}** | | **会话作用域** | **session.****getAttribute****("username");** | **${****session****Scope.****username****}** | | **程序作用域** | **application.****getAttribute****("count");** | **${****application****Scope****.count****}** | | **页面作用域** | **pageContext.****getAttribute****("****userNum****");** | **${****page****Scope****.userNum****}** | 19.JSTL JSP标准标签库 实现JSP页面中的逻辑控制 20.JSTL使用步骤 下载jstl.jar和standard包 下载jstl.jar和standard.jar包 http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 将这两个包复制到WEB-INF\\lib目录 在JSP页面中添加指令 21.JSTL标签分类 |------------------------|--------------------------------------------|------------------------| | **标签库名称** | **资源标示符(****uri****)** | **前缀(****prefix****)** | | **核心标签库** | **http://java.sun.com/jsp/jstl/core** | **c** | | **国际化****/****格式化标签库** | **http://java.sun.com/jsp/jstl/fmt** | **fmt** | | **XML****标签库** | **http://java.sun.com/jsp/jstl/xml** | **x** | | **数据库标签库** | **http://java.sun.com/jsp/jstl/sql** | **sql** | | **函数标签库** | **http://java.sun.com/jsp/jstl/functions** | **fn** | 22.JSTL标签 |-----------------------------------|------------------------------------------| | **标签名称** | **作用** | | **\** | **输出文本内容到****out****对象,常用于显示特殊字符,显示默认值** | | **\** | **在作用域中设置变量或对象属性的值** | | **\** | **在作用域中移除变量的值** | | **\** | **实现条件判断结构** | | **\** | **实现循环结构** | | **\** | **构造****url****地址** | | **\** | **在****url****后附加参数** | | **\** | **在页面中嵌入另一个资源内容** | | **\<****fmt:formatDate****/\>** | **格式化时间** | | **\<****fmt:formatNumber****/\>** | **格式化数字** | \ \ \ \ ...... \ \ ...... \ \ \ \ \

相关推荐
Light605 分钟前
破局“数据孤岛”:构建业务、财务、指标三位一体的智能数据模型
java·大数据·开发语言
中文很快乐6 分钟前
从零到一:用 SpringBoot 打造 RESTful API 实战指南
java·spring boot·后端·restful
泉城老铁7 分钟前
springboot+redis 如何实现订单的过期
java·后端·架构
guygg887 分钟前
基于Matlab的压缩感知信道估计算法实现
开发语言·算法·matlab
哈哈哈笑什么11 分钟前
在高并发分布式SpringCloud系统中,什么时候时候并行查询,提高查询接口效率,从10s到100ms
java·分布式·后端
IMPYLH12 分钟前
Lua 的 warn 函数
java·开发语言·笔记·junit·lua
泉城老铁14 分钟前
如何用Spring Boot实现分布式锁?
java·redis·后端
周杰伦_Jay22 分钟前
【Java集合与线程池深度解析】底层原理+实战选型+避坑指南(附代码)
java·开发语言·python
老王头的笔记25 分钟前
Spring支持的消费器模式,支持在当前事务提交、或回滚的前、后执行业务操作
java·windows·spring
努力学习的少女26 分钟前
对SparkRDD的认识
开发语言·前端·javascript