# 实验2:Servlet高级特性实训
## 1. 实验目的
1. 能够在Java Web项目中根据需求创建MVC三层模型;
2. 能够使用JSP或HTML来设计视图;
3. 能够使用Servlet来设计控制器;
4. 能够根据需要使用Java编写模型;
5. 能够对页面编码进行过滤;
6. 能够对非法访问进行拦截;
7. 能够对网站访问量进行监听和统计;
8. 能够对登录上线人数进行监听和统计。
## 2. 实验内容
1. 修改个人信息查看页面,使之能够显示并编辑个人信息;
2. 修改个人信息查看页面,使之能够提交修改给修改控制器;
3. 编写UpdateServlet控制器,能够接收修改信息并更新个人信息;
4. 编写网站编码过滤器,为网站提供统一的编码处理;
5. 编写登录权限过滤器,只允许登录之后才能访问个人信息页面和修改信息控制器;
6. 编写操作权限过滤器,登录用户只能修改本人信息,不能修改他人信息;
7. 编写访问监听器,用于监听Session的创建;
8. 编写登录、退出监听器,用于监听用户登录和用户退出;
9. 修改网站页脚信息,使之能够正确显示访问量和登录在线人数;
10. 优化提示信息,使用response输出脚本的方式提示用户错误消息。
## 3. 实验效果图
1. 信息查看页面
![](https://img.kancloud.cn/11/21/112141e64809f07bb8c02f119242404e_518x249.png)
2. 增加修改提交及返回功能
![](https://img.kancloud.cn/6b/ba/6bbae2f49c4238eaa8d2358f2009bb07_521x353.png)
3. 编写修改控制器
* 邮箱不能为空,且必须符合 x@x.x的格式
* 性别只能是男(值为1)或女(值为0)
* 关注类型不能为空
* [ ] 如果验证成功,将注册信息更新到application中,并更新session域中信息,给出提示,回到显示页面
* [ ] 如果验证失败,保存错误信息,跳转到错误提示页面,错误信息包括:
> 性别数据错误(未获取到0或1)
> 邮箱不能为空
> 邮箱格式不正确
> 没有选择关注类型
*****
![](https://img.kancloud.cn/3d/f1/3df131c7739e345b5fbf31d028056814_229x199.png)
4. 编写编码过滤器
* 过滤路径为"/*"
* 将request的编码处理为UTF-8
* 将respnnse的编码处理为UTF-8
5. 编写登录过滤器
* 过滤路径为"/userinfo.jsp"以及"/update"
* 如果没有登录,不可访问上述路径并给出提示,然后重定向到登录页面
![](https://img.kancloud.cn/2a/66/2a66a06425bc008357d82e2b6645eb34_462x143.png)
6. 编写操作拦截器
* 过滤路径为"/update"
* 如果没有登录用户和待修改账户不一致,不可执行修改操作并给出提示,然后重定向到个人信息页面
![](https://img.kancloud.cn/aa/dd/aadd99c13722746e8099d3746bb3d499_554x363.png)
![](https://img.kancloud.cn/45/8d/458db3e4ec972f9b945dfeb5d802f95e_462x143.png)
7. 编写访问监听器
* 监听session的创建
* 如果有session被创建,访问量加一,并在控制台显示信息
![](https://img.kancloud.cn/a9/f2/a9f21385527527e594274da05e725e45_281x43.png)
8. 编写登录监听器
* 监听session域对象的变化
* 如果有user被绑定到session,登录人数加一,并在控制台显示上线
* 如果有user从session解绑,登录人数减一,并在控制台显示下线
![](https://img.kancloud.cn/c9/cc/c9cceb860e81097bf935255ff7ac9e74_196x79.png)
9. 修改页脚信息
![](https://img.kancloud.cn/20/82/20829d6bc8e30e99a95d22a9f48d0bdc_625x143.png)
![](https://img.kancloud.cn/de/df/dedf0396b0f578e6c1a9abdd8d9f554c_619x157.png)
10. 优化显示
* 项目中的登录成功、注册成功等可以采用alert提示框告知用户
* 解决提示框显示乱码问题
![](https://img.kancloud.cn/e8/a4/e8a463b1b042ec31e63d721f72a4059d_490x199.png)
## 参考结构
![](https://img.kancloud.cn/cc/02/cc02695e36460f93a19675e156cb0355_503x759.png)
# 课外实验:面积计算
## 1. 实验目的
1. 能够在Java Web项目中根据需求创建MVC三层模型;
2. 能够使用在同一页面提交不同表单;
3. 能够使用工厂设计模式来生产不同实例;
4. 能够使用接口来进行多态开发;
5. 能够对非法访问实现拦截。
## 2. 实验内容
1. 在输入界面可以输入图形的类别以及计算参数;
2. 将参数提交给控制层,控制层能够获得对应参数;
3. 控制层能够根据不同的图形调用工厂生产不同图形;
4. 采用多态实现数据验证以及面积计算;
5. 如果数据验证失败,则跳转到错误页面;
6. 如果面积计算完成,则能够在视图层显示图形信息及结果;
7. 能够使用Filter对结果显示页面进行拦截,如果没有面积数据则不允许访问该页面。
- 1课程概述
- 2环境配置
- 3MVC
- 3.1View
- 3.1.1前端基础
- 3.1.2JSP语法
- 3.1.3JSP内置对象1
- 3.1.4JSP内置对象2
- 3.2Bean
- 3.3Controller
- 3.3.1Servlet
- 3.3.2Filter
- 3.3.3Listener
- 3.4EL&JSTL
- 4三层架构
- 4.1数据库操作
- 4.1.1JDBC
- 4.1.2JDBC优化
- 4.2三层架构设计
- 4.3程序优化
- 4.3.1数据库连接优化
- 4.3.2数据库操作优化
- 4.4安全专题
- 4.4.1Ajax异步查询
- 4.4.2CAPTCHA
- 4.4.3MD5&SHA
- 4.4.4Cookie
- 4.4.5分页显示
- 4.4.6文件上传
- 4.4.7发送邮件
- 5企业级框架
- 5.0Maven
- 5.1MyBatis
- 5.2Spring
- 5.3SpringMVC
- 6实践项目
- 6.1实验1-用户登录(MVC)
- 6.2实验2-访问统计(Servlet高级)
- 6.3实验3-三层架构
- 6.4实验4-安全信息系统