javaweb
day01
简述servlet的主要作用
读取客户发送的所有数据 查询 HTTP 请求中包含的任何其他请求信息 处理数据并生成结果 设置合适的 HTTP 响应参数 将响应信息回送给客户端 自己创建一个servlet需要继承哪个类
javax.servlet:定义了所有Servlet类都必须实现或继承的通用接口和类。 此包下有一个GenericServlet抽象类。它是一个通用的协议无关的Servlet。 继承自GenericServlet的Servlet应该要覆盖service()方法。 javax.servlet.http包:定义了采用HTTP协议通信的HttpServlet类。 此包下有HttpServlet抽象类。它继承自GenericServlet。能够处理HTTP请求的Servlet, 它在原有Servlet接口上添加了对HTTP协议的处理,它比Servlet接口的功能更为强大 指定servlet访问路径的注解是什么 @WebServlet 如何设置请求编码 request.setCharacterEncoding(“utf-8”); 如何设置响应编码 //使客户端浏览器并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。 response.setContentType(“text/html;charset=utf-8”); //设置响应信息的字符编码(必须在创建响应输出流之前进行设置) response.setCharacterEncoding(“utf-8”); 如何获取请求参数 使用HttpServletRequest对象中的getParameter方法获取客户端提交参数 简述servlet的生命周期
Servlet 容器创建 Servlet 的实例(下面会详述Servlet实例创建时机) Servlet 通过调用 init () 方法进行初始化(只调用一次)。 Servlet 调用 service() 方法来处理客户端的请求(每一次请求都要调用一次)。 service() 方法会自动调用doGet或doPost。 Servlet 通过调用 destroy() 方法终止(只调用一次)。 servlet的创建时机使用哪个属性设置 Servlet对象由Web服务器负责创建,创建的时机可以使用loadOnStartup属性进行配置
loadOnStartup属性的值必须是一个整数,表示servlet应该被载入的顺序 当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet; 当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。 正数的值越小,该servlet的优先级越高,应用启动时就越先加载。 当值相同时,容器就会自己选择顺序来加载。 取值1,2,3,4,5代表的是优先级,而非启动延迟时间。 servlet初始化参数用哪个注解指定 @WebInitParam 例如: @WebServlet(urlPatterns=“/hello”,initParams={ @WebInitParam(name=“setChar”,value=“utf-8”) }) HTTP状态码有哪些 1xx:消息。这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。 2xx:成功。代表请求已成功被服务器接收、理解、并接受。比如: ● 200:请求已成功。出现此状态码是表示正常状态。 3xx:重定向。代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。 4xx:请求错误。代表客户端请求发生错误。比如: ● 404:找不到请求的资源 ● 405:服务器端处理请求方法不被允许。 5xx:服务器错误。代表服务器端出现错误。 比如: ● 500:服务器端代码错误。 ● 503:服务器异常(通常重启服务器即可解决)。 如何将java代码中的对象转为json格式字符串 Servlet中使用Jackson将java对象或集合转换为json对象或数组 具体如下: //使用Jackson的jar包中的ObjectMapper进行java对象与jose数据的转换 ObjectMapper om = new ObjectMapper(); //使用writeValueAsString方法将java对象转换为json格式字符串 out.print(om.writeValueAsString(list)); 如何设置后台跨域访问 CORS跨域设置:response.setHeader(“Access-Control-Allow-Origin”, “*”); 或者 response.setHeader(“Access-Control-Allow-Origin”, “http://localhost:8081”);
day 02
什么是会话 客户端访问服务端发生的一系列请求和响应过程称之为会话。 通俗的说:从打开浏览器向服务器端发送请求开始,到客户端关闭浏览器结束访问为止,就是一个会话。 什么是会话跟踪技术 会话跟踪技术,就是一种在客户端与服务器间保持HTTP状态的解决方案,管理浏览器客户端和服务器端之间会话过程中产生的会话数据。 Cookie的缺点 1.cookie安全性不够高; 2.cookie可能被禁用; 3.cookie存储空间很小(只有4–10KB左右) 简述Session原理 1.当第一次请求时,在服务器端创建一个Session对象,并且为此对象生成一个sessionId。 2.同时,使用Cookie将此sessionId返回给客户端,并存储在客户端的Cookie中。 3.当客户端发起下一次请求时,必须携带此sessionId发送给服务器端。 4.服务器端根据接收的sessionId,就能找回Session对象,从而获取了上一次请求的信息。 使用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。 getSession()与getSession(boolean)的区别 a. getSession() 没有参数:如果存在一个Session对象,就使用此对象;否则就创建新的Session对象。 b. getSession(boolean) 有一个布尔类型参数: true:等同于 getSession() false:如果不存在一个Session对象,就返回null Session对象的主动销毁的方式 session.invalidate(); 简述javaEE三大作用域对象 1.HttpServletRequest作用域对象:作用范围是一个请求响应范围(从一个请求开始,到响应结束)。 2.HttpSession作用域对象:作用范围是一个会话范围(从浏览器发送请求访问服务器开始,到浏览器关闭为止; 在此期间,不论发送了多少次请求响应,都是一个session范围)。 3.ServletContext作用域对象:作用范围是一个应用程序范围(从服务器启动开始,到服务器关闭为止)。 过滤器的特点 1.过滤器可以检查和修改ServletRequest和ServletResponse对象。 2.过滤器可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器。 3.过滤器可以被串联在一起,形成过滤器链,协同修改请求和响应对象。 4.过滤器是Servlet的一种特殊用法,主要用来完成一些通用的操作。 创建过滤器须实现哪个接口 javax.servlet.Filter doFilter方法的作用 doFilter(ServletRequest reg,ServletResponse res,FilterChain chain) 用于进行过滤操作,该方法的第一个参数为ServletRequest对象, 此对象给过滤器提供了对请求信息访问;第二个参数为ServletResponse,用于 响应使用ServletRequest对象访问的信息,通常在简单的过滤器中忽略此参数;最后一个参数为 FilterChain,该参数用来调用过滤器链中的下一个资源。
相关阅读:
ssm基于角色访问控制的文件共享系统毕业设计源码161821
Spring注册Bean系列--方法5:@Import+ImportBeanDefinitionRegistrar
React使用哲学
[数据结构] 万字解析排序算法
Labelme启动崩溃或报错qtpy.QtBindingsNotFoundError: No Qt bindings could be found的原因
苹果使用3D打印技术制造Apple Watch Series 9手表外壳
7.ProTable必填的查询表单
数据结构树与二叉树的实现
解密Web安全:Session、Cookie和Token的不解之谜
java计算机毕业设计物流公司停车位管理源程序+mysql+系统+lw文档+远程调试
原文地址:https://blog.csdn.net/weixin_45778311/article/details/134039260