朕 JAVAEE 实验02 实验报告

(一)项目描述

实验名

所用知识点

项目效果

Lab05 过滤器基础

Filter的排序、调用、转发、如何过滤

能够将过滤链的转发过程打印出

Lab06 过滤器生命周期

Filter过滤信息、设置错误信息弹框、监听器创建对话、各域的使用

登陆页能正确判断用户填写的信息并进行反馈,后台能判断用户是否为合法登录,能提供所有登录成功者信息。

Lab07 配置描述符中的通配符应用

地址的写法、匹配方法

导航页能正确访问到各网页

Lab08 JSP基础

Jsp基础写法

用jsp语法实现库的调用,实现运算、响应等

(二)错误分析总结

【1】问题介绍:url配置为“/j2017051046_x_xx/abc”时,浏览器地址却是“/j2017051046_x_xx/j2017051046_x_xx/abc”

问题分析:可能软件自己添加了一个项目名

问题解决:将url改成” /abc”即可

 

【2】问题介绍:servlet在接受filter过滤后的参数时,获取失败。

问题分析:①知识点不足,可能需要专门方法。②参数错误。

问题解决:百度与检查代码发现,是因为参数错误。

 

【3】问题介绍:Tomcat启动失败。

朕 JAVAEE 实验02 实验报告_第1张图片

问题分析:分析错误提示,该情况与代码错误无关。可能解决方案:①删除tomcat重启。②向lib导入jar包。

问题解决:在实现①仍然报错的情况下,找到了lib需要的jar包复制进lib中。

 

【4】问题介绍:保存html时弹出错误

朕 JAVAEE 实验02 实验报告_第2张图片

问题分析:字符集不匹配的问题

问题解决:设置html字符集为UTF-8

 

【5】问题介绍:jsp代码报错。

问题分析:在确定无关普通代码错误时,比对老师代码,发现jsp中,head部分使用<%! %>,不同于 body 部分使用<% %>

问题解决:在 <% 后加一个 !

 

(三)知识点总结

  1. Lab05

①对于一个web应用程序来说,过滤器是处于web容器内的一个组件,它会过滤特定请求资源请求信息和响应信息。一个请求来到时,web容器会判断是否有过滤器与该信息资源相关联,如果有则交给过滤器处理,然后再交给目标资源,响应的时候则以相反的顺序交给过滤器处理,最后再返回给用户浏览器。

 

  1. Lab06

①Filter的创建和销毁由web服务器负责

②filter对象只会创建一次,init方法也只会执行一次,destroy方法可以释放过滤器使用的资源

③filter在destroy()调用之前都常驻内存

  1. Lab07

①load-on-startup 元素的值必须是一个整数,表示servlet被加载的先后顺序。如果该元素的值为负数或者没有设置,则容器会当Servlet被请求时再加载。如果值为正整数或者0时,表示容器在应用启动时就加载并初始化这个servlet,值越小,servlet的优先级越高,就越先被加载。值相同时,容器就会自己选择顺序来加载。

②/和/*的区别: < url-pattern>/  会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url。< url-pattern>/* 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)。

③servlet进行url匹配时,会优先进行精确匹配,其次模糊匹配

  1. Lab08

①主要掌握了jsp基础语法,对head,body中<%! %> <% %>的区别尤为深刻。

(四)思考、展望

在自以为完成项目、正制作navigate导航页面时,发现几个在项目中有很好运行效果的页面或servlet运行失败。其原因是:在项目中,项目的运行是线性的、参数是具备的。在单独访问中,可能页面或servlet所索取的资源并不存在,但是却在使用,这便是程序运行不成功的典型错误。这也是实验1自己所反思的代码缺少健壮性问题。

在学习中,深刻了j2ee四大作用域①pagecontext(只能在创建对象的页面中访问)②request(所以对于每一个新的请求,都要重新创建和删除这个范围内的对象)③session(在会话期间,可以访问session范围内的对象)④servletContext(在Web应用程序运行期间,所有的页面都可以访问在这个范围内的对象)的范围。

展望的自己能为学习而写作业,而不是为写作业而学习。

你可能感兴趣的:(JAVAEE实验)