• 日常总结——JSP篇(补)


    序——

       初次接触JSP,写一个登录注册界面

    正文——

      JSP介绍:JSP通过在标准的HTML页面中插入java代码,其静态的部分无须java程序控制。每个JSP页面就是一个servlet实例, WEB应用中的每个JSP页面都会由servlet容器生成对应的servlet。

       理解:在HTML语句中加入java代码的页面

      servlet介绍:servlet必须运行在服务器中。servlet容器的作用是处理客户端的请求,并将处理结果返回给客户端。当客户请求到来时,servlet容器获取请求,然后调用某个servlet,并把servlet的执行结果返回给客户。Tomcat就是一个servlet容器 

      servlet工作过程:

      因为JSP在执行第一次后,会被编译成Servlet的类文件,即.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不再重新把JSP编译成Servelt。在执行JSP网页时,通常可以分为两个时期:转译时期(Translation Time)和请求时(Request Time)。

    当JSP网页在执行时,JSP Container会做检查工作,如果发现JSP网页有更新修改时,JSP Container才会再次编译JSP成Servlet; 如果JSP没有更新时,就直接执行前面所产生的Servlet。

    ◆转译时期:JSP网页转移成Servlet类。

    ◆请求时期:Servlet类执行后,响应结果至客户端。

    转译期间做了两件事情:

    ◆转译时期:将JSP网页转移为Servlet源代码 .java.

    ◆编译时期:将Servlet 源代码 .java编译成 Servlet类 .class.

      request与session的区别:request对象和session对象的最大区别是生命周期 request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一起请求 当请 求完毕之后,request里边的内容也将被释放点 ,也就是request的生命周期只在数据提交 而session的生命周期也是针对一个客户端 但是却是在别人设置的会话周期内(一般是20-30分钟) session里边的内容将一直存在 即便关闭了这个客户端浏览器 session也不一定会马上释放掉的 简单来说可以这么理解 session相当于是一个客户端的全局变量; request是某一次访问的局域变量;

      数据库的连接:

    1 Class.forName("com.mysql.jdbc.Driver");
    2 conn=DriverManager.getConnection(url,user,password);

    "com.mysql.jdbc.Driver"需要插入jar包

    url:数据库名

      连接数据库可以用静态代码块——静态代码块:一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化。

      数据库数据类型——VARCHAR:是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。

      session介绍在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象( 默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。在服务器创建session对象的同时,会为该session对象生成唯一的session Id,客户端和服务器通过session Id互相确认

      JDBC:有一组用java语言编写的类和接口,规定了java开发人员访问数据库所使用的方法。

      javabean:简单理解就是一串类似于

    private bool male;

    public bool isMale()
    {
    return this.male;
    }
    public void setMale(bool b)
    {
    this.male=b;
    }

    request.getParameter()与request.getAttribute()的区别:

    request.getAtribute(String name) 返回name属性的值
    request.getParamter(String name) 获得客户传递给服务器的name参数的值
    request是对当前页面的请求,如果当前这个页面再去请求另一个页面 会生成新的request
    request.getAttribute():是request时设置的变量的值,用request.setAttribute("name","您自己的值");来设置值,
    request.getParameter():提取发送过来的参数如
    request.getAttribute()得到的是object,request.getParameter()得到的是String

    post与get的区别:

      post提交数据是隐式的,get是通过在url里面传递的(可以看一下你浏览器的地址栏),用来传递一些不需要保密的数据。
    用get时,传输数据的大小有限制 (注意不是参数的个数有限制),为2K;而post没有此限制

    客户端用cookie保存了sessionID
      客户端用cookie保存了sessionID,当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionID,这说明:要么是我们把浏览器关掉了(后面会说明为什 么),要么session超时了(没有请求服务器超过20分钟),session被服务器清除了,则服务器会给你分配一个新的sessionID。你得重 新登录并把这个新的sessionID保存在cookie中。

    客户端没有用cookie保存sessionID
      这个时候如果我们请求服务器,因为没有提交sessionID上来,服务器会认为你是一个全新的请求,服务器会给你分配一个新的sessionID,这就是 为什么我们每次打开一个新的浏览器的时候(无论之前我们有没有登录过)都会产生一个新的sessionID(或者是会让我们重新登录)

    JSP的注释:

    <%-- JSP中的注释,看不见 --%>
    <%
    // 注释,看不见
    /*
    注释,看不见
    */
    %>
    <!--显式注释-->

    URL参数:
      http://127.0.0.1/index.jsp?name=user&password=user其中name和password为URL参数

  • 相关阅读:
    UVA 11925 Generating Permutations 生成排列 (序列)
    UVA 1611 Crane 起重机 (子问题)
    UVA 11572 Unique snowflakes (滑窗)
    UVA 177 PaperFolding 折纸痕 (分形,递归)
    UVA 11491 Erasing and Winning 奖品的价值 (贪心)
    UVA1610 PartyGame 聚会游戏(细节题)
    UVA 1149 Bin Packing 装箱(贪心)
    topcpder SRM 664 div2 A,B,C BearCheats , BearPlays equalPiles , BearSorts (映射)
    UVA 1442 Cave 洞穴 (贪心+扫描)
    UVA 1609 Foul Play 不公平竞赛 (构(luan)造(gao)+递归)
  • 原文地址:https://www.cnblogs.com/liuyanhao/p/4755042.html
Copyright © 2020-2023  润新知