|
1.一个典型的HTTP请求的request header和response header包含哪些信息?
1)Request Header包含信息:
Accept: */*
Accept-Language: en-us
Connection: Keep-Alive
Host: localhost:8080
Referer: http://localhost/links.jsp
User-Agent: Mozilla/4.0
Accept-Encoding: gzip, deflate
2)Response Header包含信息
Location: http://www.baidu.com
Server:apache tomcat
Content-Encoding: gzip
Content-Length: 80
Content-Language: zh-cn
Content-Type: text/html; charset=GB2312
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
Refresh: 1;url=http://www.baidu.org
Content-Disposition: attachment; filename=aaa.zip
Transfer-Encoding: chunked
Cache-Control: no-cache
Pragma: no-cache
Connection: close(1.0)/(1.1)Keep-Alive
2.
什么是Servlet?
答: Servlet(Servlet Applet),全称Java Servlet .是用Java编写的服务器端程序。其主要功能在与交互式的浏览和修改数据,生成动态Web内容
Servlet3 新特性
1)注解支持;Servlet、Filter、Listener无需在web.xml中进行配置,可以通过对应注解进行配置;
2)支持Web模块;
3)Servlet异步处理;
4)文件上传API简化;
3.
JavaWeb开发的三大组件分别对应哪些注解?
答:@WebServlet 、@WebFilter 、@WebListener
主要属性有哪些?
答:
@WebServlet注解主要属性:
name: 指定servlet的name属性,等价于<Servlet-name>.如果没有显示指定,则该servlet的取值即为类的全限定名.
urlPatterns:指定一组servlet的url的匹配模式,等价于<url-pattern>标签.
loadOnStartup:指定servlet的加载顺序,等价于<load-on-startup>标签.
initParams :指定一组初始化参数,等价于<init-param>标签.
displayName:servlet的显示名,等价于<display-name>标签.
description:servlet的描述信息,等价于<description>标签.
@WebFilter注解主要属性:
filterName:Filter名称
initParams:配置参数
displayName:Filter显示名
servletNames:指定对哪些Servlet进行过滤
urlPatterns/value:两个属性作用相同,指定拦截的路径
@WebListener注解主要属性:
value :该监听器的描述信息。
4.简述servlet的生命周期
答:
Servlet生命周期可以分成四个阶段:加载和实例化、初始化、服务、销毁。
当客户第一次请求时,首先判断是否存在Servlet对象,若不存在,则由Web容器创建对象,而后调用init()方法对其初始化,此初始化方法在整个Servlet生命周期中只调用一次。
完成Servlet对象的创建和实例化之后,Web容器会调用Servlet对象的service()方法来处理请求。
当Web容器关闭或者Servlet对象要从容器中被删除时,会自动调用destory()方法。
5.servlet如何获取请求信息?
答:使用HttpServletRequest 对象获取请求信息
如何给客户端相应?
答:使用HttpServletResponse对象给客户端相应
6.forward和redirect的区别?
答:forward是指转发,是服务器去请求资源,属于服务器行为。服务器直接访问目标地址的URL,将URL的内容响应给浏览器,浏览器接收服务器发送过来的内容,但不知道这个内容(资源)的来源,所以当请求方式是forward时,浏览器地址栏不会发生改变;forward是一次请求一次响应。
redirect是指重定向,是浏览器去请求资源,属于客户端行为。服务器返回给客户端的是状态码以及location地址值,客户端浏览器则根据响应回来的地址值,再次发起访问请求,所以当请求方式是redirect时,浏览器地址栏会发生变化;redirect是两次请求两次响应。
7.
如何开发一个Filter?
答:
1):编写java类实现Filter接口,并实现其doFilter方法。
2):在 web.xml 文件中使用<filter>和<filter-mapping>元素对编写的filter类进行注册,并设置它所能拦截的资源。
Filter应用场景:
应用场景1:通过配置参数encoding指明使用何种字符编码,以处理html form请求参数的中文问题。
应用场景2:
禁止浏览器缓存所有动态页面的过滤器。
8.有三台服务器,如果在一台服务器上登录了某个用户,其他两台就不能登录这个用户,如何实现?
答:把所有的session的数据保存到Mysql服务器上,所有Web服务器都来这台Mysql服务器来获取Session数据。
9.Servlet的线程不安全,如何处理?
答:1.最简单的就是不使用字段变量
2.使用final修饰变量
3.线程安全就是多线程操作同一个对象不会有问题,线程同步一般来保护线程安全
10.在tomcat上部署web应用的常见方式有哪些?
在Tomcat中有四种部署Web应用的方式
(1)利用Tomcat自动部署
(2)利用控制台进行部署
(3)增加自定义的Web部署文件(%Tomcat_Home%\conf\Catalina\localhost\AppName.xml)
(4)手动修改%Tomcat_Home%\conf\server.xml文件来部署web应用
效果视频:
https://pan.baidu.com/s/1M1D-onhE-tee5z3FGKYWkQ
下载地址:
|
|