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过期或服务器被重启后,被服务器清除。
请求转发与重定向的区别?
request.getRequestDispatcher()是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;服务器内部转发,整个过程处于同一个请求当中。
response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。不在同一个请求。重定向,实际上客户端会向服务器端发送两个请求。
所以转发中数据的存取可以用request作用域:request.setAttribute(), request.getAttribute()
,重定向是取不到request中的数据的。只能用session。
forward()更加高效,在可以满足需要时,尽量使用RequestDispatcher.forward()方法。(思考一下为什么?)
RequestDispatcher是通过调用HttpServletRequest对象的getRequestDispatcher()方法得到的,是属于请求对象的方法。
sendRedirect()是HttpServletResponse对象的方法,即响应对象的方法,既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始向客户端返回执行的结果。
用户在某购物网站购物,当关闭浏览器窗口,再打开新的浏览器窗口时,发现购物车中的商品全部丢失了,这说明关闭浏览器窗口,会导致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方类中