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

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

${ requestScope.news }

会话作用域

session.getAttribute("username");

${ sessionScope.username }

程序作用域

application.getAttribute("count");

${ applicationScope.count }

页面作用域

pageContext.getAttribute("userNum");

${ pageScope.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标签

标签名称

作用

<c:out />

输出文本内容到out对象,常用于显示特殊字符,显示默认值

<c:set/>

在作用域中设置变量或对象属性的值

<c:remove/>

在作用域中移除变量的值

<c:if/>

实现条件判断结构

<c:forEach/>

实现循环结构

<c:url/>

构造url地址

<c:param/>

url后附加参数

<c:import/>

在页面中嵌入另一个资源内容

<fmt:formatDate/>

格式化时间

<fmt:formatNumber/>

格式化数字

<c:out value="value" default="default" escapeXml="true|false" />

<c:set  var="name"  value= "value" scope="scope" />
<c:set value= "value" target="target" property="propertyName" />
<c:forEach var="varName" items="items" varStatus="varStatus">
     ……
</c:forEach>
<c:if test="condition" var="varName" scope="scope">
         ……
</c:if>
<c:url  value="url" />
<c:param name="name"  value="value"/>
<c:import url="URL" />
<fmt:formatDate  value="date"  pattern="yyyy-MM-dd HH:mm:ss"/>
 

相关推荐

  1. Servlet过滤器

    2024-03-10 15:26:05       34 阅读
  2. 解释Servlet过滤器的作用和用法

    2024-03-10 15:26:05       28 阅读
  3. <span style='color:red;'>Servlet</span>

    Servlet

    2024-03-10 15:26:05      45 阅读
  4. <span style='color:red;'>servlet</span>

    servlet

    2024-03-10 15:26:05      66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 15:26:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 15:26:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 15:26:05       87 阅读
  4. Python语言-面向对象

    2024-03-10 15:26:05       96 阅读

热门阅读

  1. Spark Executor decommission 原理分析

    2024-03-10 15:26:05       46 阅读
  2. hive中split函数相关总结

    2024-03-10 15:26:05       48 阅读
  3. Hive表使用ORC格式和SNAPPY压缩建表语句示例

    2024-03-10 15:26:05       47 阅读
  4. k8s中storageClass存储介绍

    2024-03-10 15:26:05       34 阅读
  5. ansible使用linefile批量修改网卡配置文件及host解析

    2024-03-10 15:26:05       36 阅读
  6. ansible

    2024-03-10 15:26:05       42 阅读
  7. 自动化运维工具----Ansible playbook详解

    2024-03-10 15:26:05       47 阅读
  8. 【学习心得】webpack技术在爬虫逆向中的应用

    2024-03-10 15:26:05       43 阅读
  9. 如何学习ChatGPT?从入门到精通(附资料下载)

    2024-03-10 15:26:05       126 阅读
  10. EF框架常见异常处理汇总

    2024-03-10 15:26:05       46 阅读
  11. L1-095 分寝室(PTA)

    2024-03-10 15:26:05       32 阅读