POST 响应 HTML 页面显示在调试器中,但未显示在使用 JAVAEE 的浏览器中

所以这里的问题是我有一个连接表单向 servlet 发送 Post 请求。这个 servlet 在做一些测试(密码,用户的电子邮件验证)后将请求转发到不同的页面。唯一的问题是我在查看我的POST请求时得到了正确的页面作为响应,但该页面没有显示在我的 Web 浏览器中。怎么来的?


这是我的代码。


登录 servlet


package AHSServlets;


import java.io.IOException;


import objMetier.signInForm;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;


import AHSbeans.User;


@WebServlet(

    name = "signInServ",

    urlPatterns = {"/"}

)

public class signInServ extends HttpServlet{

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

    {

        this.getServletContext().getRequestDispatcher("/signIn.jsp").forward(request, response);;

    }


    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

    {

        signInForm connect = new signInForm();

        User user = connect.validateSignIn(request);

        HttpSession session = request.getSession();

        if (user != null) {

            request.setAttribute("connect", connect);

            session.setAttribute("sessionUser", user);

            this.getServletContext().getRequestDispatcher("/restrict_client/client.jsp").forward(request, response);

        }

        else

        {

         request.setAttribute("connect", connect);

         this.getServletContext().getRequestDispatcher("/signIn.jsp").forward(request, response);

        }

    }

}

正如您在signIn.jsp${connect.error}应该向我展示错误消息中看到的那样。我再说一遍,但我可以看到使用调试器显示的这条消息,但在我的网络浏览器上看不到。所以发生的事情是在POST它停留在网页路径上并且我只在响应中得到 HTML 之后。



斯蒂芬大帝
浏览 222回答 1
1回答

紫衣仙女

好的,所以我不熟悉 angular,但只是查看ajax的w3,您需要处理这样的响应:将 id 添加到您的 span 元素(${connect.error}从中删除):&nbsp;<span id="somediv"></span>添加然后成功:&nbsp; &nbsp;<script type="text/javascript">&nbsp; &nbsp; &nbsp; &nbsp; var app = angular.module("AHS", []);&nbsp; &nbsp; &nbsp; &nbsp; app.controller("myCtrl", function ($scope, $http, $httpParamSerializerJQLike){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $scope.userObj = {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mail: "",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; password: "",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $scope.submitForm = function() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $http({&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;method : 'POST',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;url : '/', // use relative&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;data: $httpParamSerializerJQLike($scope.userObj),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;headers: {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8;'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }).then(function mySuccess(response) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //handle response here&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(response.data);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.getElementById("somediv").innerHTML = response.data;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; };&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; </script>然后对于您的 servlet:public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{&nbsp; &nbsp; signInForm connect = new signInForm();&nbsp; &nbsp; User user = connect.validateSignIn(request);&nbsp; &nbsp; HttpSession session = request.getSession();&nbsp; &nbsp; if (user != null) {&nbsp; &nbsp; &nbsp; &nbsp;// request.setAttribute("connect", connect); //what the hell is connect supposed to be here?&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; session.setAttribute("sessionUser", user);&nbsp; &nbsp; &nbsp; &nbsp;// this.getServletContext().getRequestDispatcher("/restrict_client/client.jsp").forward(request, response); //you do not do this in ajax requests.&nbsp; &nbsp; }else{&nbsp; &nbsp; //request.setAttribute("connect", connect);&nbsp; &nbsp; &nbsp;//this.getServletContext().getRequestDispatcher("/signIn.jsp").forward(request, response);&nbsp; &nbsp; }&nbsp; &nbsp; response.setContentType("text/plain");&nbsp; // Set content type&nbsp;&nbsp; &nbsp; response.setCharacterEncoding("UTF-8");&nbsp;&nbsp; &nbsp; response.getWriter().write("hello world");&nbsp; &nbsp; &nbsp; &nbsp;// Write response body.}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java