代码编织梦想

一、要求

已知有一个名为MyServlet的程序,程序可向浏览器输出“Hello MyServlet”。请编写一个用于拦截MyServlet程序的MyFilter拦截器。

要求如下:

编写名为MyFilter的过滤器,配置MyFilter对MyServlet的拦截。

过滤器可向浏览器输出“Hello MyFilter”。

二、实现

 MyServlet.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet(name = "MyServlet", urlPatterns = "/MyServlet")
public class MyServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("Hello MyServlet ");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

MyFilter.java

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
import java.io.PrintWriter;

@WebFilter(filterName = "MyFilter", urlPatterns = "/*")
public class MyFilter implements Filter {
    public void destroy() {
        // 过滤器对象在销毁时自动调用,释放资源
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // 用于拦截用户的请求,如果和当前过滤器的拦截路径匹配,该方法会被调用
        PrintWriter out = response.getWriter();
        out.write("Hello MyFilter");
    }

    public void init(FilterConfig fConfig) throws ServletException {
        // 过滤器对象在初始化时调用,可以配置一些初始化参数
    }
}

三、结果 

访问MyServlet,注意访问路径,一定要和@WebServlet中设置的urlPatterns路径保持一致,且urlPatterns路径中一定要带有斜杠 

可知浏览器未输出 HelloMySevlet输出 HelloMyFilter

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_57342311/article/details/127992196

servlet 是线程安全的吗?_汲建帅的博客-爱代码爱编程_servlet 是线程安全的吗

概要 Servlet 默认是单例模式,在web 容器中只创建一个实例,所以多个线程同时访问servlet的时候,Servlet是线程不安全的。 那么 web 容器能为每个请求创建一个Servlet的实例吗?当然是可以的,

servlet线程安全问题_杨晓辉!的博客-爱代码爱编程_servlet线程安全问题

什么是线程安全? 如果你的代码是所在的进程有多个线程同时运行,而这些线程会同时运用这个代码,如果每次运行的结果和单线程运行的结果是一样的。那么也就是说你的线程是安全的。 比如:买火车票的时候,孙悟空,猪八戒,唐三藏,他们三个人同时进入12306买车票,他们同时操作的代码是一样的。但是都可以买到票。互不干扰,这说明线程是安全的。 servlet是怎样存

servlet的线程安全_iteye_6233的博客-爱代码爱编程

Servlet的多线程机制   1. 变量的线性安全:这里的变量指字段和共享数据(如表单参数值)。 将参数变量本地化。多线程并不共享局部变量,所以要尽可能地在servlet中使用局部变量。例如:String user=request.getParameter("user");使用同步块Synchronized,防止可能异步调用的代码块,这就意味

servlet中dopost()和doget() _sublimefly的博客-爱代码爱编程

一般来说我们是用不到doGet方法的,doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全。而且doGet方法只能提交256个字符(1024字节),而doPost没有限制,因为get方式数据的传输载体是URL(提交方式能form,也能任意的URL链接),而POST是HTTP头键值对(只能以form方式提交)。通常我们使用的都是doPost方

java web-servlet技术-servlet基础与doget()方法dopost()方法辨析_scarlett·s的博客-爱代码爱编程

servlet工作原理 创建一个简单的servlet项目,实现验证用户登录 1.创建一个Dynamic Web Project,取名为myservlet 2.创建一个myservlet的package,在package中创建一个名字为LoginServlet的servlet文件,默认勾选doget()和dopo

Servlet的线程安全问题-爱代码爱编程

本篇供个人学习使用,有问题欢迎讨论 Servlet的线程安全问题 ​ Servlet 是在单例多线程环境下运行的。其运行可能会出现线程安全问题 一、线程安全问题 1、什么是线程安全问题 同时满足以下两个条件,则会出现线程安全问题: (1)存在多线程并发访问 (2)存在可修改的共享数据 当多个线程同时修改同一个共享数据时,后修改的数据会将先修

Servlet 有关线程安全的问题及解决方式-爱代码爱编程

Servlet的线程安全 由于 Servlet 采用的是单例模式,也就是整个应用中只有一个实例对象。所以我们需要分析这个唯一的实例对象中的类成员是否线程安全 模拟用户登录功能来查看 Servlet 线程是否安全 结论:一个浏览器代表一个线程,多个浏览器代表多个线程。按理说我们期望的应该是每个浏览器查看的都应该是自己的用户名。而现在的结果是浏览器中数

servlet模板-爱代码爱编程

package ${enclosing_package}; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletReques

javaweb — 谈一谈Servlet线程安全问题-爱代码爱编程

前言 前面说了很多关于Servlet的一些基础知识,这一篇主要说一下关于Servlet的线程安全问题。 1:多线程的Servlet模型 要想弄清Servlet线程安全我们必须先要明白Servlet实例是如何创建,它的模式是什么样的。 在默认的情况下Servlet容器对声明的Servlet,只创建一个Servlet实例,那么如果要是多个客户同时请求访

java dopost_Servlet中的doPost方法(第十九周)-爱代码爱编程

Servlet中的doPost方法 本周学的东西本身就不多,对于概括性较强的篇幅而言,写一篇博文以完全足矣,但是,没有办法,本部要求(也许是学校的要求)每周学了五天就必须得写五篇,这条规定显得在写博文时相当牵强,也相当机械。说老实话,写这个博文对我而言根本没有任何帮助,如果是从便于以后复习的出发点来考虑的话是不实际的,我的电脑是单机版的,没法联网,总

IDEA中配置tomcat和servlet(保姆式教程)-爱代码爱编程

1.首先创建一个新Java模块   2.给Java模块添加框架支持  勾选web应用程序,创建web.xml文件  3.然后会发现Java模块下多出个web目录,接下来就是配置tomcat,点击箭头指的地方,添加配置  点击+号,找到tomcat服务器,注意不是tomEE,然后选择本地 

Servlet 的线程安全问题-爱代码爱编程

Servlet 的线程安全问题 在 Servlet 中使用的是多线程方式来执行 service()方法处理请求,所以我们在使用 Servlet 时需要考虑到线程安全问题,在多线程中对于对象中的成员变量是最不安全的,所以不要在 Servlet 中通过成员变量的方式来存放数据,如果一定要使用成员变量存储数据,在对数据 进行操作时需要使用线程同步的方式来解决

Servlet 基本使用(系统登录页面的创建)-爱代码爱编程

Servlet 基本使用 一、创建一个项目的步骤①login.jsp代码:②index.jsp代码:③创建一个LoginServlet的java文件二、相关的资源参数配置①Tomcat资源配置②Servlet 的配置包含在 web.xml文件中,主要通过以下两步进行设置。三、运行的测试阶段①加载Tomcat服务②密码不正确的情况下③账号密码都正确的