会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132647个问题
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 46楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 48楼
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 49楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 50楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 53楼

1631088693(1).jpg

1631088743(1).jpg

老师,运行完idea后点击按钮 未找到资源,我发的上面的URL的端口号为什么不是8080,您帮我看看是什么原因呢?

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

老师我在第一个项目里面按照视频里的代码启动Tomcat然后清空控制台访问attr.do的实现效果是这样的


image.png

但是当我在另一个项目里练习的时候发现清空控制台再访问attr.do就是这样的,我什么不是和上面的实现效果一样呢

没有打印出输出语句


image.png


    listener

package com.bjsxt.listener;

import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;

/**
 * ServletContext对象属性操作监听器
 */
public class ServletContextAttrListener implements ServletContextAttributeListener {
    @Override
    public void attributeAdded(ServletContextAttributeEvent scae) {
        System.out.println("--------------Added Start----------------");
        System.out.println(scae.getName()+"-----"+scae.getValue());
        System.out.println(scae.getServletContext());
        System.out.println("---------------Added Ended---------------");
    }

    @Override
    public void attributeRemoved(ServletContextAttributeEvent scae) {
        System.out.println("--------------Removed Start----------------");
        System.out.println(scae.getName()+"-----"+scae.getValue());
        System.out.println(scae.getServletContext());
        System.out.println("---------------Removed Ended---------------");
    }

    @Override
    public void attributeReplaced(ServletContextAttributeEvent scae) {
        System.out.println("--------------Replaced Start----------------");
        System.out.println(scae.getName()+"-----"+scae.getValue());
        System.out.println(scae.getServletContext());
        System.out.println("---------------Replaced Ended---------------");
    }
}


servlet

package com.bjsxt.servlet;

import javax.servlet.ServletContext;
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;
@WebServlet("/attr.do")
public class ServletContextAttrServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();
        //编写触发监听器的三个方法
        servletContext.setAttribute("key","临江仙");
        servletContext.setAttribute("key","ITBZ");
        servletContext.removeAttribute("key");
    }
}


image.png



















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

问题:

①在客户端输入数据提交之后,不会有数据显示在span标签里

②在客户端输入的userid是1  服务器端显示出来的是0


jsonDataDemo.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$.ajax()中提交json格式数据</title>
    <script src="js/jquery.js"></script>
    <script>
        function but(){
            var userid = $("#userid").val();
            var username = $("#username").val();
            $.ajax({
                type:"post",
                url:"jsonData.do",
                data:JSON.stringify({
                    userid:userid,
                    username:username
                }),
                success:function (result){
                    $("#span").html(result);
                }
            })
        }
    </script>

</head>
<body>
    用户ID:<input type="text" id="userid"/><br/>
    用户名:<input type="text" id="username"/><br/>
    <span id="span"></span>
    <input type="button" value="OK" onclick="but()"/>
</body>
</html>



JsonDataServlt

/**
 * $.ajax()提交json格式数据
 */
@WebServlet(urlPatterns = "/jsonData.do")
public class JsonDataServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");

        //通过字符输入流从请求体中获取提交的JSON格式的字符串
        String string = req.getReader().readLine();
        //使用jackson将json格式字符串转为Java对象
        ObjectMapper objectMapper = new ObjectMapper();
        Users users = objectMapper.readValue(string, Users.class);
        System.out.println(users.getUserid()+" "+users.getUsername());

        resp.setContentType("application/json;charset=utf-8");
        PrintWriter pw = resp.getWriter();
        pw.print(string);
        pw.flush();
        pw.close();
    }
}




image.png



image.png

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

课程分类

百战程序员微信公众号

百战程序员微信小程序

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