没有合适的资源?快使用搜索试试~ 我知道了~
15_尚硅谷_Filter过滤器_王振国 - 课堂笔记1
需积分: 0 1 下载量 44 浏览量
2022-08-04
00:32:48
上传
评论
收藏 912KB PDF 举报
温馨提示
试读
17页
1、Filter 什么是过滤器 3、Filter 过滤器它的作用是:拦截请求,过滤响应 1、权限检查 2、日记操作 3、事务管理 1、编写一个类去实现 Filt
资源推荐
资源详情
资源评论
15-Filter 过滤器
讲师:王振国
今日任务
1、Filter 什么是过滤器
1、Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器
2、Filter 过滤器它是 JavaEE 的规范。也就是接口
3、Filter 过滤器它的作用是:拦截请求,过滤响应。
拦截请求常见的应用场景有:
1、权限检查
2、日记操作
3、事务管理
……等等
2、Filter 的初体验
要求:在你的
web
工程下,有一个
admin
目录。这个
admin
目录下的所有资源(
html
页面、
jpg
图片、
jsp
文件、等等)都必
须是用户登录之后才允许访问。
思考:根据之前我们学过内容。我们知道,用户登录之后都会把用户登录的信息保存到
Session
域中。所以要检查用户是否
登录,可以判断
Session
中否包含有用户登录的信息即可!!!
<%
Object user = session.getAttribute("user");
//
如果等于
null
,说明还没有登录
if (user == null) {
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
%>
Filter
的工作流程图:
Filter
的代码:
public class AdminFilter implements Filter {
/**
* doFilter
方法,专门用于拦截请求。可以做权限检查
*/
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain
filterChain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpSession session = httpServletRequest.getSession();
Object user = session.getAttribute("user");
//
如果等于
null
,说明还没有登录
if (user == null) {
servletRequest.getRequestDispatcher("/login.jsp").forward(servletRequest,servletResponse);
return;
} else {
//
让程序继续往下访问用户的目标资源
filterChain.doFilter(servletRequest,servletResponse);
}
}
}
web.xml
中的配置:
<!--filter
标签用于配置一个
Filter
过滤器
-->
<filter>
<!--
给
filter
起一个别名
-->
<filter-name>AdminFilter</filter-name>
<!--
配置
filter
的全类名
-->
<filter-class>com.atguigu.filter.AdminFilter</filter-class>
</filter>
<!--filter-mapping
配置
Filter
过滤器的拦截路径
-->
<filter-mapping>
<!--filter-name
表示当前的拦截路径给哪个
filter
使用
-->
<filter-name>AdminFilter</filter-name>
<!--url-pattern
配置拦截路径
/
表示请求地址为:
http://ip:port/
工程路径
/
映射到
IDEA
的
web
目录
/admin/*
表示请求地址为:
http://ip:port/
工程路径
/admin/*
-->
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
Filter
过滤器的使用步骤:
1
、编写一个类去实现
Filter
接口
2
、实现过滤方法
doFilter()
3
、到
web.xml
中去配置
Filter
的拦截路径
完整的用户登录
login.jsp 页面 == 登录表单
这是登录页面。login.jsp 页面 <br>
<form action="http://localhost:8080/15_filter/loginServlet" method="get">
用户名:<input type="text" name="username"/> <br>
密 码:<input type="password" name="password"/> <br>
<input type="submit" />
</form>
LoginServlet
程序
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException {
resp.setContentType("text/html; charset=UTF-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
if ("wzg168".equals(username) && "123456".equals(password)) {
req.getSession().setAttribute("user",username);
resp.getWriter().write("登录 成功!!!");
} else {
req.getRequestDispatcher("/login.jsp").forward(req,resp);
}
}
}
剩余16页未读,继续阅读
资源评论
扈涧盛
- 粉丝: 24
- 资源: 319
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功