Servlet选择题蒙题技巧题

Java Servlet 是运行在 Web 服务器或应用服务器上嘚程序它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

  • 1、java是以流的形式往外输出的

  • 2、servlet使用最简單的字符打印流往外输出

二、跳转页面的两种方式

概念:让用户重新请求一个新的页面所以,是用户发起一个新的请求

  • 2、他是一个新的請求所以在浏览器上,你可以看到url地址发生了变化
  • 3、及时一个新的请求那么和他之前的requset请求是不同的对象
  • 4、url会有两个,一次请求一次響应

概念:请求转发的意思是服务器直接进行跳转,所以用户浏览器是不知道最终要跳转到那个页面上的

  • 1、既然是服务器跳转所以 / 是根据服务器的url来定位的。 / 指的是127.0.0.1:8080/工程名
  • 2、服务器跳转浏览器是不知道的,所以url地址看不到最后的变化

概念:HTTP是hypertext transfer protocol(超文本传输协议)的简寫它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程客户端连上web服务器后,若想获得web服务器中的某个web资源需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式

HTTP请求的细节——请求行:

  • 2、 用户如果没有设置,默认情况下浏览器姠服务器发送的都是get请求例如在浏览器直接输地址访问,点超链接访问等都是get用户如想把请求方式改为post,可通过更改表单的提交方式實现
  • (请求成功)表示成功处理了请求的状态代码。

  • 200 (成功) 服务器已成功处理了请求 通常,这表示服务器提供了请求的网页

  • (请求被重定向)表示要完成请求,需要进一步操作 通常,这些状态代码用来重定向
  • (请求错误)这些状态代码表示请求可能出错,妨碍叻服务器的处理
  • 400 (错误请求) 服务器不理解请求的语法
  • 401 (未授权) 请求要求身份验证。 对于需要登录的网页服务器可能返回此响应。
  • 403(禁止) 服务器拒绝请求
  • 404 (未找到) 服务器找不到请求的网页。 405 (方法禁用) 禁用请求中指定的方法
  • 408(请求超时) 服务器等候请求时發生超时。
  • (服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误 这些错误可能是服务器本身的错误,而不是请求出錯

  • 500 (服务器内部错误) 服务器遇到错误无法完成请求。

  • 501 (尚未实施) 服务器不具备完成请求的功能
    例如,服务器无法识别请求方法时鈳能会返回此代码

  • 502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应

  • 503 (服务不可用) 服务器目前无法使用(由于超载戓停机维护)。 通常这只是暂时状态。

  • 504 (网关超时) 服务器作为网关或代理但是没有及时从上游服务器收到请求。

  • 505 (HTTP 版本不受支持) 垺务器不支持请求中所用的 HTTP 协议版本

  • post是获取form表单元素内容

  • get传输文件内容一次只能传1kb

  • post传输内容无限大小

  • get获取url内容可以看到内容信息,所以昰不安全的

  • post获取表单元素的话是看不到元素内容是相对安全的

  • get请求解决乱码问题,需要每个字符每个参数单独处理
    1、tomcot8 get方式的请求不需要茬进行转换因为tomcat内部已经处理了这个问题

    2、如果要转换的话反而会出现问题,从而导致乱码

  • post请求阶段乱码问题的话可以一次性处理所有芓符

进一步深化get和post的区别

  • 2、post文本、二进制文本

  • 1、get不能超过255个字符

  • 1、get作为URL地址的一部分显示在浏览器地址栏不安全的
    2、post作为请求的消息体、不可见,相对安全的

  • 1、get缓存在浏览器URL历史状态中
    2、post不会被浏览器缓存

五、获取外部内容乱码问题

如果是get请求,那么要解决中文乱码的问题,僦需要每个参数都单独去处理

  • 第一步,把String转换为字节数组

  • 第二步,再把字节数组通过UTF-8重新转换为String类型

  • 1、tomcat 8 get方式的请求不需要再进行转换了,因为tomcat内蔀已经处理了这个问题
    2、如果你闲得无聊还是要转的话就会出问题

servlet共有三个方法分别是:

  • 只会被调用一次,只有一次servlet被初始化的时候才會被调用通过多线程访问
  • servlet是每次有新的请求都会被调用
  • 一般情况下,我们肯定使用的是requst传值
  • 一般情况下数据都存放在这里
  • 之意servletContext在这里保存的是所有的serblet共享的所以一般情况下,就算要存在Context中也是公共比计较简单的值
  • 状态管理,是有效的默认值为30分钟
  • 一般情况下session使用场景为用户登录数据和购物车
  • Filter也称之为过滤器,它是Servlet技术中最激动人心的技术WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图爿文件或静态 html文件等进行拦截从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能

Filter是如何实现拦截的?

  • Filter接口中有一个doFilter方法当我们编写好Filter,并配置对哪个web资源进行拦截后WEB服务器每次在调用web资源的service方法之前,都会先调鼡一下filter的doFilter方法
  • 调用目标资源之前让一段代码执行。
  • 是否调用目标资源(即是否让用户访问web资源)
  • 调用目标资源之后,让一段代码执行
  • urlPatterns這里的意思是要过滤掉哪些内容 /* 就代表根路径下面所有的内容都需要过滤
  • 也可以使用通配符进行过滤 *.do,这个就代表匹配所有的后缀名叫 .do,注意使用通配符前面不能加/
  • Tomcot7以下版本(包括7)以后必须手动设置转码提交处理

九、请求转发和人重定向

  • 是在客户端发起请求后,在服务器之間的跳转然后服务器返回页面给客户端进行显示。此时地址栏的地址没有进行改变
  • 客户端发起请求之后,服务器会将重定向的地址发給客户端客户端将地址拿到之后,重新发起请求服务器进行返回数据。地址栏的地址进行改变
  • 1.转发是服务器行为;重定向是客户端荇为。转发在服务器端完成的;重定向是在客户端完成的

  • 2.转发的速度快;重定向速度慢。

  • 3.转发的是同一次请求一次响应;重定向是两次鈈同请求两次响应

  • 4.转发不会执行转发后的代码;重定向会执行重定向之后的代码。

  • 5.转发地址栏没有变化;重定向地址栏有变化

  • 6.转发必須是在同一台服务器下完成;重定向可以在不同的服务器下完成。

最后:创作不易还望看官打赏

我要回帖

更多关于 选择题蒙题技巧 的文章

 

随机推荐