Java 웹 필터 및 리스너


머리말

提示:这里可以添加本文要记录的大概内容:

javaEE에는 세 가지 표준 구성 요소가 있습니다.

  1. 서블릿 구성요소
  2. 필터 성분(필터 성분)
  3. 리스너 구성 요소(리스너 구성 요소)

提示:以下是本篇文章正文内容,下面案例可供参考

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/s1")
public class Servlet1 extends HttpServlet{
    
    
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
    
		resp.setContentType("text/html;charset=utf8");
		PrintWriter writer = resp.getWriter();
		writer.print("<h1>第一个servlet</h1>");
		
	}
}

여기에 이미지 설명 삽입

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/s2")
public class Servlet2 extends HttpServlet{
    
    
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
    
		resp.setContentType("text/html;charset=utf8");
		PrintWriter writer = resp.getWriter();
		writer.print("<h1>第二个servlet</h1>");
		
	}
}

여기에 이미지 설명 삽입

필터 필터

package filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletResponse;
@WebFilter("/*")
public class WebHttpFilter implements Filter{
    
    

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
    
    
		// TODO 自动生成的方法存根
		System.out.println("请求已拦截");
	}
	
}

Tomcat을 다시 실행하고 브라우저를 새로 고칩니다. 브라우저에 큰 흰색 화면이 나타납니다.
여기에 이미지 설명 삽입

콘솔로 돌아가기: 요청이 차단되었습니다.
여기에 이미지 설명 삽입
출력 뒤에 다음 코드를 추가합니다.

chain.doFilter(request, response);

컨트롤은 요청이 차단되었음을 보여줍니다.
브라우저 출력:
여기에 이미지 설명 삽입
Servlet1 및 2에서 코드 삭제:

resp.setContentType("text/html;charset=utf8");

왜곡된 문자를 찾을 수 있습니다.
여기에 이미지 설명 삽입

그런 다음 WebHttpFilter의 출력 뒤에 다음 코드를 추가합니다.
이 매개 변수를 http 유형으로 강제 적용

		HttpServletResponse resp = (HttpServletResponse)response;
		resp.setContentType("text/html;charset=utf8");

여기에 이미지 설명 삽입

리스너 리스너

package listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class WebServerLisener implements ServletContextListener{
    
    
	@Override
	public void contextInitialized(ServletContextEvent sce) {
    
    
		System.out.println("监听到了服务器正在启动");
	}
}

여기에 이미지 설명 삽입

Je suppose que tu aimes

Origine blog.csdn.net/rej177/article/details/131753438
conseillé
Classement