会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题

<%--
  Created by IntelliJ IDEA.
  User: Je'f'f
  Date: 2021/9/2
  Time: 14:33
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
    <script>
        function but(){
            var xhr = new XMLHttpRequest();
            xhr.open("get","single.do");
            xhr.send();
            xhr.onreadystatechange = function(){

                if(xhr.readyState == 4 && xhr.status == 200){
                    alert(xhr.responseText);
                    //通过javaScript的内置对象JSON中的parse函数将JSON格式的字符串对转换成javascript对象
                    var obj = JSON.parse(xhr.responseText);
                    alert(obj.userid+" "+obj.username);
                    document.getElementById("span").innerHTML=obj.userid+"<br/>"+obj.username;
                }
            }
        }
    </script>
</head>
<body>
<h3>JSON格式的单个响应</h3>
<hr>
<sapn id="span"> </sapn>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>

jsp代码

package pojo;

public class Users {
    private int userid;
    private String username;

    public int getUserid() {
        return userid;
    }

    public void setUserid(int userid) {
        this.userid = userid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}

Users类

package com.servlet;

import com.fasterxml.jackson.databind.ObjectMapper;
import pojo.Users;

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 java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/single.do")
public class SingleObjectServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Users users = new Users();
        users.setUserid(1);
        users.setUsername("tutu");
        //使用jackson的API转化为JSON对象
        ObjectMapper objectMapper = new ObjectMapper();
        //将Users对象转换为JSON格式的字符对象
        String string = objectMapper.writeValueAsString(users);
        System.out.println(string);
        //设置相应类型为application/json
        resp.setContentType("application/json");
        PrintWriter pw = resp.getWriter();
        pw.print(string);
        pw.flush();
        pw.close();
    }
}
SingleObjectServlet

image.png

运行结果,点击OK无反应。请问是什么问题,找半天找不出来。

image.png

F12看了是这个

JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 1352楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1353楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1355楼
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 1356楼
JAVA 全系列/第五阶段:JavaWeb开发/JSP技术详解(旧) 1358楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1360楼

image.png

JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解 1361楼
JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 1362楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1363楼
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 1364楼

老师我跟着视频把代码敲完重启服务器之后就出现以下报错页面,也不自动跳转到浏览器,老师我该怎么解决这个问题

package com.bjsxt.servlet;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * 通过注解方式读取servlet初始化配置信息
 */
@WebServlet(urlPatterns = "initParam.do",initParams = {@WebInitParam(name = "key1",value = "value1"),@WebInitParam(name = "key2",value = "value2")},loadOnStartup = 1)
public class InitParamServlet extends HttpServlet {
    @Override
    public void init() throws ServletException {
        //读取@WebParam注解中的属性
        ServletConfig servletConfig = this.getServletConfig();
        System.out.println(servletConfig.getInitParameter("key1"));
        System.out.println(servletConfig.getInitParameter("key2"));
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletConfig servletConfig = this.getServletConfig();

        PrintWriter out = resp.getWriter();
        /*拼接HTML页面*/
        out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>");
        out.println("<HTML>");
        out.println("<HEAD><TITLE> ITBZ </TITLE></HEAD>");
        out.println("<BODY>");
        out.println("Value1:"+servletConfig.getInitParameter("key1")+"</br></br>");
        out.println("Value2:"+servletConfig.getInitParameter("key2")+"</br></br>");
        out.println("</BODY>");
        out.println("</HTML>");

        out.flush();
        out.close();
    }
}

以下是报错信息:


image.png


image.png


image.png



















JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1365楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637