保证前端请求方式和后台处理方式一致

1.web.xml文件配置如下:

<welcome-file-list>
       <welcome-file>login.html</welcome-file>
    </welcome-file-list>
    <servlet>
      <servlet-name>login</servlet-name>
      <servlet-class>com.qq1009108034.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>login</servlet-name>
      <url-pattern>/login</url-pattern>
    </servlet-mapping>

2.login.html代码如下:

<html>
  <head>
     <title>login.page</title>
  </head>
  <body>
    <form action="/prj-servlet-10/login" method="get">
    usrname:<input type="text" name="username"/><br>
    password:<input type="password" name="password"/><br>
    <input type="submit" value="login"/>
    </form>
    <!-- 安全退出系统的请求 -->
    <a href="/prj-servlet-10/logout">系统安全退出</a>
    <form action="/prj-servlet-10/logout" method="post">
       <input type="submit" value="退出系统"/>
    </form>
  </body>
</html>

3.LoginServlet代码如下:

在每个Servlet类中都编写了一下程序,来保证前端请求方式和后台需要的请求方式一致。

public class LoginServlet extends GenericServlet {

    @Override
    public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException {
        //将ServletRequest,ServletReponse强制类型转换成带有http的接口类型
        HttpServletRequest req=(HttpServletRequest) request;
        HttpServletResponse res=(HttpServletResponse) response;
        res.setContentType("text/html;charset=utf-8");
        PrintWriter out=res.getWriter();
        //获取浏览器发送的请求
        String method=req.getMethod();
        System.out.println(method);
        //loginServlet是处理登录,要求必须发送post请求
        if("GET".equals(method)){
            //前台报错
            out.print("405-您应该发送post请求");
            //后台报错
            throw new RuntimeException("405-您应当发送post请求");
            
        }
        //若程序能够执行到这里证明用户发送的请求是post请求,程序正常执行
        out.print("正在登录");

    }

}
1.重点:
      -编写一个servlet类应当继承HttpServlet,get请求请重写doGet方法,post请求请重写doPost请求;
      -doPost/doGet方法可以等同看做main方法;
      
   当浏览器发送的请求方式和后台的处理方式不一致时候,会出现一个错误代号 :405
     


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果后台返回的数据比前端的数据模型多,有几种常见的处理方法: 1. 前端可以在接收到后台返回的数据之后,手动将多余的数据过滤掉,只保留需要的数据。 2. 前端也可以将后台返回的数据与前端的数据模型进行对比,提取出与模型匹配的数据。 3. 对于后台返回的数据中包含的多余字段,前端可以选择忽略这些字段,或者在不影响业务逻辑的前提下使用这些字段。 4. 如果后台的数据结构发生了变化,前端可以考虑与后台协商,调整数据模型来适应新的数据结构。 最后,还可以通过设计数据传输协议来规范后台返回的数据,避免数据不一致的情况。 ### 回答2: 当后台返回的数据比前端的数据模型多时,有几种处理方法: 1. 使用全部数据: 可以根据后台返回的数据重新设计前端的数据模型,将后台返回的多余数据也包含在内。这样做的好处是可以充分利用后台提供的数据,避免后续需要再次请求后台获取缺失数据的情况。 2. 筛选所需数据: 通过前端后台返回的数据进行筛选,只选择自己需要使用的数据,将其保存到前端的数据模型中。这样可以减少前端的数据复杂度,提高数据处理的效率和页面的加载速度。 3. 额外字段处理: 如果后台返回的数据中存在一些前端需要的字段,可以在前端对其进行处理。例如,可以将这些字段添加到前端的数据模型中,但不使用它们,或者可以将这些字段过滤掉,只保留前端需要的字段。通过这种方式可以使前端的数据模型更加简洁,便于维护。 4. 动态数据模型: 在后台返回的数据模型和前端的数据模型之间建立一个动态数据模型。这个动态数据模型可以根据后台返回的数据动态调整自身的结构,使其与后台返回的数据保持一致。通过这种方法,前端可以灵活地处理不同的数据模型,确保数据的准确性和完整性。 综上所述,当后台返回的数据比前端的数据模型多时,可以根据具体情况选择合适的处理方法,以达到数据的有效利用和前端页面的顺利展示。 ### 回答3: 当后台返回的数据比前端的数据模型多时,我们可以采取以下几种处理方式: 1. 修改前端的数据模型:如果后台返回的数据对前端来说是有意义且有必要保存的,我们可以对前端的数据模型进行修改,增加相应的字段来存储后台返回的多余数据。 2. 丢弃多余的数据:如果后台返回的多余数据对前端来说并不重要,或者前端需要保存这些数据,我们可以选择直接丢弃这些数据,不进行处理。 3. 根据需求进行筛选:根据前端的需求,我们可以对后台返回的多余数据进行筛选,只保留需要使用的数据,而丢弃其他不需要的数据。 4. 存储在临时变量中:如果后台返回的多余数据只是在某些特定情况下需要使用,我们可以将这些数据暂时存储在临时变量中,待需要使用时再进行处理和展示。 5. 与后台进行沟通协商:如果后台返回的多余数据对前端来说既重要又有必要保存,我们可以与后台进行沟通,协商是否可以调整接口返回的数据结构,以减少不必要的数据传输。 总之,当后台返回的数据比前端的数据模型多时,我们需要根据具体情况来灵活处理,并根据前端的需求和数据模型的设计来综合考虑如何处理多余的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值