Java Web,是用Java技术来解决相关Web互联网领域的技术总和。Web包括:Web服务器和Web客户端两部分。Java在客户端的应用有Java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。
1、JSP和Servlet有什么区别?
答:(1)JSP侧重视图,Servlet主要用于控制逻辑。
(2)Servlet中没有内置对象 。
(3)JSP中的内置对象都是必须通过Http Servlet Request对象,Http Servlet Response对象以及Http Servlet对象得到。
2、JSP有哪些内置对象?作用分别是什么?
答:request:用户端请求,此请求会包含来自GET/POST请求的参数
Response:网页传回用户端的回应
pageContext:网页的属性是在这里管理
session:与请求有关的会话期
application servlet:正在执行的内容
out:用来传送回应的输出
config servlet:的构架部件
page JSP:网页本身
exception:针对错误网页,未捕捉的例外
3、说一下JSP的4种作用域?
答:
page:代表页面上下文,范围是一个页面及其静态包含的内容。
request:代表请求上下文,范围是一个请求涉及的几个页面,通常是一个页面和其包含的内容以及forward动作转向的页面。
session:代表客户的一次会话上下文,范围是一个用户在会话**期内多次请求所涉及的页面。
application:全局作用域,代表Web应用程序上下文,范围是整个Web应用中所有请求所涉及的页面。
4、session 和 cookie 有什么区别?
答:(1)存储位置不同,cookie在浏览器端存储,session在服务器端存储;
(2)存储容量不同,cookie存储容量很小,session存储容量可以很大;
(3)安全性不同,cookie安全性较低,session安全性很高。
5、spring mvc和struts2的区别是什么?
答:(1)底层实现机制
struts2:filter
spring mvc:servlet
(2) 运行效率
struts2:底层是Servlet,参数基于属性封装,如果配置单例,会出现线程安全问题,所以配置多例
spring mvc:底层是Servlet,单例
(3)参数封装
struts2:基于属性封装
spring mvc:基于方法进行封装
8、如何避免 sql 注入?
答:(1)输入校验:做好规范的校验工作,比如搜索框不能输入sql语句等;
(2)权限控制:在创建一个SQL数据库的用户帐户时,要遵循**权限法则。用户应只拥有使用其帐户的必要的**特权。如果系统显示需要用户可以读取和修改自己的数据,那么应该限制其特权,使他们无法读取/编写别人的数据。
(3)重复校验:在服务器端重复客户端所进行的所有过滤。(黑名单验证和白名单验证)
(4)动态参数:应使用prepared statements语句绑定变量来执行SQL字符串。没有使用prepared statements语句绑定变量可能很容易受到攻击。
使用严格的白名单型来检查可以用于SOL命令的所有用户输入数据。 |