目录
说说preparedStatement和Statement的区别
Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?
请求转发和重定向的区别
从地址栏信息来说
foword是服务器请求资源,,服务器直接访问目标的URL,把那个URl响应的内容读取出来,然后把读取的内容发给浏览器,浏览器不知道服务器发送的内容是什么,从哪里来的,所以地址栏还是原来的地址,
redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器请求的地址,地址栏显示的是新的URL
从数据共享来说
foword,转发页面和转发到的页面可以共享request(请求域)里面的数据,redirect不能共享request(请求与)数据,
从运用方面来说:
foword一般用于用户登录,根据角色转发到相应的模块,redirect:一般用于用户的页面跳转(注销登录,返回主页面/登录页面,和跳转到其他网站),
从权限角度来说:
请求转发能访问WEB-INF下的资源,而重定向不能,
请求转发能只能访问站内资源,而重定向既能访问站内静态资源,同时也能访问站外资源,例如百度等
从效率来说
请求转发效率高于重定向,当使用重定向时,
服务端会给浏览器发出消息:准备重定向-->浏览器收到消息服从命令,确认-->服务器重定向
server发送请求-->client 收到消息确认 -->servier 请求重定向 -->页面更新或者变化,
所以重定向后台两次server动作,效率较低
JSP和Servlet的关系
Servlet是一个运行在web服务器(如tomcat服务器)端的用java编写的小程序,运行在JVM虚拟机中,支持向浏览器页面显示内容,JSP本质是Servlet的一种简易形式,JSP可以被服务器处理成类似与Servlet的java程序,可以简化页面内容,.JSP可以让页面美化,动态内容,以及让代码更简单.
本质区别:
Sertlet应用逻辑是在java文件中,完全从表示层的HTML抽离出来.
而JSP则是java和HTML可以组合成一个扩展名.jsp文件,
效率来讲
JSP只需要写HTML代码就行了,至于java代码在Servlet里面写,
因为servlet也可以写html代码显示给浏览器,但是要复杂很多,拼接麻烦,
所以在jsp中写html代码更简单.效率更高
两者结合,写代码的效率更高.
Cookie和Session的的区别
1,session 在服务器端,cookie 在客户端(浏览器)
2,session 默认被存在在服务器的一个文件里(不是内存)
3,session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
4,session 可以放在 文件、数据库、或内存中都可以。
5,用户验证这种场合一般会用 session
JDBC访问数据库的基本步骤是什么?
1,加载驱动
2,通过DriverManager对象获取连接对象Connection
3,通过连接对象获取会话
4,通过会话进行数据的增删改查,封装对象
5,关闭资源
顺口溜:贾琏欲执释
说说preparedStatement和Statement的区别
效率来讲:
预编译(preparedStatement)会话比普通会话快,数据库系统不会对相同的sql够进行再次编译;
安全性:
preparedStatement:可以有效的避免sql注入的问题,
Stetement:会出现sql注入的风险;sql注入就是攻击从客