1.简述什么是重定向?

服务器向浏览器发送—个302状态码及一个Location消息头(该消息头的值是一个地址,称之为重定向地址),浏览器收到后会立即向重定向地址发出请求。

2.简述什么是转发?怎么实现转发?

转发是—个Web组件(Servlet/JSP)将未完成的处理通过容器转交给另外—个Web组件继续完成。

可以按照以下三个步骤来实现转发:

(1)绑定数据到request对象,代码如下:

request.setAttribute(String name,Object obj);

(2)获得转发器,代码如下:

RequestDispatcher rd = request.getRequestDispatcher(String uri);

(3)转发代码如下:

rd.forward(request,response);

3.简述转发和重定向的区别?

转发和重定向的区别有以下几点:

(1)重定向是浏览器发送请求并收到响应以后再次向—个新地址发请求,转发是服务器收到请求后为了完成响应转到—个新的地址。

(2)重定向中有两次请求,不共享数据,转发只产生一次请求,且在组件间共享数据。(3)重定向后地址栏地址改变,而转发则不会。

(4)重定向的新地址可以是任意地址,转发到的新地址必须是同—个应用内的某地址。

4.Sevlet是否是线程安全的?如何解决Servlet线程安全问题?

Servlet存在线程安全问题。容器收到请求之后,会启动—个线程来进行相应的处理。默认情况下,容器只会为某个Servlet创建一个实例,如果同时有多个请求同时访问某个Servlet则肯定会有多个线程访问同一个Servlet实例。如果这些线程要修改Servlet实例的某个属性,就有可能发生线程安全问题。

可以使用synchronized对代码加锁来解决Servlet的安全问题。

最新文章

  1. centos7下搭建nginx+php7.1+mariadb+memcached+redis
  2. Linux主机共享目录给Windows主机的方法
  3. virtual 修饰符 C# .NET
  4. ahjesus mongodb指定到数据盘连接不上的解决方案
  5. 畅通工程再续--hdu1875
  6. POJ 2112 Optimal Milking【网络流+二分+最短路】
  7. Django- 'WSGIRequest' object has no attribute 'user'
  8. 转:jmeter性能测试---登录百度进行搜索
  9. vue 手机端开发 小商铺 添加购物车 以及结算 功能
  10. OC语言(二)
  11. SpringMVC从认识到细化了解
  12. eclipse运行spark程序时日志颜色为黑色的解决办法
  13. 浅谈mysql
  14. Can't use Subversion command line client***Probably the path to Subversion executable is wrong. Fix
  15. C#两个DataTable拷贝问题:该行已经属于另一个表的解决方法
  16. git的版本回退探索
  17. python 安装 scapy windows 10 64bit
  18. git工具的使用
  19. PC上的番茄工作法软件 Pomodairo 1.9 详细攻略
  20. jQuery因mouseover,mouseout冒泡产生的闪烁问题

热门文章

  1. android-problem——remount of /system failed: Read-only file system
  2. Codeforces Round #258 (Div. 2/A)/Codeforces451A_Game With Sticks
  3. 【POJ 3292】 Semi-prime H-numbers
  4. Python 包的制作(__init__.py)
  5. mysql的DUPLICATE KEY
  6. bzoj 1088 简单dfs
  7. appium 查错
  8. eclipse无法启动问题记录
  9. ADB结构及代码分析【转】
  10. POJ3281 Dining —— 最大流 + 拆点