zoukankan      html  css  js  c++  java
  • 小菜鸟之面试题中

    感谢四两数字

      1 1 转发和重定向的区别?
      2     转发:浏览器向服务器发送请求,服务器再向目标资源发送请求,返回响应内容给服务器,服务器再给浏览器,所以浏览器根本不知道服务器返回的内容是从哪里来的。所以转发的地址栏是不变的;比如:借钱事件- a向b借钱,b向自己某好友借钱然后给a,a不根本不知道钱是哪里来的。
      3     重定向:
      4     浏览器向服务器发送请求,服务器返回一个状态码给浏览器,告诉它重新去请求新url。浏览器重新发送新url,成功访问到目标资源,此时地址栏中url自动变成新的url。
      5 
      6 2  JSP(本质就是servlet类)的 九大内置对象?
      7      out /  request  response  session  /
      8      page /pageContext / application    9      config  /exception
     10 
     11 3 get和post的区别?
     12     在http协议中,get和post是两种发送请求的方法
     13      http就是交警
     14       http的底层是tcp/ip
     15     T  CP就像汽车,   16       get 和post 表示 车型,get类型的车要求将货物(参数数据)放在车顶上,方便识别
     17                                           post类型车要求经货物放在车厢里(request Body))
     18      浏览器 和服务器 就好比两个不同的运输公司
     19   区别
     20      get能被缓存,刷新时不会重新提交,可收藏为书签,参数保存在浏览器历史中
     21      get向url中添加数据时,url的长度不能超过2048字节;
     22       get不安全,数据在url中,所有人可见。
     23 
     24 4  常用的web服务器有哪些?
     25      微软的IIS
     26 /Apache服务器
     27 /Tomcat服务器
     28 /nginx服务器(engine x:http和反代理的服务器)
     29 
     30 
     31 5 jsp中的四种作用域是什么?
     32    page  作用范围是整个网页
     33    request  作用范围是一次请求
     34    session  作用范围是一次会话,包含多次请求
     35    application 作用范围是整个web项目
     36 
     37 6 实现会话跟踪技术有哪些?
     38      http协议本身是无状态的,如何标识请求是哪个用户发送的?
     39      会话跟踪就是先给用户分配唯一ID。将id添加到请求数据中进行传递。
     40      技术有:
     41     url重写:将ID添加都url中标识一个会话
     42     设置表单隐藏域
     43     cookie
     44     HttpSession
     45 
     46 7 过滤器的有哪些作用和用法?
     47    过滤器是一个驻留在服务器端的web组件,可以拦截请求和响应信息,对信息进行修改等操作;应用:字符编码/加解密/用户身份判断/统计文件下载次数等
     48 
     49 8  监听器有哪些作用?
     50       监听的是对象的状态变化
     51      监听对象的创建/销毁/对象属性的增删改等状态信息,根据状态信息的变化获得一些额外信息,比如统计网站的在线人数/文件的下载量等等
     52 
     53 9  你的项目中使用过哪些JSTL的标签库?有什么好处?
     54       核心标签库<c:if>  <c:choose><c:when><c:foreach>
     55       好处: 使jsp页面的内容和逻辑进行分离;
     56 
     57 10 说一下表达式语言(EL)的隐式对象及其作用
     58 
     59 
     60 11 Java Web开发的Model1和Model2 分别指的是什么?
     61     model1是指 jsp 显示层+javabean业务逻辑层
     62     model2 是指 mvc  m:model层 javabean层(service+dao)
     63              v:view层   是指jsp层
     64              c:control层  处理请求和响应层
     65 
     66 
     67 12 如何实现文件的上传和下载?
     68     使用第三方jar包:commons-fileupload
     69 
     70 13 静态包含和动态包含的区别?
     71    静态包含:<@ include file=>  先加载,后执行
     72    动态包含:<jsp:include page=>  先执行,后加载
     73 
     74 14 什么是web service?
     75    是指 跨平台/跨语言的规范,比如c语言开发的应用程序A和java开发的B可以实现相互调用 ,比如jersey框架实现restfull风格
     76 
     77 15 什么是orm?
     78    object  relationship mapping 对象关系映射技术  解决什么问题:Java实体中的成员变量和数据库中表的对应关系
     79 
     80 16 举一个多对多关联的例子?
     81    商品对订单 /学生对课程
     82 
     83 17 myBatis中#和$的区别?
     84    用#的场景较多, #将传入的的数据变成带引号的字符串
     85          $将传入的数据直接嵌入到sql语句中,这样会导致sql注射攻击的危害,
     86              比如 传入 where 1=1,这样就显示所有信息         87 
     88 18 mybatis中映射文件的命名空间有什么作用?
     89     避免sql语句唯一标识符重复产生冲突,产生每个sql语句都有一个唯一标识符id,我们很难保证这样i
     90    d不重复,所以给映射定义一个命名空间,只要在命名空间内id不重复就可以了
     91 
     92 19 mybatis中的动态sql语句有什么作用?
     93    查询条件不固定,但是可以通过一条sql语句实现所有可能的查询结果,就叫动态sql
     94    通过<if test=></if>标签、<choose><when test=></when><otherwise></otherwise></choose>标签、
     95        <foreach collection= item= open= separator= close=></foreach>标签
     96 
     97 20 什么是控制反转和依赖注入? 如何实现?
     98     以前创建对象是通过 程序代码 直接创建;
     99     现在是通过外部容器进行创建,实现了控制权的转移
    100     依赖注入:以前对象与对象的依赖组合关系,需要程序代码进行编写调用
    101        现在只有在容器中直接注入就可以了,不需要进行程序代码的编写
    102         注入方式有:setter注入、构造器注入、接口注入
    103     好处:就是实现低耦合,容器负责 创建对象 和 参数赋值 等工作,便于后期变动的话直接在容器中维护。
    104 
    105 21 Spring中bean的作用域有哪些?bean(创建的对象)作用域就是在什么范围有效
    106     Spring1.0版本有 singleton/prototype(原型)
    107     Spring2.0版本有 request/session/globalSession
    108 
    109 22 什么是AOP的连接点/切入点/增强/切面?
    110     连接点:就是程序执行的某个特定位置。比如方法调用前/方法调用后/方法抛出异常后等
    111     切入点;是指在哪些连接点处 进行切入操作 点叫做切入点
    112     增强:增加代码,是功能变强。是指织入到原代码的增加代码,起到增强原代码的功能的作用,
    113         增强分为前置/后置/返回后/异常/环绕增强 五大增强
    114     切面:是切入点和增强的结合体
    115 
    116 23 spring的自动装配方式有哪些?
    117     通过byname bytype /constructor
    118 
    119 24 Spring中如何通过注解来配置bean?
    120     先扫描 <context:component-scan base-package="">
    121     后添加注解来标注 @Repository @Service @Controller @Component
    122 
    123 25 Spring 支持的事务管理类型有哪些?你在项目中选择哪些?
    124     编程式事务管理 声明式事务管理
    125 
    126 26 如何在web项目中配置spring容器?
    127     在web.xml文件中配置 1 spring容器的路径 2配置上下文加载监听器,当容器加载是web项目能够监听到
    128     <web-app>
    129         <context-param>
    130             <param-name>contextConfigLocation</param-name>
    131             <param-value>classpath:applicationContext.xml</param-value>
    132         </context-param>
    133         <listener>
    134             <listener-class>.ContextLoaderListener</listener-class>
    135         </listener>
    136     </web-app>
    137 
    138 27 如何在web项目中配置springmvc?
    139     1 配置前端控制器 DispatcherServlet 和对应的映射
    140     <web-app>
    141         <servlet>
    142             <servlet-name>example</servlet-name>
    143             <servlet-class>.DispatcherServlet</servlet-class>
    144         </servlet>
    145         <servlet-mapping>
    146             <servlet-name>example</servlet-name>
    147             <url-pattern></url-pattern>
    148         </servlet-mapping>
    149     </web-app>
    150 
    151 28 Springmvc的工作原理是什么?
    152     前端控制器 处理器 处理适配器 模型视图对象  153     Dispatcherservlet Handler  HandlerAdapter  ModelAndView
    154 
    155 29 如何在Spring 容器中配置数据源?
    156     法一:dbcp database connection pool 配置 数据库连接池配置
    157     配置数据源文件的路径
    158     配置核心类BasicDataSource
    159     <context:property-placeholder location="database.properties"/>
    160     <bean id="dataSource" class="x.y.dbcp.basicDataSource" destroy-mehod="close">
    161         <property name="driverClassName" value="${jdbc.driverClassName}"/>
    162         <property name="url" value="${jdbc.url}"/>
    163         <property name="username" value="${jdbc.username}"/>
    164         <property name="password" value="${jdbc.password}"/>
    165     </bean>
    166     对数据源进行事务管理:DataSourceTransactionManager
    167     <bean id="txManager" class="x.y.DataSourceTransactionManager">
    168         <property name="dataSource" ref="dataSource"/>
    169     </bean>
    170 
    171     法二:c3po配置 一般不用
    172      173 30 如何配置 事务增强 tx:advice(通过aop技术给很多方法进行事务管理)?
    174     配置增强内容 和配置切点  然后把 增强和切点结合起来
    175     1 对哪里的方法进行事务增强? service层中的方法
    176       <bean id="xxservice" class=".xxxService"/>
    177     现有引进一个事务类
    178     <bean id="txManager" class="DataSourceTransactionManager">
    179         <property name="dataSource" ref="dataSource"/>//还要补充数据源bean
    180     </bean>
    181     2 对方法进行哪些增强功能?
    182      <tx:advice id="txAdvice" transaction-manager="txManager">
    183         <tx:attributes>
    184             <tx:method name="get*" only-read="true"/>
    185             <tx:method name="*"/>
    186         </tx:attributes>
    187      </tx:advice>
    188     3 切入点在哪里?
    189     <aop:config>
    190         <aop:pointcut id="servicePointcut" expression="excution(*.x.y.Classname.*(..) )"/>
    191         <aop:aspect advice-ref="" pointcut-ref=""/>  //切面 aspect
    192     </aop:config>
    193      194      195 31 spring的好处有哪些?
    196     1 非侵入式
    197     2 控制反转 依赖注入
    198     3 面向切面技术
    199     4 支持事务管理
    200     5 提供springmvc的支持
    201 
    202 32 Spring容器配置bean的方式有哪些?
    203     1基于xml文件进行配置bean
    204     2 基于注解进行配置bean---在成员变量上添加一个注解@component等注解标识
    205     3 基于java程序配置bean--- .getbean(Person.class)
    206 
    207 33 依赖注入如何注入集合属性?
    208     通过<list><set><map><pros>标签分别注入列表/集合/映射/键值对
    209 
    210 34 spring框架中的bean的生命周期是什么?
    211     1实例化bean
    212     2属性注入
    213     3bean提供服务
    214     4销毁bean
    215 
    216 35 spring的自动装配有哪些限制?
    217     使用构造器或者setter方法注入,会覆盖自动装配的依赖关系
    218     基本数据类型的值/String的字面量/类的字面量无法通过自动装配注入
    219     优先选择显式注入,不要选择自动装配注入
    220 
    221 36 大型网站在架构上应该考虑哪些问题?
    222     分层
    223     分布式与集群
    224     冗余
    225     缓存 通过空间换时间
    226     异步 ajax技术
    227 
    228 37  网站前端优化的技术有哪些?
    229     设置http响应头中的属性expires/cache-control,将css/javaScript/图片缓存在浏览器中
    230     减少cookie的传输
    231 
    232 38  应用服务器优化技术有哪些?
    233     分布式缓存 本质就是哈希表
    234     异步操作
    235     使用集群
    236     代码优化  多线程 NIO
    237     资源复用
    238 
    239 39 什么式xss攻击?什么是sql注入攻击?什么是csrf攻击?
    240 ————————————————
    241 版权声明:本文为CSDN博主「四两数字先生」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    242 原文链接:https://blog.csdn.net/Java_stud/article/details/91129728
  • 相关阅读:
    ReactiveCocoa入门教程——第一部分【转载】
    浅谈iOS中MVVM的架构设计与团队协作【转载】
    如何使用CocoaPods安装使用及配置私有库以及管理依赖库 【原创】
    工作经验【原创】
    xcode常见报错调试【原创】
    彻底解决_OBJC_CLASS_$_某文件名", referenced from:问题(转)
    Android遇到的那些坑
    Android开发和Android Studio使用教程
    CGI是什么 搜索了这么多,大致看明白了保留下来。
    不同手机根据坐标计算控件、图片的像素,px 与 dp, sp换算公式?
  • 原文地址:https://www.cnblogs.com/czg-0705/p/11871582.html
Copyright © 2011-2022 走看看