1.文件上传条件
文件上传三要素:请求方式必须是post,设置表单项的type="file",设置复杂表单属性【enctype="multipart/form-data"】
也可以使用原生的文件上传 - 但是代码量非常多
如果用SpringMvc做文件上传,需要配置文件上传解析器【将部分代码配置化了】
2.重定向和转发区别?
突破口:几次请求
重定向:多次请求 - 地址栏变化 - 不能共享request中的数据 - 不能访问WEB-INF的资源 - 可以访问外部资源
转发:一次请求 - 地址栏没有变化 - 能共享request中的数据 - 可以访问WEB-INF的资源 - 不可以访问外部资源
SpringMvc默认用的是转发:转发是内部转发,效率要高一些
SpringMvc中如果非要重定向:return "redirect:/xxx.jsp"; - 不会经过是视图解析
3.get和post区别?
突破口:请求参数在哪儿
get请求 - 请求参数在地址栏 - 不安全 - 大小有限制,大约2kb左右
post - 数据保存在实体内容中 - 相对安全 - 大小没有限制
4.Cookie与Session区别?
突破口:数据保存在那儿
Cookie:数据保存在浏览器,数据不太安全,而且数据大小有限制,并且保存的数据只能是字符串
Session:将数据保存在服务器端,数据相对安全,而且数据类型和大小没有限制。
但是如果服务器端保存的数据太多,会影响服务器的性能
5.什么是mvc?mvc的好处?
m-model 保存数据和处理数据的
v - 显示数据的
C-三大职责:接受请求,处理请求,响应请求
Mvc的好处是责任分离,专业的注解做专业的事,降低耦合度
6.jquery与Bootstrap区别?
都是前端框架,jquery是js框架,而bootstrap是一个前端ui框架,帮助开发者快速编写好看的页面,不光如此,bootstarp开发的页面是响应式的页面,一般中小型的页面,简单的页面可以用bootstarp来开发,然后只需要开发一套页面,在不同的设备【电脑,平板,手机】上都可以浏览,不用单独为手机再开发一套页面。但是比较复杂的页面,大型的页面不能用bootstrap来开发
7.同步和异步区别?
同步:你做了我才能做,下一步的操作必须要等到上一步操作的结果
异步:同时操作,互不干扰
异步操作可以提高效率
8.什么是Socket?TCP与UDP区别?
套接字:连接之后要实现数据的传输就要使用JAVA给我提供的api:Socket(最常见的一种)
TCP和UDP是协议,而Socket是实现,协议中可以包含很多实现,最常见的就是Socket技术
TCP是传输控制协议:可靠【3次握手,4次挥手】传输协议,底层使用io流进行数据传输。每一次传输数据都要询问对象,效率低,但是安全。TCP还有超时重传,数据确认的机制。
UDP是用户数据报协议:不可靠传输协议,但是效率高,不太安全,容易丢包
9.Jsp和Servlet有哪些相同点和不同点?
JSP是Java Server Page,java服务器的页面,所以Jsp是一个后端技术。
当访问一个Jsp页面的时候,Jsp页面会先转换成一个Servlet,然后编译成Servlet,同样要经历Servlet的生命周期,实际上页面中的内容是使用输出流写出去的
所以,Jsp实际就是一个Servlet,不过Jsp注重数据展示,Servlet注重逻辑处理
10.简述Servlet的生命周期?
实例化(为对象分配空间)
初始化(为对象的属性赋值)
请求处理(服务阶段)
销毁(服务结束/容器关闭)
Servlet是单例的,多次请求只会产生一个Servlet对象
Servlet是非线程安全的,所以最好不要在Servlet中定义成员变量
11.Spring常用注解
实例化对象的:@Controller,@Service,@Repository,@Compnont -- 条件需要扫描包路径
注入注解:@Autowired【SpringMvc的注解】 or @Resource【Javaee的注解,对Spring有支持】
匹配请求的注解:@RequestMapping - 条件是要开启Spring对Mvc的支持
响应ajax请求的注解:@ResponseBody - 将响应的数据转成json格式,这个注解标识的方法返回值不会经过过视图解析器
12.xml中大致的配置
web.xml - 前端控制器+过滤器处理post请求中文乱码【get请求不用处理,tomcat8默认使用UTF-8进行编码,tomcat7及其之前的版本需要配置】
+监听器【加载spring配置文件】
spring配置文件 - 管理属性文件jdbc.properties+管理连接池+管理SessionFactory+管理Mapper接口
Springmvc配置文件 - 扫描包路径+开启Spring对Mvc的支持+ 视图解析器+静态资源放行
13.拦截器的原理
SpringMvc拦截器
mVC思想
model模型,view视图,controller视图
任何语言设计一个软件都需要这三部分,用户要接触软件就是通过视图【页面或客户端】,
视图中的功能需要实现,必须要使用功能model实现。但是model和view不能直接交互,必须通过controller。
这三个部分缺一不可
14.三层架构
controller表现层或控制层【以前servlet+jsp,现在springMvc】
service业务层
持久化层【以前dao用jdbc ,现在用mybatis,mapper】
15.处理中文乱码
项目一种使用过滤器处理post请求的中文参数乱码问题,
get请求不用处理,因为用的是tomcat8,默认使用UTF-8
16.StringBuilde和StringBuffer区别
17.分页如何实现的
使用gm提供的方法setQuery()将gm自带的分页参数和高级查询的数据传递到后台,后台通过动态sql实现动态查询。再使用limit对
查询到的数据进行分页查询,然后将查询到的数据使用gm的属性显示在表格中
limit a,b - 参数a表示当前页显示数据的下标或索引可以使用 (当前页-1)*pageSize计算
- 参数b表示每一页显示的条数
18.动态sql用过哪些
if,where,sql,include
19.#与$区别