JavaWeb学习之路(五)——MVC、过滤器、监听器
本文发布于1382 天前,最后更新于707天前,其中的信息可能已经有所发展或是发生改变。

MVC三层架构

  • Model 模型
  • 业务处理:业务逻辑(Service)
  • 数据持久层:CRUD(Dao)
  • View 视图
  • 展示数据
  • 提供链接发起Servl请求
  • Controller 控制器
  • 接收用户的请求
  • 交给业务层处理对应的代码
  • 控制视图的转跳

Servlet专注于处理请求和控制视图跳转,JSP专注于显示数据

过滤器(重点)

用来过滤网站的数据

开发流程

  • 导包
  • 编写过滤器编写
  • 修改web.xml

编码错误

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("你好呀,世界");
    }

添加过滤器

<filter>
    <filter-name>filter1</filter-name>
    <filter-class>top.huii.filter.Filter1</filter-class>
</filter>
<filter-mapping>
    <filter-name>filter1</filter-name>
    <url-pattern>/fi/*</url-pattern>
</filter-mapping>
package top.huii.filter;

import javax.servlet.*;
import java.io.IOException;

public class Filter1 implements Filter {
//    初始化
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=UTF-8");
        System.out.println("执行前");
        filterChain.doFilter(servletRequest, servletResponse);  //让请求继续走,交给下一个过滤器
        System.out.println("执行后");
    }

//    销毁
    @Override
    public void destroy() {

    }
}

可用作权限拦截等功能。

监听器

实现监听器的接口

web.xml配置

<listener>
    <listener-class>top.huii.listener.Listener</listener-class>
</listener>
package top.huii.listener;

import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class Listener implements HttpSessionListener {
    @Override
//    一旦创建session,就触发
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
        HttpSession session = httpSessionEvent.getSession();
        Integer count = (Integer) session.getAttribute("count");
        if (count == null){
            count = new Integer(0);
        } else {
            int c = count.intValue();
            count = new Integer(c + 1);
        }
        System.out.println(count);
        session.setAttribute("count", count);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {

    }
}
本文作者: HUII
本文链接: https://www.huii.top/1846.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自飞一网 !部分图片来源见水印或引用。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇