session&servlet

来源:互联网 发布:mac百度云下载速度慢 编辑:程序博客网 时间:2024/06/10 16:28


1.使用session技术;  使用cookie本身是有大小和个数的限制. 但是session没有限制;cookie的数据保存在客户端,
                    session保存在服务器端.




2.session的执行原理: 基于cookie.




3.使用session: 全称httpsession; 是一个域对象,request.getsession();就会在服务器端开辟空间,利用set-cookie

    带回sessionid  , 不同的浏览器访问,都会开辟不同的空间.


6.session 是一个域对象,session什么创建, 服务器第一次调用getsession,什么时候销毁,关闭浏览器,只会销毁
保存sessionid的cookie销毁, 下次打开浏览器,就会创建一个新的session .                             


      销毁: 三种情况销毁session


          1.session过期,默认过期时间为30分钟


          2.非正常关闭服务器,如果正常关闭session序列化到硬盘


          3.手动调用session.invalidate();


      作用范围: 多次请求(一次会话);    



                                                                            servlet

servlet: 就是一个运行在web服务器上的小的java程序,用来接受和响应从客户端发送来的请求,
通常使用HTTP协议;


1.用来处理从客户端浏览器发送的请求,并且可以对请求做出反应.


    使用servlet:
    1.编写一个类实现servlet接口


    2. service用来处理客户的请求,并作出响应的方法;


        向页面输出的方法: response.getwriter.pintln();


    3.配置web.xml 中 <servlet>  <servlet-name> test1  <servlet-class>包名+类名
       <servlet-mapping> <servlet-name>test1  <url-pattern>/访问路径








2.使用servletRequest从浏览器接受参数


     1.request.getparameter(string name);   用于接受一个name对应一个值的数据 返回字符串;
                                             获得value的值


     2.getparametervalues(string name);   用于接受一个名称对应多个值的数据  返回数组
  
     3. getparameterMap();   用于接收表单中的所有数据,map的key是表单提交的参数名称,value是提         交参数的值 key是name,value 是value值,






3.servlet的访问流程:
   浏览器输入地址------->web.xml中配置信息-------->找到对应的class类执行service方法






 
4.用2中的1方法得到的字符串转数字 Integer.parseInt(字符串);








5.最后的登陆案例是在注册页面转发到在xml中配置的访问地址.然后xml在找到servlet实现类里面,然后  在类里面获取表单提交数据,


















1. servlet 实现关系
      servlet ---> GenericServlet实现类 通用的servlet ---- > HttpServlet 实现类中只有doge()
      和dopost()方法.在第一个实现类中根据不同请求方式,调用不同方法,目前只有get和post请求.


2.dbutils的包










3.servlet的生命周期;  何时创建: ,只要任何一次客户端向服务器发送请求,就会执行servlet;


  servlet被构造的时候,init方法就会执行.  只被创建一次,在客户的第一次请求的时候,
                                                                     说明servlet是单例的




  service刷新一次就请求一次,可执行多次




  servlet被销毁的时候,destroy方法就会执行.  在服务器关闭的时候或项目移除的时候,才会执行






说明: 用户第一次访问servlet的时候,服务器会创建一个servlet的实例,那么servlet的init方法就会执行,任何一次请求服务器都会创建一个新的线程访问servlet中的service方法,在service方法内部根据不同的请求方式调用不同的doXXX的方法, 在服务器关闭的时候或项目移除的时候,destroy才会执行










4.servlet的相关配置
   1. 服务一启动就创建servlet,在web.xml中<servlet></servlet>配置
 <load-on-startup>2<load-on-startup>传入正整数,整数越小,被创建优先级越高,不要用1;服务器默认1                                                                                       


  2.url-pattern的配置:
    1.完全路径匹配  : 以/开始     例如: /aaa/servletDemo5;


    2.目录匹配 :  以/开始 需要以*结束  例如 /*, /aaa/*, /aaa/bbb/*


    3.扩展名匹配  : 不能以/开始,  以*开始,  例如: *.do , *.action , *.jsp;




  3.如果全配置了, 从123依次按顺序找,在哪个找到就执行,注意只执行一次 aaa.do是执行第2个








5. 开发中路径的编写; 找到编写的资源


    1.相对路径: 都是需要找位置相对关系,  ../ 上一级 , ../../上两级 依次推理;(不好找)


    2.绝对路径: 不需要找相对关系, 以/开始,  需要其他服务器的时候, 带协议的                "http://localhost/day20/servle6,  访问自己服务器可以不带协议: /day20/servlet6


         1.客户端路径: 一定要加工程名 例如:上面例子;


         2.服务器路径: 不需要加工程名  例如:从servlet5中找servlet6 直接写 /servlet6;








6.登陆成功5秒跳转


  使用和http中refresh刷新头.
  1.用响应response中各种头方法,addHeader();
                              addDateHeader(); addIntHeader(); 一个key对应多个value的响应头
    setHeader(string name,string value); 
      setDateHeader(string name , long date),setIntHeader();  一个key对应一个value的响应头




  2. 解决中文乱码问题;
     responser.setcontentType("text/html;charset=UTF-8");


   3. 5秒刷新
      response.setHeader("refresh","5,url=""");


   4.设置重定向 location
      response.setStatus(302);
      response.setHeader("Location","url=");


     <meta http-equiv="Refresh" content="5,url=">








7.记录网站登陆成功的人数;
   1. GenericServlet类中获取servlecontext对象,作用是:存取数据,存的数据都是有一定作用范围    为域对象;
           remove....()
           get.......();
           setAttribute();用来向servletcontext中存储数据.




   2.配置启动时加载,调用init(){int count=0;存入域中} 然后在get中count++,在存入域中;


   3.在转发的类中获取到域中数据写入到网页中;








8.servletconfig : 获得servlet的配置信息;
   getServletName() ;   获得servlet在web.xml配置的name;
   getInitParameter();  获得servlet的web.xml中初始化参数;
   Enumeration getinitparameterNames();   获得所有servlet的初始化参数的名称;



原创粉丝点击