企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 实验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对结果显示页面进行拦截,如果没有面积数据则不允许访问该页面。