总结
其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。
这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来
目录:
部分内容截图:
2、等待一段时间(30分钟)
3、调用session对象invalidate方法
/**
-
关闭Session的Serlvet
-
@author xray
*/
@WebServlet(“/close.do”)
public class CloseSessionServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//关闭Session
req.getSession().invalidate();
}
}
页面
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
当前网站人数:${count}
=================================================================
可以对Web项目的各种资源进行过滤(页面、Servlet、图片、文件),也可以在网站资源进行请求和响应时,完成一些通用的功能。
如:每个Servlet都需要设置请求和响应的编码,可以把设置编码放到过滤器中,每个Servlet经过过滤器就完成编码设置工作。
过滤器的使用:
项目中可以创建多个过滤器,项目的资源可能会经过多个过滤器,多个过滤器就形成过滤器链。
实现步骤:
- 实现Filter接口
方法:
-
init 初始化
-
destroy 销毁
-
doFilter 过滤资源
doFilter的参数:
-
ServletRequest 请求对象
-
ServletResponse 响应对象
-
FilterChain 过滤器链
调用doFilter方法,对请求放行,不调用就拦截了
- 注册
- web.xml注册
Filter1
com.qianfeng.java34.Filter1
Filter1
/test.jsp
如果要过滤所有资源:url-pattern设置为/*
过滤部分资源:/资源名,/资源名。。。
- 注解注册
@WebFilter({“/*”})
@WebFilter({“/login.do”,“/register.do”})
案例:实现用户的登陆验证
1、添加过滤器过滤Web资源(除了login.jsp\login.do)
2、在过滤器中,判断Session中是否存在User对象
如果存在,就执行后面的操作
如果不存在,就跳转到login.jsp页面
3、在登陆成功后,将User对象存在Session中
/**
- 用户登录验证的过滤器
*/
public class UserLoginFilter implements Filter{
public static final String[] NO_FILTER_URLS =
{“/login.jsp”,“/login.do”,“/code.do”};
@Override
public void destroy() {}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
MyLogger logger = new MyLogger(UserLoginFilter.class);
//获得Session对象
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
//判断如果是不拦截的URL,就放行
String url = request.getRequestURL().toString();
for(String surl : NO_FILTER_URLS){
if(url.endsWith(surl)){
chain.doFilter(req, resp);
logger.info(“不过滤URL:”+url);
return;
}
}
logger.info(“过滤URL:”+url);
//获得User对象
HttpSession session = request.getSession();
User user = (User) session.getAttribute(“user”);
//判断User对象为null,重定向到login.jsp页面
if(user == null){
logger.info(“当前URL没有登陆:”+url);
response.sendRedirect(“login.jsp”);
}else{
logger.info(“当前URL已经登陆:”+url);
//如果不为null,跳转到后面页面
chain.doFilter(req, resp);
}
}
最后
ain.doFilter(req, resp);
}
}
最后
[外链图片转存中…(img-H7nawAto-1715631293949)]