万分感谢,热心人士,回复我发表于发表于:2011-11-20 20:30:41的一贴,由于我的失误,导致大家没搞清我的问题。现将其补充完整:
index.jsp的内容:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<head>
<script src="js/login.js" type="text/javascript"></script>
</head>
<body onload="init()">
<div id = "logindiv" >
<form name = "loginForm" method="post" action="">
用户名:<input type="text" name="user" > <input type="button" value="登录" onclick="login()"><br>
密 码: <input type="password" name="password"> </form></div>
</body>
</html>
login.js的内容:
var xmlHttp = false;
function init(){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");
}catch(e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
window.alert("该浏览器不支持Ajax");
}
}
}
}
function login(){
var name=document.loginForm.user.value;
var word = document.loginForm.password.value;
var url = "com.music.servlet/LoginServlet?name =" + name +
"&word =" + word;
if(name == ""){
alert("用户名不能为空");
document.loginForm.user.focus();
return;}else if(word == ""){
alert("请输入密码");
document.loginForm.password.focus();
return;}
xmlHttp.open("post",url,true);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4){
logindiv.innerHTML = xmlHttp.responseText;
}};
xmlHttp.send();
return;
} LoginServlet的内容:
package com.music.servlet; import .................. public class LoginServlet extends HttpServlet {
private int num ;
public LoginServlet() {
super();
num = 0;
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String password = request.getParameter("word");
String loginState = "Fail";
String targetUrl = "/jsp/loginFail.jsp";
//验证用户
// 连接数据库等操作,还没有编写先进行部分测试
System.out.println("name =" +name);
System.out.println("password =" + password);
这里是问题所在:获取不到表单中的内容
//登录失败
request.setAttribute("loginSate",loginState);
ServletContext application = this.getServletContext();
RequestDispatcher rd = application.getRequestDispatcher( targetUrl);
rd.forward(request, response);
}
}
index.jsp的内容:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<head>
<script src="js/login.js" type="text/javascript"></script>
</head>
<body onload="init()">
<div id = "logindiv" >
<form name = "loginForm" method="post" action="">
用户名:<input type="text" name="user" > <input type="button" value="登录" onclick="login()"><br>
密 码: <input type="password" name="password"> </form></div>
</body>
</html>
login.js的内容:
var xmlHttp = false;
function init(){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("Msxm12.XMLHTTP");
}catch(e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
window.alert("该浏览器不支持Ajax");
}
}
}
}
function login(){
var name=document.loginForm.user.value;
var word = document.loginForm.password.value;
var url = "com.music.servlet/LoginServlet?name =" + name +
"&word =" + word;
if(name == ""){
alert("用户名不能为空");
document.loginForm.user.focus();
return;}else if(word == ""){
alert("请输入密码");
document.loginForm.password.focus();
return;}
xmlHttp.open("post",url,true);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4){
logindiv.innerHTML = xmlHttp.responseText;
}};
xmlHttp.send();
return;
} LoginServlet的内容:
package com.music.servlet; import .................. public class LoginServlet extends HttpServlet {
private int num ;
public LoginServlet() {
super();
num = 0;
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String password = request.getParameter("word");
String loginState = "Fail";
String targetUrl = "/jsp/loginFail.jsp";
//验证用户
// 连接数据库等操作,还没有编写先进行部分测试
System.out.println("name =" +name);
System.out.println("password =" + password);
这里是问题所在:获取不到表单中的内容
//登录失败
request.setAttribute("loginSate",loginState);
ServletContext application = this.getServletContext();
RequestDispatcher rd = application.getRequestDispatcher( targetUrl);
rd.forward(request, response);
}
}
解决方案 »
- 关于spring的配置问题
- getRuntime().exec()问题-启动程序时如何显示出界面
- jsp+tomcat+mysql 关于连接池 资源耗尽 高手进 大家试一下,很久没有解决啦。
- 在jsp登录页面中,如果验证码输入错误,点提交后马上提示错误信息
- CSDN OpenSocial 技术交流会:参会感想
- 一个项目用3个数据库开发用什么框架好?
- 做门户网站用Jsp好还是asp.net好?
- 如何设置我写的工程的主页,虚心求教!!
- 请问在SQL语句中,要取出当前记录的前一条和后一条记录是什么了呢?
- I/O流问题
- 求JSP做的类似EXCEL筛选功能DEMO
- 如何将权限控制到JSP页面的显示信息和按钮
换成xmlHttp.send(参数);
ajax不会给你自动吧form数据携带过去。
"&word =" + word;
不好意思 看漏掉了。
var url = "com.music.servlet/LoginServlet?name =" + name +
"&word =" + word;前台js 调试一下看看这个url是不是正确的获取了name和word的值一步步找问题。。1. 先保证前台取参数没错。。
2. 然后保证发送请求没错。。
3. 然后再确定请求是否到了servlet的post中。。
var url = "com.music.servlet/LoginServlet?name =" + name
"&word =" + word;
换成"com.music.servlet/LoginServlet?name=" + name +"&word=" + word;
throws ServletException, IOException {方法中设置一个断点调试一下,,看看请求有没有进入