1.JavaBean
实体类
JavaBean有特定的写法:
必须要有一个无参构造
属性必须私有化。
必须有对应的get/set方法
用来和数据库的字段做映射 ORM;
ORM:对象关系映射
表--->类
字段-->属性
行记录---->对象
2.<jsp:useBean 标签
3. MVC三层架构
4. Filter
Filter:过滤器,用来过滤网站的数据
处理中文乱码
登录验证....
弄一个过滤器的demo 空maven+web项目
导入依赖
创建一个过滤器继承对应接口
创建一个servlet
配置路由访问,发现出现乱码
在servlet中写如下字段再访问即可显示出汉字
对于每创建一个servlet就需要多加一个这个编码转换操作,非常复杂,故使用过滤器解决该问题
写好过滤器功能后,在web.xml中配置过滤器的过滤路径,这里故意将之前写的jsp页面配了两个路径,一个带/servlet一个不带,我们配的过滤器只要访问路径中带/servlet即可经过过滤器,不带则不通过过滤器
之后启动项目,对jsp页面文件进行访问,用不带/servlet的路径访问时,由于不经过过滤器,故过滤器中提供的编码转换未被使用,所以汉字仍为?,带/servlet路径时访问,则经过过滤器,放置在过滤器中的编码转换代码被运行,故访问页面中的汉字被成功显示出来
Web服务器关闭时,过滤器会被销毁,启动时,就会初始化
5.Listener
做一个统计网站在线访问人数的demo来理解Listener
创建一个监听器类,并实现相应接口
编写创建session或销毁session时需要执行的在线人数更新逻辑,创建session也就是打开一个浏览器的时候,销毁session也就是关闭一个浏览器的时候,一台电脑可用多个不同的浏览器来对同一个页面进行访问,来体验这个demo
index页面用来显示实时在线访问人数
在web.xml中注册我们写的监听器
设置session过期时间
运行项目,访问首页
6.Filter实现权限拦截
用户登录之后才能进入主页!用户注销后就不能进入主页了!
创建一个主页
再创建一个登录的页面
同时再编写一个登录失败没权限的错误页面
在web.xml中配置登录页面提交后需要执行功能的servlet的路由
编写执行功能的servlet,先获取在登录页面提交的用户名,如果输入的内容为admin则将session的id存到session中去并转发至登录成功界面,如果输入内容不是admin,则转发至登录失败权限不足的错误页面
再在主页写一个注销的按键,方便用户注销下线,配的地址为一会要编写的执行注销逻辑的servlet的路由
编写执行注销逻辑的servlet,先去session中取id,如果取出不为空,说明用户登录着,将这个id移除出session,并且将页面转发至登录界面,让用户重新登录
web.xml中不要忘记配该servlet的路由,这里的路由与注销案件绑定的路由一致
如何避免用户登录前,直接通过主页的url直接进入主页呢?我们可以通过配置过滤器来进行拦截
如果说session中没取到id,则证明没登录,就算用户直接访问主页的url也不能成功,直接被转发到错误页面
在web.xml中配置的过滤器的过滤路由就是将访问主页时的路由经过过滤器,主页的jsp文件在sys目录下,则访问主页的路由必然携带/sys,故我们直接配置过滤路由为/sys/*即可,访问路径中只要带有/sys则必然通过过滤器