servlet+过滤器+监视器

目录

说明

servlet+过滤器+监视器

配置文件web.xml

代码片.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">
	<display-name>Servlet</display-name>

	<!-- servlet -->
	<servlet>
		<servlet-name>aaa</servlet-name>
		<servlet-class>com.aaa</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>aaa</servlet-name>
		<!-- 访问路径 -->
		<url-pattern>/com/aaa</url-pattern>
	</servlet-mapping>

	<!-- 过滤器 -->
	<filter>
		<filter-name>bbb</filter-name>
		<filter-class>com.bbb</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>bbb</filter-name>
		<servlet-name>com.aaa</servlet-name>
		<url-pattern>/log.jsp,/below.jsp</url-pattern>
		<!-- 过滤类型,重定向 -->
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>

	<!-- 监视器 -->
	<listener>
		<listener-class>com.ccc</listener-class>
	</listener>

	<!-- 无反应时,session销毁时间:1分钟后 -->
	<session-config>
		<session-timeout>1</session-timeout>
	</session-config>
</web-app>

注解方式的servlet aaa

继承HttpServlet,代码片.

package com;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet(
		name = "aaa", //Servlet名
		urlPatterns = { "/com/aaa" }, //请求路径
		initParams = { //常量
				@WebInitParam(name = "aaa", value = "123"),
				@WebInitParam(name = "bbb", value = "456") })
public class aaa extends HttpServlet {
	private static final long serialVersionUID = 1L;
	String aaa;
	String bbb;

	// 初始化方法
	@Override
	public void init(ServletConfig config) throws ServletException {
		this.aaa = config.getInitParameter("aaa");
		this.bbb = config.getInitParameter("aaa");
		super.init(config);
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		PrintWriter out = response.getWriter();
		out.println("xxxx");
		
		HttpSession session = request.getSession();
		
		//获取复选框的值
		String[] strings=request.getParameterValues("Check_box");
		
		System.out.println("aaa=" + aaa + ";bbb=" + bbb);
		System.out.println(request.getRequestURL());// 输出请求的url
		//转发
		request.getRequestDispatcher("hello.jsp").forward(request, response);
		//重定向
		response.sendRedirect("hello.jsp");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	}

	// 销毁方法
	@Override
	public void destroy() {
		super.destroy();
	}
}

注解方式过滤器bbb

实现接口Filter ,代码片.

package com;

import java.io.IOException;

import javax.servlet.DispatcherType;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;

@WebFilter(filterName = "bbb", // 拦截器名
		urlPatterns = { "/log.jsp", "/below.jsp" }, // 拦截的客户端请求
		servletNames = { "aaa" }, // 拦截的servlet名
		dispatcherTypes = { DispatcherType.REQUEST }// 拦截的类型,重定向
)
public class bbb implements Filter {

	//初始化方法
	public void init(FilterConfig fConfig) throws ServletException {

	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		
		System.out.println("这是过滤器" + ((HttpServletRequest) request).getRequestURI());
		chain.doFilter(request, response);//执行请求
	}

	//销毁方法
	public void destroy() {

	}
}

说明:

提醒:

注解方式监视器ccc

实现xxxxListener接口,有三组7个,代码片.

package com;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;

//监视器-监视session的属性的创建,销毁,修改
@WebListener
public class ccc implements HttpSessionAttributeListener {
    public ccc() {  	
    }
    public void attributeAdded(HttpSessionBindingEvent arg0)  { 
    	System.out.println("这是session监视器,在session中添加了新的属性了");
    }

    public void attributeRemoved(HttpSessionBindingEvent arg0)  {
    	System.out.println("这是session监视器,在session中删除了属性了");
    }

    public void attributeReplaced(HttpSessionBindingEvent arg0)  { 
    	System.out.println("这是session监视器,在session中修改了属性了");
    }
	
}

创建,删除,修改属性

代码片.

<%
//创建属性
request.setAttribute("ccc", "123");
//删除属性
request.removeAttribute("ccc");
//修改属性
request.setAttribute("ccc", "456");
%>

总结

	1. 有注解和配置两种方式
	2. 操作8大内置对象
**引用包是最大的困难(一步一步来)**
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值