当前位置: 首页 > 知识库问答 >
问题:

使用ajax将值从servlet返回到jsp页面

史商震
2023-03-14

首先感谢你花时间回答我的问题。

我想做的是:当我的jsp页面加载时,我想从我的servlet中获取一个值来设置我的按钮的实际状态和我的滑块值的实际状态。在我的页面上更新之后,我想更改它的值。我已经可以将JSP页面值传递给我的servlet,但我有点坚持将值从servlet传递给jsp页面。

这里有一些代码可以帮助

当做

JSP文件

<!--<!--DOCTYPE html -->

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="./resources/css/jquery.mobile-1.4.2.css">
<script src="./resources/script/jquery-1.11.0.js"></script>
<script src="./resources/script/myJquery.js"></script>
<script src="./resources/script/jquery.mobile-1.4.2.js"></script>
</head>
<body>


    <!-- RDC SUB WINDOW LIVING -->
    <div data-role="page" ID="LIVING">
        <div data-role="header">
            <a href="#RDC"
                class="ui-btn ui-corner-all ui-shadow ui-icon-home ui-btn-icon-left">HOME</a>
            <h1>LIVING ROOM</h1>
        </div>

        <div data-role="main" class="ui-content">
            <div data-role="collapsible">
                <h1>CELLING: LIGHT</h1>
                <div class="containing-element">
                    <img src="./resources/images/light-on.png" alt="LIGHT-ON"
                        class="ui-li-icon"> <br> <select id="tLight"
                        name="tLight" data-role="slider">
                        <option value="off">Off</option>
                        <option value="on">On</option>
                    </select> <input type="range" name="tDimmer" id="tDimmer" value="0" min="0"
                        max="100" data-popup-enabled="true">
                </div>

            </div>
        </div>

        <div data-role="footer">
            <h1></h1>
        </div>
    </div>

AJAX代码

//Living room Server $POST
$(document).ready(function() {

    $(function Dimmer() {
        $("#tDimmer").change(function() {
            $.post("MyServlet", {
                mLivingDimmer : $("#tDimmer").val()
            });
        });
    });
    $(function Light() {
        $("#tLight").change(function() {
            $.post("MyServlet", {
                mLivingLight : $("#tLight").val()
            });
        });
    });
});

服务器代码:

package com.linux;

import java.io.IOException;
import java.io.PrintWriter;

import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


//@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    //GpioController gpio;
    //GpioPinDigitalOutput mLight;
    String LightState = "on";
    String DimmerValue = "25";

    public MyServlet() {
                super();

    }


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

    }


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

        System.out.println("LivingLight = "+request.getParameter("mLivingLight"));  
        System.out.println("LivingDimmer = "+request.getParameter("mLivingDimmer"));    
    }
}

共有1个答案

东郭自强
2023-03-14

System.out.println()打印到控制台,即如果您在命令提示符或单击批处理文件时启动它,则打印到Tomcat的控制台(或任何servlet容器)。您想打印到响应。所以您需要:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.write("LivingLight = "+request.getParameter("mLivingLight"));  
    out.write("LivingDimmer = "+request.getParameter("mLivingDimmer"));    
}

然后在Ajax中,您需要一个success函数,在该函数中,您将使用字符串操作解析从服务器返回的响应:

             ...,
             success : function(data)
             {
                //Parse data
             },
             ....
 类似资料:
  • 问题内容: 我认为(实际上我知道!)我在这里做错了事,我试图将一些值填充到HashMap中,并将每个hasmap添加到将添加到JSON对象的列表中: 我的问题是我知道这将返回一个字符串,我似乎无法解析(这是问题)。我的问题是如何返回实际的JSON编码的字符串(甚至应该这样做?),或者针对这种类型的问题的最佳攻击方法是什么?我为此使用的JavaScript如下: 请注意,JSON响应可以很好地返回,

  • 我正在尝试将某些值从servlet传递到JSP页面,并添加已传递到标记的值,阅读了许多文章,我得到了以下代码。 使用输入页面选择文件 验证上传的文件 调用上传。java将上传的文件保存在WEB-INF中 在上载的文件中,选定的文件保存为“我的”。txt 使用缓冲区读取文件内容并将其保存到变量 将其传递到JSP页面 上载JAVA 上传文件后, mypage.jsp 现在,当我点击上传按钮完成所有这些

  • 我研究一个简单的问题已经有相当长的时间了。在包括这个网站在内的许多论坛上搜索了很多,但仍然无法解决这个问题。因此请求您的帮助。 我有一个带有文本区域和提交按钮的JSP页面。 在Servlet类中,我执行以下操作- 因此,在我点击提交按钮后,我的请求将转到servlet,并从servlet返回到原始的jsp,但我无法用servlet输出填充文本区域。我已经尝试了很多方法,就像我在互联网上发现的那样,

  • 谁能告诉我,除了RequestDispatcher之外,是否还有其他方法可以从我的servlet调用jsp页面?因为我试了很多都没有成功。 我的servlet工作正常,从JSP中恢复了所有数据。我所需要的只是在用户正确输入用户名和密码时被重定向到另一个页面。 我要为其重定向的jsp

  • 我需要帮助将结果集值从servlet转发到jsp,而不使用JSTL实现 工作流程: 用户在输入框中输入值并单击搜索按钮 单击搜索时会调用servlet。servlet专注于数据库实现并将结果集值转发到请求所在的同一jsp页面。 问题:我的结果集大小是3,但仅表顶部的值就打印在我的jsp页面中。其余2个值缺失。我希望所有的值都打印在我的jsp页面中。 这是我的代码: Productlist.jsp

  • 我需要你的帮助,在这个特殊的问题上,我想传递一个隐藏输入类型的值。jsp程序到servlet程序 我现在做的基本上是这样的 从servlet中我得到了值 它没有打印任何想法。jsp表单方法是post,servlet方法是doPost 有什么想法为什么它不传递参数吗?