复习

JSP:

1、jsp和servlet的区别

jsp本质就是Servlet,jsp的工作原理是:JSP页面在执行的时候都会被服务器端的JSP引擎转换为Servelet(.java),然后又由JSP引擎调用Java编译器,将Servelet(.java)编译为Class文件(.class),并由Java虚拟机(JVM)解释执行。

JSP充当mvc思想中显示层内容,Servlet主要用于控制逻辑,Servlet更多的是类似于一个Controller,用来做控制。

2、什么是servlet

是一个java类,是一个java类,能运行在服务器上。能处理客户端发过来的请求(get post)生命周期:初始化( init() )--服务--销毁,结束服务时,调用destroy()

继承了Httpservlet类 一定要配置web.xml文件。

3、Sevlet运行过程:

它由web服务器调用,当web服务器接收到客户端的访问请求

1、web服务器检查是否已经装载并创建了该Servlet的实例对象

2、若没有,则装载并创建Servlet实例

3、调用实例对象的init()

4、创建一个用与封装HTTP请求消息的HttpServletRequest对象和

相应消息对象HttpServletResponse,再调用service(),将请求和响应传入

5、web应用程序被停止or重启前,Servlet引擎将卸载Servlet,在卸载前调用destroy()

浏览器发送一个HTTP请求,请求被Web容器分配给特定的Servlet处理

Servletz本质就是拥有一系列可以处理HTTP请求的方法的对象,常见方法doGet()/doPost()

web容器包含多个Servlet,特定的HTTP请求由那个Servlet处理由web.xml决定

4、什么是cookie

cookie是存储在客户端浏览器上所在硬盘上的一个文本文件,该文本文件是以键值对形式存储,键和值均为字符串。(cookie应用:自动登录)----response.addCookie(cookie):将cookie值写入到文本文件中

5、什么是session

session 就是会话,session理解成是一个作用域,实现session有两种方式,一种依托于cookie形式,一种为url重写

依靠JsessionID来判断是否为同一个会话,session是存在服务器端。

当系统禁用cookie时,必须要用url重写。代码:/myServlet;jsessionid=<sessionid> ?name = '?'

6、session关闭几种方式

session是30分钟没人用了才会死,服务器会自动摧毁session

手动销毁:httpSession.invalidate();

session典型应用:(1)权限管理 (2)购物车(3)防盗链接

7、请求转发和重定向的区别

forward跳转是url地址栏不发生变化,能带request值进行跳转,只能跳转站内资源,一次请求;

redirect跳转时url地址栏会变化,不能带request值,可以跳转站外资源,二次请求;

8、get和post请求

url地址栏请求,<a>标签,method属性为get时,response.sendredirect页面跳转时均为get请求;

method属性为post,request.forward 当有a页面跳servletA,servletA跳servletB请求时,以前续请求跳转为准,如前续为get则为get,为post则为post;

get形式数据量传输有限制,为255个字符;post无数据量大小限制;

get请求不可以传中文,启动email用get请求,文件上传使用post请求;

9、jsp隐式对象

request、response、out、session、application、config、pageContext、page、Exception

request HttpServletRequest 接口的实例

Response HttpServletResponse 接口的实例

out JspWriter类的实例,用于把结果输出至网页上

session HttpSession类的实例

application ServletContext类的实例,与应用上下文有关

pageContext PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问

config ServletConfig类的实例

page 类似于Java类中的this关键字

Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象

10、El隐式对象

requestScope、sessionScope、applicationScope、param、paramvalues(取超链接值或者表单提交数据时)

11、el表达式读取顺序

pageContext,request,session,application

12、EL表达式** ${empty name}

13、过滤器filter

能对servlet进行过滤,controller和jsp也可以进行过滤;

生命周期:初始化-服务-销毁;

在服务器加载时启动,对web.xml文件中filter中配置的文件进行过滤;

filter应用如权限管理,防盗连接等;

chain.dofilter含义:如果有下一个filter则执行下一个filter,如没有则执行原请求;

服务器关闭时,filter销毁;

超链接 forward

缺点:Aj ---------Bs------------Cs/cj 过滤器拦截不了 forward后跳转的资源;

14、监听器

能统计网站在线人数;创建 销毁 添加 移除 修改

应用 统计网站在线人数,

15、拦截器:

拦截器采用AOP前置通知的特点,

以forward形式跳转,拦截器可以,过滤器不行

过滤器可以对servlet进行过滤,拦截器不行

16、拦截器与过滤器区别:

拦截器:只有存在的资源才能拦截,能对控制器都能过滤

过滤器:能对jsp,控制器都能过滤

17、JSP工作原理

1 .浏览器客户端向将JSP引擎发出对JSP页面的请求

2 .JSP引擎将对应的JSP页面转化成Java Servlet源代码

3 .JSP引擎编译源代码生成.class文件

4 .JSP引擎加载运行对应的.class文件生成响应的结果页面

5 .JSP引擎吧响应的输出结果发送到浏览器端











SSM框架:

1、什么事AJAX:

数据的异步传输
分四步:创建var request = new XMLHttpRequest();
连接服务器 open(method,url,async),有三个参数1 get或者psot 2 地址 3 同步(false)或者异步(true)
发送请求 send(string),在使用GET方式请求时无需填写参数,在使用POST方式时参数代表着向服务器发送的数据
接收服务器相应数据

2、Spring框架:

spring实现了mvc思想(sping是一个实现了mvc思想的框架)
sping的特点:
IOC(控制反转)-将控制权转移给sping容器,即以前在控制器中(servlet、controller)需要实例化一个对象,在sping框架中不需要实例化对象,交由.xml文件实现;
DI(依赖注入)-service和dao层应用依赖注入(dao注入到service层,service注入到controller层);
AOP(面向切面编程)-更合理的一个层次划分
应用spring框架,结藕,主要是降低程序的耦合度。

3、springmvc框架:

springmvc是一个实现了mvc思想的框架,
主要负责mvc思想中控制器内容,采用无侵入式的设计方式来实现的;
springmvc是通过lisenner监听器(web.xml中)来启动的;
springmvc的优点是返回值丰富(string、modelandview、void),方法的参数列表可以进行重写;
无侵入式的java操作

4、什么是mvc;各个部分都有那些技术来实现?如何实现:

软件工程中的一种软件架构模式
模型Model – 程序员编写程序应有的功能、数据库专家进行数据管理和数据库设计
视图View – 界面设计人员进行图形界面设计
控制器Controller – 负责转发请求,对请求进行处理

Model:业务逻辑,通过JavaBean,EJB组件实现
View:表示层,JSP页面产生
Controller:控制层,一般是一个Servlet

5、Spring与SpringMVC

Spring与SpringMVC是一个框架,只不过使用侧重点不同
Spring与SpringMVC区别:MVC实现控制器内容;spring使用了ioc di aop

6、mybaties框架:

是实现了mvc思想的框架,是一个实现数据持久层的框架;
使用mapper.xml文件替代了dao中的实现类;
优点提供了动态sql的应用;
通过namespace名字+id名 与 方法名相同 就可以连接上;
提供了一套完善的ormappering映射机制(一对一、一对多、多对多)

7、#{}与${}区别:

采用预编译的传参方式,预编译好处防止sql注入

$进行传参,有隐含sql注入风险

8、SSM框架介绍:

SSM是实现mvc思想的框架组合,s的目的就是为了结藕,sm是控制层的框架,m实现的是数据持久层的框架;
spring 三大特点;springmvc 控制器;Mybatis 实现数据持久层











Oracle:

Select语句执行顺序:

from -- where -- group by -- having -- select -- order by

增:insert into dept (deptno,dname,loc) values (50,A,SY);

删:Delete from emp where job=”clerk”;

改:update emp set deptno = 20;

查:select distince(消除重复) deptno from emp;

外连接:

分为左、右、全外连接,以scott表为例,一个emp表,一个dept表,当查询员工没有部门,或部门没有员工的时候,进行等值连接时候需要用到外连接,
mysql中只有左、右连接,没有全外连接。

自连接:

自己连接自己,以emp表为例,查询某员工经理的信息需要用到自连接。(层次模型转换为关系模型的时候需要用到自连接)

序列:

(SEQUENCE)通常情况下配合主键使用,产生一组等间隔的数值(类型为数字),且不重复,多个表可以共用一个序列
CURRVAL 中存放序列的当前值
NEXTVAL 返回序列中下一个有效的值

视图:

是一个虚拟表,使用视图时可以对视图进行增删改查等功能,建议只使用视图的查询功能,不建议进行增删改工作。

约束:

主键约束(PRIMARY KEY)、唯一性约束(UNIQUE)、非空约束(NOT NULL)、外键约束(FOREIGN KEY)、检查约束(CHECK)

事务:

ACID (原子性、一致性、持久性、隔离性)事务为一件事可以有多个点组成,只有每个点都完成,会执行commit操作,如果有一个点未完成,即会执行rollback回滚操作。

索引:

一种为自动索引,一种为手动索引,自动索引:为当创建主键、唯一性约束时,系统会在当前列自动添加索引,优点是可以提高数据读取速度(查询效率);
手动索引:创建索引经常充当查询条件的内容会创建索引,查询的数据量很大,但结果很小的时候可以创建索引(如比例为2%,4%时)

分组函数:

最大值,最小值,平均数,总合,个数

varchar与varchar2区别:

varchar空格补齐 varchar2写啥就是啥,varchar是固定的,varchar2的动态的

having:

在ground by后面用;分组函数充当查询条件时必须用having。

group by:

按...分类。出现在select后面的字段 要么是是聚合函数中的,要么就是group by中的, 最好将主键带上,避免因为数据重复出错。

Oracle与MySQL的区别:

提交方式
oracle默认不自动提交,需要用户手动提交。
mysql默认是自动提交。
oracle比mysql更安全。

冒泡排序:

比较两个相邻的元素,将值大的元素交换至右侧,循环此操作,直到从左往右依次按顺序升序为止

单例模式:

单例类只能有一个实例,单例类必须自己创建自己的唯一实例,单例类必须给所有其他对象提供这一实例。懒汉式单例,饿汉式单例,双重检查等
应用于JDBC,mybatis中sqlsessionfactory
实例化对象,获取的为同一个对象,在事务操作时需要同一个对象,才能进行connection操作(加sessionfactory方法,关闭后可以继续实例化一个新的对象)
public static SqlSessionFactory sqlSessionFactory = null;
public static SqlSessionFactory getSqlSessionFactory() {
if(sqlSessionFactory==null){
String resource = "SqlMapConfig.xml";
try {
Reader reader = Resources.getResourceAsReader(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
return sqlSessionFactory;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,270评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,489评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,630评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,906评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,928评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,718评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,442评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,345评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,802评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,984评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,117评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,810评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,462评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,011评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,139评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,377评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,060评论 2 355

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,665评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,823评论 6 342
  • 自动关闭关键字 @autoclosure 使用与参数类型的()-> T 的闭包 ,这个闭包的参数为空,带有参数的闭...
    fordring2008阅读 239评论 0 0
  • 早期的一组创意插图,之前命名为压力系列,现在看来似乎也有些不妥,其实应该叫做束缚或者牵绊吧!你无法走向你想走的那条...
    waitine阅读 1,092评论 12 21
  • 今天是周一,一周七天中最为忙碌的一天。早晨八点还未到,老师已经打开门开始接诊了。我们到时,老师已经看过一个病人。 ...
    林若风阅读 1,135评论 1 1