读《java web整合开发》笔记

来源:互联网 发布:4gip网络加速器免费版 编辑:程序博客网 时间:2024/06/05 08:22

这次读了一本很厚的《java web整合开发 王者归来》做得一些笔记

JSP部分

1、编译后的JSP跟HttpServlet一样,都是javax.servlet.Servlet接口的子类,因此JSP是另一种形式的Servlet。
2、JSP包含的技术:javaBean、自定义标签库、EL表达式、JSTL、
3、在JavaEE5.0规范中,如果一个Web应用只含有JSP程序以及HTML页面,图片等静态资源,则部署Web应用时不需要web.xml。
4、JSP先部署源代码,后编译为.class文件。先部署后编译。该.class文件便是JSP对应的Servlet。
5、JSP元素与模板数据:模板数据:HTML代码、元素:Java(包括脚本与元素)。
6、JSP脚本:可以出现在JSP文件中的任何地方。
7、JSP声明方法与属性(全局变量)时,不能直接使用<% %>以及<%=%>声明,而是使用<%! %>。
8、JSP中的return语句:return之后,后面的代码便不再运行,因此注意保持输出的HTML代码的完整性。本例中输出的HTML代码便不完整,没有</body>、</html>等结束标签。
9、jsp指令格式:<@directive{attribute=value}* >;
10、在HTML文件中,空行是不影响显示效果的。但是如果输出的是XML文件,则可能会有问题,因为某些XML解析器不允许XML文件前面有空行,如果有空行,则可能会解析出错,这是必须禁止输出空行。
11、include指令:格式:<%@include file="relativeURL"%>
12、<%@include file="relativeURL"%>与<%@include page="relativeURL"%>的不同点是:前者属于先包含后编译,后者则属于先运行后包含。
13、taglib指令:包含两个属性:1、prefix标签前缀;2、URL类库地址
14、合理使用作用域(page,request、session、application),可以很轻松地实现丰富的效果。例如:统计访问次数:session能够记录某个特定用户都 访问人数,而application可以记录总的访问人数。
15、在Servlet规范中,errorPage与isErrorpage被设计为一种处理异常的机制,但实际应用中经常失效,更常用的办法是使用Filter捕捉异常,或者使用Struts、Spring、WebWork等框架的ExceptionHandler机制捕捉异常。
16、JSP配置:同配置Servlet配置一样,只是使用标签不一样。
17、JSP中支持EL表达式(语法:${})。EL表达式能方便地操作javaBean、设置集合等,并支持简单的运算,但是EL表达之不能直接访问普通的方法,以及静态的属性。

Servlet部分

1、<url-pattern>中允许使用通配符“*”,“?”,“*”代表任意长度的字符,“?”问号代表任意字符;
2、常量信息更倾向于写在配置文件里面,需求发生变化时,只需要修改配置文件就可以;
3、/WEB-INF文件夹有一个特性:任何人不能通过浏览器直接获取下面的文件,即使他知道准确的位置及名称;
4、<context-param>所有的Servlet都能够读取的参数,即文档参数;
5、Servlet主要处理业务逻辑,例如读取数据库、权限检查、业务处理等;
6、JDNI:java命名与目录接口(java Naming and Directory Interface);
7、不经过FORM提交而直接输入网址,获取单击连接的方式访问Servlet也被看做是GET方式提交数据。
8、文件上传,文件上传以二进制提交,而非ASCll方式提交,因此Servlet不能用request.getparameter()方式获取文件:<form action="servlet/UploadServlet" method="post" enctype="multipart/form-data"></form>
9、一些开源框架比如Struts集成了Apache Common FileUpload类库来实现文件上传
10、人性化的设计;
11、Servlet单实例多线程;
12、返回上一页:onclick="history.go(-1)";
13、支持@PreConstruct与@PreDestroy注解的服务器需要支持到Servlet2.5及以上规范,Tomcat5.X仅支持Servlet2.4规范,因此不支持@PreConstruct与@PreDestroy。部署Web应用时,一定要留意,否则会遇到意想不到的程序错误;
14、当执行forward动作的时候不能有任何输出到达客户端,否则会抛出IllegalStateException。也就是在forward之前尽量不要使用out.println()语句像客户端输出结果。
15、状态码:1XX:信心状态码、2XX:正确状态码、3XX:重定向、4XX:请求错误、5XX:服务器错误;
16、当使用Redirect跳转Servlet时,跳转是在客户端实现的,也就是说客户端浏览器实际上请求了2次服务器,第一次获取了重定向的网址,第2次访问真实的地址;
17、自动刷新技术:response.setHeader("Refresh","1000,URL=baidu.com");
18、Servlet不是线程安全的,多线程读写会导致数据不同步问题。建议Servlet中的只读属性最好定义为final类型;

过滤器(Filter)

1、Filter和Listener是Servlet规范里的两个高级特性,不用于处理客户端请求,而是对request、response进行修改或者对context、session、request事件进行监听。
2、doFilter( )方法中一定要执行chain.doFilter(request,response),否则request不会交给后面的Filter或者Servlet。
3、一个Web程序可以配置多个Filter,这多个Filter的执行顺序有先后之分,规则是<filter-mapping>配置在前面的Filter执行要早于配置在后面的Filter,另外要注意,可能多个Filter会相互影响。
4、Filter可用于处理:权限验证,日志记录,数据压缩,数据加密,格式转换,图像处理等。
5、字符编码Filter是java Web程序中做常用的Filter。基本上所有的java Web编码方式都是用该Filter方式实现的。
6、日志Filter的好处是可卸载,如果不需要记录日志,只需要将Filter配置注释掉即可。
7、使用异常捕获Filter后,Servlet中可以直接抛出业务异常,而不用担心在客户端显示Tomcat自带的异常信息页面。
8、Filter是现在流行的AOP编程思想的一种体现。
9、不要局限自己的思维,发挥想象,Filter能够胜任的工作还有很多,而不仅仅是教材上面的例子。
10、Filter可能会相互影响,因为他们有执行的先后顺序之分。



0 0
原创粉丝点击