java servlet面试题_Java Web面试题分享

原标题:Java Web面试题分享

Java Web,是用Java技术来解决相关Web互联网领域的技术总和。Web包括:Web服务器和Web客户端两部分。Java在客户端的应用有Java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。

90441813a3ae91eb8a50a4de188eab76.png

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命令的所有用户输入数据。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值