zoukankan      html  css  js  c++  java
  • Java Web

    1.jsp和servlet有什么区别?

      jsp是servlet技术的扩展,本质上就是servlet的简易方式。

      servlet和jsp最主要的区别在于,servlet的应用逻辑是在java文件中,并且完全从表示层中的html里分离开来,而jsp是java和html组合成一个扩展名为jsp的文件。jsp侧重于视图,servlet主要用于控制逻辑。

    2.jsp有哪些内置对象?作用分别是什么?

      jsp中有9大内置对象

    • request:封装客户端的请求,其中包含来自get或post请求的参数。
    • response:封装服务器对客户端的响应。
    • pageContext:通过该对象可以获取其他对象。
    • session:封装用户会话的对象。
    • application:封装服务器运行环境的对象。
    • out:输出服务器响应的输出流对象。
    • config:web应用的配置对象。
    • page:jsp页面本身(相当于java程序的this)。
    • exception:封装页面抛出异常的对象。

    3.jsp有哪些作用域?

    jsp有四中作用域

    • page:代表与一个页面相关的对象和属性。
    • request:代表与客户端发出的一个请求相关的对象和属性。
    • session:代表某个用户与服务器建立的一次会话相关的对象和属性。
    • application:代表与整个web应用程序相关的对象和属性。

    4.session和cookie有什么区别?

    存储位置不同:session存储在服务器端,cookie存储在浏览器端。

    安全性不同:cookie安全性一般,因为存储在客户端可以被伪造和修改。

    容量和个数限制:cookie有容量限制,每个站点下的cookie也有个数限制。

    存储的多样性:session可以存储在redis、数据库、应用程序中。而cookie只能存储在浏览器中。

    5.session的工作原理?

      session的工作原理:在客户端登录完成后,服务器会创建对应的session,session创建完成后,会把session的id发送给客户端,客户端在存储到浏览器中。这样客户端每次访问服务器时,都会带着sessionid,服务器拿到sessionid之后,在内存中找到与之对应的session这样就可以正常工作了。

    6.客户端禁止cookie能实现session还能用?

      可以用,session只是依赖cookie存储sessionid,如果cookie被禁用了,可以在URL中添加sessionid的方式保证session能正常使用。

    7.Spring MVC和Struts的区别是什么?

    拦截级别:struts2是类级别的拦截。spring mvc是方法级别的拦截。

    数据独立性:spring mvc的方法之间基本是独立的,独享request和response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量。而struts2虽然方法之间也是独立的,但其所有的action变量是共享的,这不会影响程序的运行,却给我们的编码和读程序时造成一定的麻烦。

    拦截机制:struts2有自己的intercepoter机制,spring mvc用的是独立的aop方式,这样导致struts2的配置文件量比spring mvc大。

    对ajax的支持:spring mvc集成了ajax,所以ajax的使用很方便,只需要一个注解@ReponseBody就可以实现了。而struts2一般需要安装插件或者自己写代码才行。

    8.如果避免sql注入?

    使用预处理PreparedStatement。

    使用正则表达式过滤掉字符中的特殊字符。

    9.什么是XSS攻击,如何避免?

      XSS攻击:即跨站脚步攻击,它是web程序中常见的漏洞。原理是攻击者往web页面里插入恶意的脚步代码(css代码、Javascript代码等),当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意攻击用户的目的,如盗取用户cookie、破坏页面结构、重定向到其他网站等。

      预防XSS的核心是必须对输入的数据做过滤处理。

    10.是你是CSRF攻击,如何避免?

      CSRF:Cross-Site Request Forgery(跨站请求伪造),可以理解为攻击者盗用了你的身份,以你的名义发送恶意请求,比如:以你的名义发送邮件、发消息、购买商品、转账等。

    防御手段

    • 验证请求来源地址。
    • 关键操作添加验证码。
    • 在请求地址添加token并验证。
  • 相关阅读:
    数据结构和算法学习笔记七:图的搜索
    数据结构和算法学习笔记六:图的相关实现
    Unity常用的3D数学知识
    Unity计时器--简版
    基于前缀树的红点系统
    数据结构和算法学习笔记五:图的基本概念
    C内存管理
    如何解决KEIL中文乱码问题
    C语言结构体变量作为函数形参
    C的结构体
  • 原文地址:https://www.cnblogs.com/bl123/p/14994038.html
Copyright © 2011-2022 走看看