一、分IP统计网站的访问次数
IP | count |
---|
192.168.1.111 | 2 |
192.168.1.112 | 32 |
- 统计工作需要在所有资源之前都执行,那么就可以放到Filter中了。
- 这个过滤器不打算做拦截操作,因为这是要做统计的。
- 用什么东西来装载统计的数据:Map<String,Integer>
- 整个网站只需要一个Map
- Map什么时候创建?(使用ServletContextListener,在服务器启动时完成创建,并保存到ServletContext中),Map保存到哪里?(保存到ServletContext中)
- Map需要在Filter中来保存数据。
- Map需要在页面中使用,打印Map中的数据。
二、粗粒度权限控制(拦截是否登录,拦截用户名admin权限)
细粒度权限控制:RBAC-->基于角色的权限控制
tb_user
tb_role
tb_userrole
tb_menu(增、删、改、查)
tb_rolemenu
三、解决全站字符乱码问题(POST和GET中文编码问题)
servlet:
POST:request.setCharacterEncoding("utf-8")
GET:
String username = request.getParameter("username")
username = new String(username.getBytes("IOS-8859-1"),"UTF-8");
响应的乱码问题:
response.setContextType("text/html;charset=utf-8")
四、页面静态化
1.第一步:
写一个小项目,图书管理
页面:
jsp:link.jsp
链接页面,四个超链接:
查询所有
查看SE分类
查看EE分类
查看框架分类
show.jsp
显示查询结果
------------------
Servlet:
BookServlet
findAll() -->查看所有图书
findByCategory() -->按分类进行查询
--
BookService:略
--
BookDao:
List<Book> findAll()
List<Book> findByCategory(int category)
--
Domain:Book类
2.第二步:什么是页面静态化
首次访问去数据库获取数据,然后把数据存储到一个html页面中
二次访问,就不再去数据库获取了,而是直接显示html
-----------------
图书管理
--
页面静态化
1.目标
给出一个过滤器,把servlet请求的资源所做输出保存到html中,重定向到html页面。二次访问时,这个html已经存在,那么直接重定向,不用再去访问servlet。