复习笔记

javaweb项目相关:

 一个javaweb项目中必须有WEB-INF文件夹,且此文件夹名必须大写,此文件夹内部必须有web.xml文件。

web.xml文件是Web项目的配置文件,修改了此文件后,服务器必须重启才能生效。

在J2EE的Web应用中,编译后的class文件存放的目录为class目录

在Tomcat上的  webapps 目录用于存放所发布的应用程序。

为保证JSP页面不出现中文乱码,我们应该将页面的编码模式设置为utf-8或者gbk

在端口为8888的Tomcat中访问Hello项目下的login.jsp文件时,在浏览器地址栏应输入:http://localhost:8888/Hello/login.jsp

servlet相关:

doPost()专门用于处理post请求

doGet()专门用于处理get请求

Service()既可以处理post请求也可以处理get请求

init() 用于servlet初始化的方法,在其生命周期中只能调用一次。

destroy()用于servlet对象被销毁时调用,在其生命周期中只能调用一次。

servlet处理请求的方法是以线程的方式进行的,即单实例多线程模式

在部署Servlet时,web.xml文件中,应有以下标记:




    servlet对象名

    servlet类型

  



  

     servlet对象名

    /在页面中应用的地址

  

MVC模式相关:

Servlet处于MVC模式中的Controller层。且一个Servlet中可以调用多个业务层的方法。

一个业务层的方法中,也可以调用多个DAO层的方法。

但是一个DAO层的方法中只能调用一个JDBC操作方法。

JavaBean在MVC模式中充当这Model层的内容。

 

MVC中M,V,C各代表什么意思

(1)M---Model---模型,分为实体Bean和业务Bean两种,分别用来封装实体数据和提供业务逻辑的处理方法;

(2)V---View---视图---负责提供输入表单并提交到控制器层,并从属性范围中获取到控制器的处理结果,做显示输出;

(2)C---Controller---控制器---负责获取视图层的客户端输入,调用业务层的业务逻辑方法,并将业务层的处理结果保存到属性范围中,最后跳转到指定页面;

 

 jsp中的内置对象

request: 请求对象,可以获得表单输入的数据,其数据类型为ServletRequest接口,

response:响应对象,将处理结果响应给客户,可以回写代码,也可以以服务器跳向的方式做出响应。

session:存储在服务器端,可进行页面间共享数据。session的id值会存储在cookie中.

request和session的区别:session可以跨多个页面共享,request仅仅在本次请求结束前有效;request想延长有效期则必须使用转发,session可通过过期时间来设置其最大有效时间。

在session过期或服务器被重启后,被服务器清除。

请求转发与重定向的区别?

  1. request.getRequestDispatcher()是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;服务器内部转发,整个过程处于同一个请求当中。
    response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。不在同一个请求。重定向,实际上客户端会向服务器端发送两个请求。
    所以转发中数据的存取可以用request作用域:request.setAttribute(), request.getAttribute(),重定向是取不到request中的数据的。只能用session。

  2. forward()更加高效,在可以满足需要时,尽量使用RequestDispatcher.forward()方法。(思考一下为什么?)

  3. RequestDispatcher是通过调用HttpServletRequest对象的getRequestDispatcher()方法得到的,是属于请求对象的方法。
    sendRedirect()是HttpServletResponse对象的方法,即响应对象的方法,既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始向客户端返回执行的结果。

  4. 重定向可以跨域访问,而转发是在web服务器内部进行的,不能跨域访问。

 

用户在某购物网站购物,当关闭浏览器窗口,再打开新的浏览器窗口时,发现购物车中的商品全部丢失了,这说明关闭浏览器窗口,会导致session属性范围中的数据丢失,此说法对吗? 此说法不正确,因为购物车中的商品是保存在session范围中,而标识每一个用户的是以内存cookie的形式存放在客户端浏览器中,用户关闭浏览器,只会导致JSessionId丢失,下次再打开浏览器,服务器会发送新的JSessionId给浏览器,而这个新的JSessionId所关联的session属性范围中,肯定不会有以前的购物车信息,以前的购物车信息会

 

  jsp中标记的含义

表达式标签:<%=   %>

注释标签:<% --     --%>

小脚本标签:<%       %>

page指示符的language属性的作用是定义jsp页面中使用的脚本语言。

Http缺省的请求方法是Get。

在jsp中,taglib指令用来声明jsp欲使用的标签库

 Cookie相关:

            Cookie存储在客户端,如果没有设置过期时间,则cookie属于会话级别即内存cookie

            操作cookie的方法有:

            addCookie:添加cookie

            getCookies:获得客户端传来的所有cookie

            setMaxAge:设置cookie的过期时间。(设置cookie的有效期)

Cookie分为内存cookie和持久化cookie,如果想实现免登录功能,应使用后者。    

SmartUpload组件相关:

upload()方法:用于将文件上传到服务器端,并封装成File对象数组

saveAs()方法:是属于File对象的,用于将文件保存到服务器指定位置。

用SmartUpload类中的setAllowedFileList(“jpg,bmp,gif”)方法,可以设置只允许上传jpg,bmp,gif三种格式的文件

连接数据库相关:

            java.sql.Connection 接口:是数据库连接的对象的类型

            java.sql.DriverManager类:是一个管理数据库驱动的类,可以实例化Connection类型的连接对象。

            java.sql.Statement接口:用于执行完整的sql语句,并返回执行结果。

            java.sql.PreparedStatment接口:用于执行预处理的sql语句,并返回执行结果。所谓预处理的sql语句为,可变的数据部分以?号占位,在执行前通知PreparedStatement对象,那个位置的问号以何数据填充。

            java.sql.ResultSet接口:为查询结果集的类型,是调用executeQuery()方法的返回值类型。

集合相关

   单值集合:

java.util.Collection  (接口)

       |- java.util.List(接口) : 元素可以重复,有顺序,元素是根据下标定位的

              |- java.util.ArrayList(类)

              |- java.util.Vector (类)

              |- java.util.LinkedList(类)

       |- java.util.Set(接口):元素不可以重复,无顺序

              |-  java.util.HashSet(类)

              |-  java.util.TreeSet(类)

双值集合:键|值 的形式存储数据

java.util.Map(接口): key|value   ,   key不可重复,  value可重复, 无序

      |- java.util. HashMap(类)

      |- java.util.TreeMap(类)

      |- java.util.HashTable(类)

其中java.util.Map接口最适合购物车模型

数据库知识点:

MySql数据库实现分页数据查询时,需要用到 limit函数

一对多关系的数据库设计方法为将一方的主键作为外键,加入到N方的表中

一对多关系的类设计方法为将一方的类作为属性,加入到N方类中

 

你可能感兴趣的:(学习笔记)