JavaWeb基础阶段复习
-
servlet生命周期
Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
- Servlet 初始化后调用 init () 方法。
- Servlet 调用 service() 方法来处理客户端的请求。
- Servlet 销毁前调用 destroy() 方法。
- 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
-
mvc是什么
MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
•Model**(模型)** - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
•View**(视图)** - 视图代表模型包含的数据的可视化。
•Controller**(控制器)** - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
-
servlet单例多线程
首先明确:Servlet是单实例的,即对于同一种业务请求只有一个是实例。不同的业务请求可以通过分发来产生多个实例。 其次:单实例的原因我想是因为单实例足可以处理某一个请求,就像ibatis的Querydao、UpdateDao一样都是单实例的。 再次:为什么单实例足可以处理某一个请求,因为Servlet是单实例多线程的。
-
session和cookie的异同
(1)共同点:cookie和session都是用来跟踪浏览器用户身份的会话方式。
(2)不同点:
cookie是保存在客户端的,有大小限制
session是保存在服务端的,更安全,占用更多服务器资源,当访问增多时,应用cookie
-
jsp九大内置对象
-
get和post请求区别
- get请求用来从服务器上获得资源,而post是用来向服务器提交数据;
- get将表单中数据按照name=value的形式,添加到action 所指向的URL 后面,并且两者使用”?”连接,而各个变量之间使用”&”连接;post是将表单中的数据放在HTTP协议的请求头或消息体中,传递到action所指向URL;
- get传输的数据要受到URL长度限制(最大长度是 2048 个字符);而post可以传输大量的数据,上传文件通常要使用post方式;
- 使用get时参数会显示在地址栏上,如果这些数据不是敏感数据,那么可以使用get;对于敏感数据还是应用使用post;
- get使用MIME类型application/x-www-form-urlencoded的URL编码(也叫百分号编码)文本的格式传递参数,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是”%20”。 ps:GET方式提交表单的典型应用是搜索引擎。GET方式就是被设计为查询用的。
-
jquery手写ajax
<script src="${pageContext.request.contextPath}/view/js/jquery-1.10.2.js"></script> <script> $("#username").blur(function(){ //发送ajax请求 $.ajax({ type:'get', url:'cms/ajax?username='+$("#username").val(), dataType:'text', success:function(data){ if (data=="no"){ errorName.innerHTML="请输入用户名"; }else if(data=="find"){ errorName.innerHTML="用户名已存在,请重新输入"; }else{ errorName.innerHTML="可以注册"; } } } } }) }) </script> -
懒汉和饿汉模式
懒汉模式:在类加载的时候不被初始化。
饿汉模式:在类加载时就完成了初始化,但是加载比较慢,获取对象比较快。
饿汉模式是线程安全的,在类创建好一个静态对象提供给系统使用,懒汉模式在创建对象时不加上synchronized,会导致对象的访问不是线程安全的
-
请求转发和重定向区别
1、重定向是两次请求,转发是一次请求,因此转发的速度要快于重定向
2、重定向之后地址栏上的地址会发生变化,变化成第二次请求的地址,转发之后地址栏上的地址不会变化,还是第一次请求的地址
3、转发是服务器行为,重定向是客户端行为。重定向时浏览器上的网址改变 ,转发是浏览器上的网址不变
4、重定向是两次request,转发只有一次请求
5、重定向时的网址可以是任何网址,转发的网址必须是本站点的网址
-
java基础,面向对象,接口,泛型
面向对象有三大特性:封装,继承,多态。
封装:
将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,提高了数据的隐秘性的同时,使代码模块化。这样做使得代码的复用性更高。
意义:
将属性和方法放到一起做为一个整体,然后通过实例化对象来处理; 隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了; 对类的属性和方法增加 访问权限控制。 继承:
在程序中,继承描述的是多个类之间的所属关系,如果一个类A里面的属性和方法可以复用,则可以通过继承的方式,传递到类B里,那么类A就是基类,也叫做父类;类B就是派生类,也叫做子类。继承进一步提高了代码的复用性。
多态:
所谓多态:定义时的类型和运行时的类型不一样,此时就成为多态 ,
-
jdbc天龙八部
- 向工程中导入数据库的驱动包(.jar包)
- 建立java文件,编写代码
- 注册驱动包
- 创建连接对象Connection,需要异常处理
- 创建PreparedStatement接口的对象
- 为预处理的SQL语句中?指定数据
- 执行sql命令
- 关闭相关的对象