servlet即服务程序,作用在web服务器中.
Servlet的作用:
1.接收用户发送的请求数据
2.调用其他的java程序来处理请求
3.根据处理结果,将结果响应给客户端
创建servlet程序(javaEE程序)
1.创建一个类继承HttpServlet类,并重写init(),service()以及destroy()方法.
无参构造器目的是观察服务器什么时候创建(在前端第一次进行访问操作时)
init()方法在构造器执行完毕后执行,可以对servlet程序进行初始化,可以读取web.xml中的参数信息
service()方法中的参数HttpServletRequest req,表示请求对象,前端发来的请求数据都存储于此对象中. HttpServletResponse resp,表示响应对象,用来响应前端数据
destroy()方法可以让我们在服务器关闭前再执行操作
2.在web.xml文件中配置Servlet
3.在pom.xml中添加依赖jar包地址
过滤器
过滤器就是实现了FIlter接口的类
过滤器可以实现程序的通用功能,减少代码冗余,提高维护性
一个过滤器可以给多个程序使用,一个程序可以使用多个过滤器
有以下三种使用场景
1.统一编码过滤
1.对xml文件进行配置
过滤内容在打包后不方便修改,为了方便后期修改过滤内容,我们在对其进行配置时候,将过滤内容的参数添加到web.xml文件中.
2.创建一个类实现FIlter类,使其作为过滤器
3.编写init()方法,初始化过滤器,其中FileterConfig参数可以获得初始化的参数
4.编写过滤器方法,进行具体操作,其中servletRequest代表请求内容,servletResponse代表响应内容.
其中FilterChain可以将处理后的request 和response对象传递到过滤链上的下一个资源.
2.权限验证
3.跨域过滤
同步请求
当前端页面和后端进行数据交互时,前段不能进行其他操作,后端的响应返回回来后,会将前端的页面覆盖.
异步请求
异步请求则会很好的解决同步请求的问题.异步请求操作和后端进行数据交互的时候,返回的响应不会影响前端页面.但是也会出现跨域访问问题.浏览器默认不许js接收其他服务器返回的内容.此处我们在后端使用CorsFilter过滤器解决该问题.
实现异步请求:
使用XMLHttpRequest对象来进行前后端的交互,前端收到响应后做出操作.
异步请求案例:
对文本框添加onblur,使得在输入框失去焦点后触发CheckAccount方法,该方法利XMLHttpRequest对象httpobj将请求地址和数据封装起来后发送到后端(open,send方法)后端根据请求数据做出响应,再接收后端的响应结果
跨域问题
当浏览器从一个网页访问另一个网页的资源时,如果它们不同源,则会出现跨域问题,为了防止收到攻击,浏览器默认禁止此行为.
当两个网页有域名,端口号,协议的不同时,则被认为是跨域访问.
解决:使用过滤器
简化异步请求
利用axios.min框架,对异步请求操作进行简化
jason(后端相应的标准数据格式)
当后端向前端返回的响应结果是一个对象时,前端无法识别,如果返回特定格式的字符串前端就能将其识别成一个对象.
jason便是如此,jason是前端对象的一种表现形式.而对于java而言只是特定形式的字符串.
而java中想要将字符串或者对象转换成jason形式的字符串,则需要用到ObjetMapper类的对象,这需要我们在pom.xml中添加该jar包的地址信息
返回一个集合jason字符串
标准的jason返回结果
我们要求后端返回的jason必须由三部分组成.code(返回码),message(查询情况),data(查询到的数据)
在该代码中,resp.data是代指后端返回的jason对象
我们需要创建一个类来专门存放和封装后端响应结果的信息