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****/\>** | **格式化数字** | \ \ \ \ ...... \ \ ...... \ \ \ \ \

相关推荐
Python×CATIA工业智造3 小时前
Frida RPC高级应用:动态模拟执行Android so文件实战指南
开发语言·python·pycharm
pianmian13 小时前
类(JavaBean类)和对象
java
我叫小白菜4 小时前
【Java_EE】单例模式、阻塞队列、线程池、定时器
java·开发语言
狐凄4 小时前
Python实例题:基于 Python 的简单聊天机器人
开发语言·python
Albert Edison4 小时前
【最新版】IntelliJ IDEA 2025 创建 SpringBoot 项目
java·spring boot·intellij-idea
超级小忍5 小时前
JVM 中的垃圾回收算法及垃圾回收器详解
java·jvm
weixin_446122465 小时前
JAVA内存区域划分
java·开发语言·redis
悦悦子a啊5 小时前
Python之--基本知识
开发语言·前端·python
勤奋的小王同学~5 小时前
(javaEE初阶)计算机是如何组成的:CPU基本工作流程 CPU介绍 CPU执行指令的流程 寄存器 程序 进程 进程控制块 线程 线程的执行
java·java-ee
TT哇5 小时前
JavaEE==网站开发
java·redis·java-ee