首页 > 其他分享 >jstl

jstl

时间:2023-01-10 00:01:02浏览次数:35  
标签:void onlineCount filter jstl Override response public

一. MVC

  • 模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
  • 视图(View) - 界面设计人员进行图形界面设计。
  • 控制器(Controller)- 负责转发请求,对请求进行处理。
  • servlet
    • 接收用户请求
    • 视图跳转
  • JSP
    • 显示数据
    • 提供用户操作

二. Filter(过滤器

过滤器

  • 处理垃圾请求
  • 解决乱码问题
1. filter代码

测试解决乱码问题

public class CharacterEncodingFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("filter初始化");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8");

        System.out.println("执行前");
        chain.doFilter(request,response);
        System.out.println("执行后");

    }

    @Override
    public void destroy() {
        System.out.println("filter销毁");
    }
}
2. Servlet代码
public class Servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("你好");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }
}
3. web.xml
    <servlet>
        <servlet-name>Servlet</servlet-name>
        <servlet-class>com.yorha.servlet.Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet</servlet-name>
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>Servlet01</servlet-name>
        <servlet-class>com.yorha.servlet.Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet01</servlet-name>
        <url-pattern>/servlet/show</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>filter</filter-name>
        <filter-class>com.yorha.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>filter</filter-name>
        <url-pattern>/servlet/show</url-pattern>
    </filter-mapping>
4. 运行

未经过filter前

输出

调用filter

5. 关闭服务器

三. 监听器

listener读取Session消息

读取当前项目访问人数,局限:未添加手动销毁

1. listener代码
public class Listener implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        ServletContext servletContext = se.getSession().getServletContext();

        Integer onlineCount = (Integer) servletContext.getAttribute("OnlineCount");

        if (onlineCount == null){
            onlineCount = 1;
        }else {
            int count = onlineCount;
            onlineCount = count+1;
        }
        servletContext.setAttribute("OnlineCount",onlineCount);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        ServletContext servletContext = se.getSession().getServletContext();

        Integer onlineCount = (Integer) servletContext.getAttribute("OnlineCount");

        if (onlineCount == null){
            onlineCount = 0;
        }else {
            int count = onlineCount;
            onlineCount = count-1;
        }
        servletContext.setAttribute("OnlineCount",onlineCount);
    }
}
2. jsp代码
<h3><%=this.getServletConfig().getServletContext().getAttribute("OnlineCount")%></h3>
3. web.xml
<listener>
    <listener-class>com.yorha.listener.Listener</listener-class>
</listener>
4. 运行

初始有三个session,一个可能是浏览器打开时自带,然后一个是此项目

此时清空session

刷新当前页面

OnlineCount的值就变为了四个

标签:void,onlineCount,filter,jstl,Override,response,public
From: https://www.cnblogs.com/yorha/p/17038911.html

相关文章

  • JSTL标签
    文章目录​​一.概念​​​​二.下载使用​​​​三.jsp页面中使用jstl标签​​​​四.核心标签库中常用标签:​​​​1.代码演示​​一.概念JSTL(JavaServerPagesSta......
  • JSTL的练习以及三层架构
    JSTL的练习需求:在request域中有一个村有User对象的List集合,需要使用jstl+el将list集合数据展示到jsp页面的表格table中<%@pageimport="java.util.List"%><%@pagei......
  • JSTL的常用标签choose和foreach
    JSTL的常用标签choosec:choose标签:<%@pagecontentType="text/html;charset=UTF-8"language="java"%><%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/co......
  • JSTL概述以及JSTL中的if标签
    JSTL概述1.概念:JavaServer Pages TagLibraryJSP标准标签库是由Apache组织提供的开源的免费的jsp标签2.作用:用于简化和替换jsp页面上的java代码3.使用步骤:......
  • JSTL-常用标签-if、choose、foreach
    JSTL-常用标签-ifif:相当于java代码的if语句1.属性:test必须属性,接受boolean表达式如果表达式为true,则显示if标签体内容,如果为false,则不显示标签......
  • JSTL练习
    JSTL练习需求:在request域中有一个存有User对象的List集合。需要使用jstl+el将list集合数据展示到jsp页面的表格table中<%@pageimport="cn.itcast.domain.User"%><%@......
  • EL-empty运算符&隐式对象pageContext、JSTL概述
    EL-empty运算符空运算符:empty功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0${emptylist}:判断字符串、集合、数组对象是否为null或者长度为0......
  • jsp页面通过JSTL表达式获取session中存储的对象的属性
    1.将user对象存入session  request.getSession().setAttribute("user",userSession);2.User类 publicclassUser{privateStringuserId;privateStringuser......
  • jstl一些标签 中timestamp类型在页面去掉时分秒!
    <fmt:formatDatevalue='${vo.updateDate}'pattern='yyyy-MM-dd'/>  JSTL的ifelse:有c:if没有else的处理分类:JSP/JAVA/J2EE(11)作者同类文章X jstl的......
  • JSTL c标签,fn标签,fmt标签 - 生活在爪洼岛上
    jstl是sun定义的标准,由apache实现,所以要下载jar包的话去apache,要看api文档的话,去sun,API文档在此:​​http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html​......