JavaEE学习笔记之JSP+Servlet(二)

本文详细介绍了 Java EE 中的 Servlet 过滤器的概念、实现及应用,通过具体示例展示了如何使用 LoginFilter 类实现登录过滤功能,确保用户在访问特定页面前完成登录验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Servlet过滤器

过滤器是进行过滤预处理的装置。

Servlet过滤器是一种特殊的Servlet,可以对用户的请求信息和响应信息进行过滤,当访问Servlet过滤器对应的Servlet时,会先执行Servlet过滤器,对请求和响应的信息进行过滤。

Servlet过滤器类需要实现javax.servlet.Filter接口,同时需要继承HttpServlet类。接口中的方法如下:

init(FilterConfig):初始化方法,完成Servlet过滤器类的初始化。

doFilter(ServletRequest, ServletResponse,FilterChain):完成过滤操作。

destory():销毁过滤器。

二、Demo

过滤器LoginFilter类实现登录时的过滤,如果帐号或密码为空的话,则不防问Login.java。该例子接上一篇:JavaEE学习笔记之JSP+Servlet(一)

在上一个工程中,建一个LoginFilter类,实现过滤功能。源代码如下:

package edu.cn.filters; import java.io.IOException; import java.io.PrintWriter; 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.http.HttpServlet; public class LoginFilter extends HttpServlet implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterchain) throws IOException, ServletException { String username = request.getParameter("username"); String password = request.getParameter("password"); if(username.length()==0||password.length()==0){ //设定response返回的编码 response.setContentType("text/html;charset=gb2312"); try{ PrintWriter out = response.getWriter(); out.print("用户名或口令为空,请"); out.print("<a href='Login.jsp'>"); out.print("重新登录"); out.print("</a>!"); out.flush(); return; }catch(Exception e){ } } try{ filterchain.doFilter(request, response); }catch(Exception e){ } } public void init(FilterConfig config) throws ServletException { } }

还需要在配置文件中配置过滤器,此时的配置文件内容为

<?xml version="1.0" encoding="GB2312"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>Login</servlet-name> <servlet-class>edu.cn.servlets.Login</servlet-class> </servlet> <servlet-mapping> <servlet-name>Login</servlet-name> <url-pattern>/Login</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>Login.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>LoginFilter</filter-name> <filter-class>edu.cn.filters.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/Login</url-pattern> </filter-mapping> </web-app>

其中红色的为配置过滤器的代码。

转载请注明出处:http://blog.youkuaiyun.com/ljp2009012843/article/details/7590813

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值