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

相关推荐
n33(NK)1 小时前
【算法基础】冒泡排序算法 - JAVA
java·算法·排序算法
小园子的小菜1 小时前
探索 Disruptor:高性能并发框架的奥秘
java
让我们一起加油好吗2 小时前
【C++】类和对象(中)——默认成员函数详解(万字)
开发语言·c++·visualstudio·类和对象
珊瑚里的鱼3 小时前
牛客网题解 | 栈的压入、弹出序列
开发语言·c++·笔记·算法·leetcode·stl
永远的元子5 小时前
CH592/CH582 触摸按键应用开发实例讲解
c语言·开发语言
hrrrrb5 小时前
【Rust】所有权
开发语言·后端·rust
碎梦归途5 小时前
23种设计模式-行为型模式之状态模式(Java版本)
java·jvm·设计模式·状态模式·软考·软件设计师·行为模式
真正的醒悟6 小时前
IRF2.0&&IRF3.1
开发语言·网络·php
chuxinweihui6 小时前
初识c++
开发语言·c++·学习
豆沙沙包?6 小时前
2025年- H16-Lc124-169.多数元素(技巧)---java版
java·开发语言