您的位置:首页 > Web前端 > JavaScript

JSP 的学习经验总结

2016-07-13 21:38 411 查看
六、COOKIE

  HTTP COOKIE实质是***与在客户端之间传送的普通HTTP头,可保存也可不保存在客户的硬盘上.如果保存,每一个文件大小不超过4K的文本文件.多个COOKIE可保存到同一个文件中. 如果从编程角度来看,在JSP中COOKIE就是JAVA提供的一个类.常用的方法如下所表示,因为客户端可能不接受COOKIE,所以建议不用它,改用SESSION等其他方式。 

public class cookie  

{  

public String getDomain() //返回该COOKIE的有效域  

public int getMaxAge() //返回该COOKIE的有效期,单位为秒  

public String getName() //返回该COOKIE的名称  

public String getPath() //返回该COOKIE的有效路径  

public boolean getSecure() //返回该COOKIE的安全设置  

public String getValue() //返回该COOKIE的值  

public void setDomain(java.lang.String pattern) //设置该COOKIE的有效域  

public void setMaxAge(int expiry) //设置该COOKIE的有效期,单位为秒  

public void setPath(java.lang.String uri) //设置该COOKIE的有效路径  

public void setSecure(boolean flag) //设置该COOKIE的安全设置  

public void setValue(java.lang.String newValue) //设置该COOKIE的值  



  一个COOKIE包含以下五部分: 

  NAME/VALUE对,设置该COOKIE的名字及它保存的值

  COOKIE通常和服务器相关,如果将域设为JAVA.SUN.COM,那么该COOKIE就和这个域相关,只对该网址起作用,当浏览该网址时,浏览器将把该COOKIE的内容发送给***,COOKIE是作为HTTP HEADER的一部分被发送的,如果没有设置域,那么COOKIE就只和创建该COOKIE的服务器相关.

  路径用于指定服务器上可以使用该COOKIE的文件所在的路径,它只对该网址下的该路径下的应用起作用."/"表示服务器上所有目录都可以使用该COOKIE.

  COOKIE都有一个有效期,有效期默认值为-1,这表示没有保存该COOKIE,当该浏览器退出时,该COOKIE立即失效.  

安全选项true/false,如果设置为true,那么在***与在客户端之间传送该COOKIE的内容时,采用HTTPS协议. 

  如何检查一个客户端是否支持COOKIE的方法: 

  用下面的方法写一个COOKIE到客户端,并确认成功

try  

{  

Cookie c = new Cookie("mycookie","COOKIE TEST");  

response.addCookie(c);  

}  

catch(Exception e)  

{  

      System.out.println(e);  



  然后在一个新的JSP文件中:用下面的方法取客户端的COOKIE到cookies中, 如果cookies.length ==0,说明该客户端的浏览器不支持COOKIE

try  

{  

Cookie[] cookies = request.getCookies();  

if(cookies.length ==0)  

{  

      System.out.println("not support cookie");  

}  

}  

catch(Exception e)  

{  

      System.out.println(e);  



七、JSP和SERVLET的区别:

  SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。 后来SUN推出了类似于ASP的JSP,把JAVA代码嵌套到HTML语句中,这样,就大大简化和方便了网页的设计和修改。ASP,PHP,JSP都是嵌套型的SCRIPT语言。 一个分布式系统应分为三层:表示层,业务逻辑层,数据存取层,在J2EE体系结构中,SERVLET用来写业务逻辑层是很强大的,但是对于写表示层就很不方便。JSP则主要是为了方便写表示层而设计的。ENTITY
BEAN实现数据存取层,SESSION BEAN实现业务逻辑层。如果是简单的应用系统,可采用JSP+BEANS的结构进行设计,JSP中应该仅仅存放与表示层有关的东西,也就是说,只放输出HTML网页的部份。而所有的数据计算,数据分析,数据库联结处理,统统是属于业务逻辑层,应该放在JAVA BEANS中。通过JSP调用JAVA BEANS,实现两层的整合。 实际上,微软的DNA技术,简单说,就是ASP+COM/DCOM技术。与JSP+BEANS完全类似,所有的表示层由ASP完成,所有的业务逻辑由COM/DCOM完成。
为什么要采用这些组件技术呢?因为单纯的ASP/JSP语言是非常低效率执行的,如果出现大量用户点击,纯SCRIPT语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。另外一方面,纯SCRIPT语言将表示层和业务逻辑层混在一起,造成修改不方便,并且代码不能重复利用,采用组件技术就只改组件就可以了。 对于复杂的应用,应该采用ENTITY BEAN实现数据存取层,SESSION BEAN实现业务逻辑层,用JSP来调用SESSION BEAN,由SESSION BEAN调用ENTITY BEAN。即采用JSP+EJB来构建一个复杂的分布式系统。它比JSP+BEAN具有更高的吞吐量,可靠性,安全性。综上所述,对简单应用,可采用JSP+BAEN,对复杂的应用系统,应采用JSP+EJB,SERVLET变的无足轻重。用JSP完全可替代它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: