servlet无法获得ajax传过来的数据
这是jsp部分,很简单就是按按钮把数据传输过去;话说我上次大概是三天之前弄这个程序完全没问题啊<%@pagelanguage="java"import="java.uti...
这是jsp部分,很简单就是按按钮把数据传输过去;话说我上次大概是三天之前弄这个程序完全没问题啊
<%@ page language="java" import="java.util.*"
contentType="text/html; charset=UTF-8 " pageEncoding="UTF-8"%>
<%
request.setAttribute("base", request.getContextPath()); //获得站点根目录
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${base}/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$("#registerBT").click(
function(){
var studentName=$("#studentName").val();
var passWard=$("#passWard").val();
$.ajax(
{
url:"${base}/LoginServlet",
type:"post",
data:"username="+studentName+"&passward="+passWard,
dataType:"json",
success:successInfo
}
);
}
);
}
);
function successInfo(json){
var success=json.success;//tipDiv
if(success!=null){
alert("注册成功,请登录!");
window.location.href = "welcome.jsp";
}
}
</script>
<title>Insert title here</title>
</head>
<body>
用户名 <input type="text" id="studentName" name="studentName" size="20"><br>
密 码 <input type="text" id="passWard" name="passWard" size="20"><br>
<input type="button" id="registerBT" name="register" value="注册">
</body>
</html>
这是相应的servlet代码
package servlets;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name=(String) request.getAttribute("username");//这个地方我看了name是null
String address=(String) request.getAttribute("passward");
} 展开
<%@ page language="java" import="java.util.*"
contentType="text/html; charset=UTF-8 " pageEncoding="UTF-8"%>
<%
request.setAttribute("base", request.getContextPath()); //获得站点根目录
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${base}/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$("#registerBT").click(
function(){
var studentName=$("#studentName").val();
var passWard=$("#passWard").val();
$.ajax(
{
url:"${base}/LoginServlet",
type:"post",
data:"username="+studentName+"&passward="+passWard,
dataType:"json",
success:successInfo
}
);
}
);
}
);
function successInfo(json){
var success=json.success;//tipDiv
if(success!=null){
alert("注册成功,请登录!");
window.location.href = "welcome.jsp";
}
}
</script>
<title>Insert title here</title>
</head>
<body>
用户名 <input type="text" id="studentName" name="studentName" size="20"><br>
密 码 <input type="text" id="passWard" name="passWard" size="20"><br>
<input type="button" id="registerBT" name="register" value="注册">
</body>
</html>
这是相应的servlet代码
package servlets;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name=(String) request.getAttribute("username");//这个地方我看了name是null
String address=(String) request.getAttribute("passward");
} 展开
展开全部
将你js中获取到得username,password输出看是否有获取到值。
请求type,dataType与实际发送的data不一致。
type:"post",
data:"username="+studentName+"&passward="+passWard,
dataType:"json",a. 如果要使用你目前的data来传递值,建议修改为
type: "get",
data:"username="+studentName+"&passward="+passWard,
[dataType]删掉该属性
b. 如果要使用json形式
type: "post"/"get",
data: "{'username':" + studentName+",'password':" + passWard + "}",
dataType: "json"
希望能帮助你解决问题,如果不能请继续追问。
追问
谢谢你的回答,我后来解决了这个问题,我是在servlet中把getAttribute改成getParamater之后就好了?但是我记得这个地方用getAttribute也是可以的啊?
追答
恩,我还没仔细看到这点。正常通过页面请求的参数都是使用getParameter。
如果是页面使用request对象setAttribute,你就可以使用这个。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询