日期:2014-05-16  浏览次数:20368 次

JSP&Servlet(一)
一、关于HTTP协议
HTTP是TCP/IP的上层协议。TCP协议确保从一个网络节点向另一个网络节点发送的文件能够作为一个完整文件到达目的地,尽管在传送过程中这个文件可能被分为小块传输。IP是一个底层协议,负责把数据块路由到目的地。HTTP依赖于TCP/IP从一处向另一处完整地传送请求和响应。HTTP的会话结构就是一个简单的请求/响应序列。
HTML就是HTTP响应的一部分,请求方法常用的是GET和POST。
HTTP请求包括请求URL、HTTP方法以及表单参数等等。
GET主要用于请求资源,POST可以请求资源,同时可以向服务器发送表单数据。区别:GET请求参数追加在URL中,POST的参数发在请求体中。
content-type响应首部的值称为HTTP响应的“MIME”类型,它告诉浏览器要接受的数据是什么类型,这样浏览器才能知道如何显示。

二、Web应用体系结构
1、关于容器
Servlet没有main()方法,它受控于另外一个Java应用,这个应用就是容器。如果服务器收到指向某个Servlet的请求,服务器不直接把请求交给Servlet,而是交给容器,由容器调用Servlet的方法,如doGet()或doPost()。
容器提供什么?
(1)通信支持。利用容器提供的方法,能轻松让Servlet与服务器对话,不需要自己建立ServerSocket、监听端口、创建流等等
(2)生命周期管理。管理Servelet的生命周期,负责加载、实例化和初始化Servlet、调用Servlet方法并销毁
(3)多线程支持。自动为新的Servlet请求创建一个线程,运行完这个线程就会结束。不过你仍需要考虑同步问题。
(4)声明方式实现安全。可以用XML文件来配置安全性,而不是硬编码到Servlet中。
(5)JSP支持。

三、session
使用cookie
对于cookie,要做的工作已经封装在三个类中:HttpServletRequest,HttpServletResponse和Cookie
创建一个新的cookie:
Cookie cookie = new Cookie("username", name);
设置cookie在客户端存活多久:
cookie.setMaxAge(30*60);
把cookie发送到客户端:
reponse.addCookie(cookie);
从客户端得到cookie:
Cookie[] cookies = request.getCookies();
for(int i=0;i<cookies.length;i++){
    if(cookies[i].getName().equals("username"))
    String username = cookie.getName();
}