1、简述servlet的主要作用
1.读取客户发送的所有数据
2.查询 HTTP 请求中包含的任何其他请求信息
3.处理数据并生成结果
4.设置合适的 HTTP 响应参数
5.将响应信息回送给客户端
2、自己创建一个servlet需要继承哪个类
继承HttpServlet类
3、指定servlet访问路径的注解是什么
@WebServlet
4、如何设置请求编码
request.setCharacterEncoding(“utf-8”);
5、如何设置响应编码
response.setCharacterEncoding(“utf-8”);
6、如何获取请求参数
使用HttpServletRequest对象中的getParameter方法获取客户端提交参数。 使用HttpServletResponse创建响应输出流,向客户端响应信息。
7、简述servlet的生命周期
- Servlet 容器创建 Servlet 的实例(下面会详述Servlet实例创建时机)
- Servlet 通过调用 init () 方法进行初始化(只调用一次)。
- Servlet 调用 service() 方法来处理客户端的请求(每一次请求都要调用一次)。
service() 方法会自动调用doGet或doPost。 - Servlet 通过调用 destroy() 方法终止(只调用一次)。
在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。
8、servlet的创建时机使用哪个属性设置
loadOnStartup
9、servlet初始化参数用哪个注解指定
@WebInitParam
10、HTTP状态码有哪些
HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由 RFC 2616 规范定义的。所有状态码的第一个数字代表了响应的五种状态之一。
1xx:消息。这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。
2xx:成功。代表请求已成功被服务器接收、理解、并接受。比如:
● 200:请求已成功。出现此状态码是表示正常状态。
3xx:重定向。代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。
4xx:请求错误。代表客户端请求发生错误。比如:
● 404:找不到请求的资源
● 405:服务器端处理请求方法不被允许。
5xx:服务器错误。代表服务器端出现错误。 比如:
● 500:服务器端代码错误。
● 503:服务器异常(通常重启服务器即可解决)。
11、如何将java代码中的对象转为json格式字符串
//使用Jackson的jar包中的ObjectMapper进行java对象与jose数据的转换
ObjectMapper om = new ObjectMapper();
//使用writeValueAsString方法将java对象转换为json格式字符串
out.print(om.writeValueAsString(list));
12、如何设置后台跨域访问
response.setHeader(“Access-Control-Allow-Origin”, “*”);
1、什么是会话
客户端访问服务端发生的一系列请求和响应过程称之为会话。 通俗的说:从打开浏览器向服务器端发送请求开始,到客户端关闭浏览器结束访问为止,就是一个会话。
2、什么是会话跟踪技术
会话跟踪技术,就是一种在客户端与服务器间保持HTTP状态的解决方案,管理浏览器客户端和服务器端之间会话过程中产生的会话数据。
3、Cookie的缺点
1.cookie安全性不够高;
2.cookie可能被禁用;
3.cookie存储空间很小(只有4–10KB左右)
4、简述Session原理
1.当第一次请求时,在服务器端创建一个Session对象,并且为此对象生成一个sessionId。
2.同时,使用Cookie将此sessionId返回给客户端,并存储在客户端的Cookie中。
3.当客户端发起下一次请求时,必须携带此sessionId发送给服务器端。
4.服务器端根据接收的sessionId,就能找回Session对象,从而获取了上一次请求的信息。
5、使用ajax 访问时,会将sessionid写入到Cookie中,返回给客户端。但是需要哪些设置
1.服务器端设置:response.setHeader(“Access-Control-Allow-Credentials”, “true”); 用于设置跨域时允许发送Cookie。
2.服务器端设置:response.setHeader(“Access-Control-Allow-Origin”, “http://127.0.0.1:8848”); 如果允许发送Cookie,那么允许跨域的url就不能为 “*”。
3.如果是使用Axios框架,那么需要设置:axios.defaults.withCredentials = true; 用于设置允许Axios发送Cookie。
6、getSession()与getSession(boolean)的区别
a. getSession() 没有参数:如果存在一个Session对象,就使用此对象;否则就创建新的Session对象。
b. getSession(boolean) 有一个布尔类型参数:
true:等同于 getSession()
false:如果不存在一个Session对象,就返回null
7、Session对象的主动销毁的方式
session.invalidate();
8、简述javaEE三大作用域对象
1.HttpServletRequest作用域对象:作用范围是一个请求响应范围(从一个请求开始,到响应结束)。
2.HttpSession作用域对象:作用范围是一个会话范围(从浏览器发送请求访问服务器开始,到浏览器关闭为止; 在此期间,不论发送了多少次请求响应,都是一个session范围)。
3.ServletContext作用域对象:作用范围是一个应用程序范围(从服务器启动开始,到服务器关闭为止)。
9、过滤器的特点
1.过滤器可以检查和修改ServletRequest和ServletResponse对象。
2. 过滤器可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器。
3.过滤器可以被串联在一起,形成过滤器链,协同修改请求和响应对象。
4. 过滤器是Servlet的一种特殊用法,主要用来完成一些通用的操作。
10、创建过滤器须实现哪个接口
javax.servlet.Filter
11、doFilter方法的作用
doFilter(ServletRequest reg,ServletResponse res,FilterChain chain) 用于进行过滤操作,该方法的第一个参数为ServletRequest对象, 此对象给过滤器提供了对请求信息访问;第二个参数为ServletResponse,用于 响应使用ServletRequest对象访问的信息,通常在简单的过滤器中忽略此参数;最后一个参数为 FilterChain,该参数用来调用过滤器链中的下一个资源。