当前位置: 首页 > news >正文

网站在互联网营销中的作用互联网相关网站

网站在互联网营销中的作用,互联网相关网站,外贸网站建设销售常用语,织梦网站图片移动Java-servlet(完结篇)过滤器乱码解决与监听器 前言一、过滤器乱码解决二、监听器1. HttpSessionListener2. ServletContextListener3. ServletRequestListener 三、监听器的使用场景Java-servlet 结语 前言 在之前的 Java Servlet 学习中,我…

Java-servlet(完结篇)过滤器乱码解决与监听器

  • 前言
  • 一、过滤器乱码解决
  • 二、监听器
    • 1. HttpSessionListener
    • 2. ServletContextListener
    • 3. ServletRequestListener
  • 三、监听器的使用场景
  • Java-servlet 结语


前言

  • 在之前的 Java Servlet 学习中,我们已经熟悉了 Servlet 的基础配置、生命周期、请求响应处理,以及 Java Servlet 环境的配置,还学习了过滤器、请求调度程序和 Servlet 线程等知识
  • 今天,我们继续深入探讨过滤器和监听器,这两个在 Java Web 开发中极为重要的部分

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Java-servlet文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12907265.html?spm=1001.2014.3001.5482


一、过滤器乱码解决

  • 在Web开发里,乱码问题常常让人头疼。
  • 不过,利用过滤器能有效解决这个问题。下面是一段解决乱码问题的过滤器代码:
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("执行了过滤器-FilterDemo3");// 先让请求通过过滤器链,处理后续的过滤器或目标资源filterChain.doFilter(servletRequest, servletResponse);// 设置响应内容类型为HTML,字符编码为UTF-8servletResponse.setContentType("text/html;charset=utf-8");// 将ServletRequest强转为HttpServletRequest,方便后续操作HttpServletRequest request = (HttpServletRequest) servletRequest;// 再次通过过滤器链,保证请求和响应都得到完整处理filterChain.doFilter(servletRequest, servletResponse);
}
  • 这段代码的过滤器,先让请求在过滤器链中传递,然后设置响应编码为UTF - 8,避免响应内容出现乱码
  • 同时,再次调用过滤器链,确保整个请求和响应过程的完整性。

二、监听器

  • 监听器是Servlet规范里的重要组件,能监听Web应用中的各种事件,并在事件发生时执行相应操作。
  • 监听器有23种模式,下面介绍几种常用的监听器。

1. HttpSessionListener

用于监听HttpSession的创建和销毁事件。代码示例如下:

package javax.servlet.http;
import java.util.EventListener;
// HttpSessionListener继承自EventListener
public interface HttpSessionListener extends EventListener {// 当HttpSession创建时调用此方法void sessionCreated(HttpSessionEvent var1);// 当HttpSession销毁时调用此方法void sessionDestroyed(HttpSessionEvent var1);
}

使用时,要在web.xml文件中注册监听器:

<listener><listener-class>listener.MySessionListener</listener-class>
</listener>

然后实现自定义的监听器类MySessionListener:

package listener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class MySessionListener implements HttpSessionListener {// 当HttpSession创建时,打印日志@Overridepublic void sessionCreated(HttpSessionEvent se) {System.out.println("session Created");}// 当HttpSession销毁时,打印日志@Overridepublic void sessionDestroyed(HttpSessionEvent se) {System.out.println("session Destroyed");}// 这里额外重写一个处理属性添加的方法,虽然接口未定义,但可按需添加处理逻辑@Overridepublic void attributeAdded(HttpSessionBindingEvent se) {System.out.println("attribute added");}
}

2. ServletContextListener

用于监听ServletContext的创建和销毁事件

  • ServletContext代表整个Web应用的上下文,通过它可以获取Web应用的初始化参数、共享资源等。示例代码如下:
package javax.servlet;
import java.util.EventListener;
public interface ServletContextListener extends EventListener {// 当ServletContext创建时调用此方法void contextInitialized(ServletContextEvent sce);// 当ServletContext销毁时调用此方法void contextDestroyed(ServletContextEvent sce);
}

在web.xml中注册:

<listener><listener-class>listener.MyServletContextListener</listener-class>
</listener>

实现自定义的监听器类:

package listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyServletContextListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {// 在Web应用启动时执行的操作,比如初始化数据库连接池System.out.println("ServletContext初始化了");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {// 在Web应用关闭时执行的操作,比如关闭数据库连接池System.out.println("ServletContext销毁了");}
}

3. ServletRequestListener

用于监听ServletRequest的创建和销毁事件。

  • ServletRequest代表客户端的一次请求,通过监听它的生命周期,可以在请求处理前后进行一些通用操作。示例代码如下:
package javax.servlet;
import java.util.EventListener;
public interface ServletRequestListener extends EventListener {// 当ServletRequest创建时调用此方法void requestInitialized(ServletRequestEvent sre);// 当ServletRequest销毁时调用此方法void requestDestroyed(ServletRequestEvent sre);
}

在web.xml中注册:

<listener><listener-class>listener.MyServletRequestListener</listener-class>
</listener>

实现自定义的监听器类:

package listener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
public class MyServletRequestListener implements ServletRequestListener {@Overridepublic void requestInitialized(ServletRequestEvent sre) {// 在请求开始处理时执行的操作,比如记录请求开始时间System.out.println("请求开始处理");}@Overridepublic void requestDestroyed(ServletRequestEvent sre) {// 在请求处理结束时执行的操作,比如记录请求处理时间System.out.println("请求处理结束");}
}

三、监听器的使用场景

  1. 统计在线用户数量:利用HttpSessionListener,在sessionCreated方法中让在线用户数加1,在sessionDestroyed方法中减1,从而实时统计在线用户数量。
  2. 记录用户登录和退出时间:在HttpSession创建时记录登录时间,销毁时记录退出时间,便于分析用户行为。
  3. 资源初始化和销毁:借助ServletContextListener,在Web应用启动时初始化全局资源,如数据库连接池;在应用关闭时释放资源,确保资源管理得当。
  4. 请求日志记录:通过ServletRequestListener,在请求开始和结束时记录日志,方便排查问题和监控系统运行状态。

Java-servlet 结语

  • 至此,Java Servlet 的入门讲解暂告一段落。通过这部分内容,我们已经搭建起 Web 开发的基础框架,理解了服务端与客户端交互的核心逻辑。

接下来,我们将深入探讨 JSP(Java 服务器页面)MySQL 数据库 的核心知识。

  • JSP 作为 Servlet 的延伸,能更便捷地实现动态页面渲染。

  • 而 MySQL 则是企业级应用中最常用的关系型数据库之一。

  • 三者结合(Servlet 处理请求逻辑、JSP 构建动态视图、MySQL 存储数据),将形成一套完整的 Web 后端开发体系——这正是支撑现代 Web 项目的“三板斧”

掌握这三项核心技术,不仅能为前端开发提供坚实的后端支持,更能让你在构建完整 Web 应用时游刃有余。无论是小型项目的快速落地,还是大型系统的架构设计,它们都是不可或缺的基石

后续课程中,我们将通过实战案例串联知识,帮助大家更好地理解和应用。

  • 期待与你继续探索,一起夯实 Web 开发的核心能力!

在这里插入图片描述
在这里插入图片描述


以上就是这篇博客的全部内容,接下来的博客里我们将陆续探索JSP与MySQL的更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Java-servlet文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12907265.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

http://www.dtcms.com/a/432265.html

相关文章:

  • Easyx使用(中篇)
  • 省品牌建设联合会网站平面设计图片创意手绘
  • 山西教育学会网站建设网站搭建推广优化
  • 移动端开发平台海南百度推广seo
  • 网站建设与维护的国家定价标准淄博专业网站建设公司
  • 网站设计用什么字体网站商城系统建设方案
  • 广东省农业农村厅彭彬湛江网站优化快速排名
  • 亚马逊品牌注册网站建设建设银行怎么从网站上改手机号码
  • 上海建站模板源码个人简历模板免费下
  • 现在c 做网站用什么软件vps安装wordpress
  • 中国移动深圳有限公司门户网站seo怎么做优化排名
  • 外国购物网站设计风格wordpress头部导航栏代码
  • 互联网金融p2p网站建设模板万装网装修平台
  • 做外单都有什么网站网站建公司简介
  • 正规网站制作全包企业网站如何去做优化
  • 太仓网站制作网站建设网站首页栏目设置
  • aspnet网站开发教程数据库常州快速建站模板
  • 【算法竞赛学习笔记】基础算法篇:递归再探
  • 杭州门户网站建设工信部网站备案怎么查询
  • 多线程环境下虚函数性能评估与优化指南
  • 高端网站设计欣赏视频门户网站建设服务器
  • 实用的LoRaWAN 应用层协议规范
  • 阿里云 建网站攻略做网站一屏一屏的
  • 沈阳营销型网站开发网站的流量怎么赚钱
  • 网站开发属于什么费用wordpress 文章循环
  • 音视频编解码全流程之用Extractor后Decodec
  • 03.动画眼睛跟随鼠标光标 | JavaScript 鼠标移动事件
  • 瑞安学校网站建设哈尔滨网站优化技术
  • 南和邢台网站制作色彩设计网站
  • tauri2使用fs的watch报错fs:watch “Command watch not found“