请问JSP里怎样把javascript的变量值赋给java的变量,谢谢 请问JSP里怎样把javascript的变量值赋给java的变量,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把js变量中的值赋值给一hidden,然后提交,用request.getParameter()获取就可以了 JSP中不可能实现这样的功能,因为JSP的页面是运行在服务器端的,而JS是运行在客户端的,由浏览器编译的,如果要把客户端变量传过去,只能通过GET或者POST的方法传递给后台进行处理 可以实现 但是比较麻烦 不是直传。 你在页面定义一个文本框用来接收js中的变量 然后你的提交页面 在action中写入你要提交的路径,然后在你的servlet或者action 中得到js中的变量。2,还有个意思是。<Script>var testvalue='1'; <% String test= testvalue; %>lz 想要这种实现 是不能的。 用request.getParameter()获取就可以了 不能直接赋值,如果你非要在页面上实现这种效果,有个间接的笨方法。js变量:js_element;java变量:java_attr.function noName(){ if(js_element=='1') <%java_attr="1"%> if(js_element=='2') <%java_attr="2"%> if(js_element=='3') <%java_attr="3"%> ......}类似的,一直往下写。当js变量值的范围比较小,遍历判断,并给java变量赋以相应的值。js变量值范围大时,就不行了。 <script>var str="祝福四川";document.getElementById("hid")=str;document.form1.submit();</script><type=hidden id=hid name=hidd>后台直接request.getParameter("hidd")就好了 实现原理:将客户端的值传至服务器端赋值给服务器变量,要想在客户端完成那是不可能的,上面说的利用隐藏域,ajax,还有页面url参数都是可行的。 同页面要把javascript变量转成jsp,是不可能的,ajax也不行 js和jsp都能访问到的是什么? 这里你已经是说用JSP了我现在就假设你已经在服务器上运行的页面而你的意思是用Ajax来进行无刷新的数据操作吧恩 那你最好使用一些脚本框假来解决 因为这样对于IE的兼容什么的你可以省很多代码我这里就用JQuery来给你演示一个吧 都是最简单的 也是我才学习的....多了自己去想吧首先在页面的代码UserVerify.html<!DOCTYRPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <title>JQuery实例2:可以编辑的表格</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <link type="text/css" rel="stylesheet" href="css/userVerify.css"/> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/userVerify.js"></script> </head> <body> 请输入用户名:<input type="text" id="userName"/><input type="button" value="校验" id="verifyButton"/> <div id="result"></div> </body></html>然后是JSuserVerify.js/*需要通过Javascript代码来做两件事情1.button被按下的时候,需要将文本框中的数据获取到,然后发送给服务端,最后接受服务器返回的数据,填充到我们预留的div中,这样用户就可以看到结果2.文本框上,用户按键之后,需要判断文本框中的内容是否为空,如果不为空,红色的边框和背景图就应该取消,否则保留*//*需要在页面装载完成是注册上这些工作*/$(document).ready(function(){ //这里面的内容就是页面装载完成后需要执行的代码 //alert('JQuery 已经加载完毕了!!'); //需要找到button按钮,注册事件 $("#verifyButton").click(function(){ //alert("Button click!"); //1.获取文本框的内容 var userName = $("#userName").val(); //2.将这个内容发送给服务器端 if(userName == ""){ alert("用户名不能为空"); }else{ $.get("http://localhost:8080/Entironment_Design/usersVerify?userName=" + encodeURI(encodeURI(userName)),null,function(response){ //3.接受服务器端返回的数据,填充到div中 $("#result").html(response); }); } }); //需要找到文本框,注册事件 $("#userName").keyup(function(){ //alert("key up!"); });});CSS里我就不多写了 反正是简单的例子最后是在你的工程里的servletUserVerify.java/* * To change this template, choose Tools | Templates * and open the template in the editor. */package servlet;import java.io.IOException;import java.io.PrintWriter;import java.net.URLDecoder;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * * @author xingxing */public class UsersVerify extends HttpServlet { /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { String param = request.getParameter("userName"); if (param == null || param.length() == 0) { out.println("用户名不能为空"); } else { String userName = URLDecoder.decode(param, "UTF-8"); if (userName.equals("wangxingkui")) { out.println("用户名[" + userName + "]已经存在,请使用别的用户名注册"); } else { out.println("可以使用用户名[" + userName + "]注册"); } } } finally { out.close(); } } // <editor-fold defaultstate="collapsed" desc="HttpServlet"> /** * Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. */ public String getServletInfo() { return "Short description"; }// </editor-fold>}JQuery自己去下个吧 还有就是把$.get("http://localhost:8080/Entironment_Design/usersVerify?userName=" + encodeURI(encodeURI(userName)),null,function(response){里面的http://localhost:8080/Entironment_Design/usersVerify 改成你自己的工程就好这里值得注意的就是你的这些代码 必须都运行在服务器上才是可以的 用1楼的方法活着在js代码中重写一下action、href然后带上js中的值传到servlet中去。。 js操作cookie的疑惑 Html代码中Javascript函数的问题 好难的问题,页面上的js alert("");后面的所有语句执行成功 在线等 @@我想大变 页面出错,javascript出现问题,向高手求教 请问关于弹出窗口的问题 弹出窗口的怪问题。高手指教! 如何捕捉一个框架网页的关闭事件? 如何用javascript设置窗体大小 用超级链接提交表单如何通过检验? 用jquery实现的三级联动菜单,如何刷新时加载默认的选项! javascript中字符串如何转换为datetime类型
然后你的提交页面 在action中写入你要提交的路径,然后在你的servlet或者action 中得到js中的变量。2,还有个意思是。<Script>
var testvalue='1'; <%
String test= testvalue;
%>lz 想要这种实现 是不能的。
js变量:js_element;java变量:java_attr.
function noName(){
if(js_element=='1') <%java_attr="1"%>
if(js_element=='2') <%java_attr="2"%>
if(js_element=='3') <%java_attr="3"%>
......
}
类似的,一直往下写。
当js变量值的范围比较小,遍历判断,并给java变量赋以相应的值。
js变量值范围大时,就不行了。
document.getElementById("hid")=str;
document.form1.submit();
</script>
<type=hidden id=hid name=hidd>后台直接request.getParameter("hidd")就好了
要想在客户端完成那是不可能的,上面说的利用隐藏域,ajax,还有页面url参数都是可行的。
我现在就假设你已经在服务器上运行的页面
而你的意思是用Ajax来进行无刷新的数据操作吧
恩 那你最好使用一些脚本框假来解决 因为这样对于IE的兼容什么的你可以省很多代码
我这里就用JQuery来给你演示一个吧 都是最简单的 也是我才学习的....多了自己去想吧首先在页面的代码
UserVerify.html
<!DOCTYRPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>JQuery实例2:可以编辑的表格</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link type="text/css" rel="stylesheet" href="css/userVerify.css"/>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/userVerify.js"></script>
</head>
<body>
请输入用户名:<input type="text" id="userName"/><input type="button" value="校验" id="verifyButton"/>
<div id="result"></div>
</body>
</html>然后是JS
userVerify.js
/*
需要通过Javascript代码来做两件事情
1.button被按下的时候,需要将文本框中的数据获取到,然后发送给服务端,最后接受服务器返回的数据,填充到我们预留的div中,这样用户就可以看到结果
2.文本框上,用户按键之后,需要判断文本框中的内容是否为空,如果不为空,红色的边框和背景图就应该取消,否则保留
*//*
需要在页面装载完成是注册上这些工作
*/$(document).ready(function(){
//这里面的内容就是页面装载完成后需要执行的代码
//alert('JQuery 已经加载完毕了!!');
//需要找到button按钮,注册事件
$("#verifyButton").click(function(){
//alert("Button click!");
//1.获取文本框的内容
var userName = $("#userName").val();
//2.将这个内容发送给服务器端
if(userName == ""){
alert("用户名不能为空");
}else{
$.get("http://localhost:8080/Entironment_Design/usersVerify?userName=" + encodeURI(encodeURI(userName)),null,function(response){
//3.接受服务器端返回的数据,填充到div中
$("#result").html(response);
});
}
});
//需要找到文本框,注册事件
$("#userName").keyup(function(){
//alert("key up!");
});
});CSS里我就不多写了 反正是简单的例子最后是在你的工程里的servlet
UserVerify.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/package servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/**
*
* @author xingxing
*/
public class UsersVerify extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String param = request.getParameter("userName");
if (param == null || param.length() == 0) {
out.println("用户名不能为空");
} else {
String userName = URLDecoder.decode(param, "UTF-8");
if (userName.equals("wangxingkui")) {
out.println("用户名[" + userName + "]已经存在,请使用别的用户名注册");
} else {
out.println("可以使用用户名[" + userName + "]注册");
}
}
} finally {
out.close();
}
} // <editor-fold defaultstate="collapsed" desc="HttpServlet">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
} /**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
} /**
* Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}// </editor-fold>}
JQuery自己去下个吧 还有就是把
$.get("http://localhost:8080/Entironment_Design/usersVerify?userName=" + encodeURI(encodeURI(userName)),null,function(response){
里面的http://localhost:8080/Entironment_Design/usersVerify
改成你自己的工程就好这里值得注意的就是你的这些代码 必须都运行在服务器上才是可以的