框架是SSH,其中Action是DispatchAction;
SSH + JSP + MYSQL
Ajax实现页面不刷新 并且把“用户名不正确”、“密码输入有误”这样的提示显示在登录框的下面
SSH + JSP + MYSQL
Ajax实现页面不刷新 并且把“用户名不正确”、“密码输入有误”这样的提示显示在登录框的下面
解决方案 »
- 配置struts2报错,求大神帮忙,在线等
- 时间相减 问题?不知道怎么回事?请大侠们帮助!
- ssi框架配置文件的问题
- ssh整合问题,[/WEB-INF/mail.properties]这个是什么?
- Hibernate问题:QuerySyntaxError: User is not mapped,帮帮忙吧
- web service 客户端问题.请高手帮忙.[SOAPException: faultCode=SOAP-ENV:Protocol;
- Java程序是加密的呢
- Java mail群发邮件,出现堆溢出情况,求解!!
- Android中当按返回键时listview内容不再显示
- 又是空指针问题??该怎么解决这样的问题 struts and hibernate!! thanks
- 我在家看马士兵老师的视频自学JDBC,看的过程中有几个问题请教,是关于JDBC连接数据库的问题。
- tomcat6.0.20启动出错
/*提交验证,异步传输*/
$(document).ready(function(){
$("form").submit(function (){
if ($("#name").val() == '' || $("#password").val() == ''){
alert("帐号和密码不能为空!");
return false;
}else{
$.ajax({
url: 'LoginServlet', //处理测试页面,注意返回内容,成功返回OK
dataType: 'text',
data: $("form").serialize(),
success: function (msg) {
if (msg == "ok"){
window.location.href = "IndexServlet";
}else{
alert("帐号或密码不正确,请您重新输入!");
return;
}
}
});
}
return false; ////////////////要阻止表单提交
});
});
</script>不知道SSH是什么,这是老师布置的作业,帐号密码不正确一起提示的,你看下有用不
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
//获取帐号密码
String name = request.getParameter("name");
String password = request.getParameter("password");
String remerber = request.getParameter("remerber_password");
UsersService usersService = Factory.getUsersService();
//获取验证后的用户实体类
Users users = usersService.checkLogin(name, password);
if(users.getId() != 0){
//把用户信息放入session中
request.getSession().setAttribute("users", users);
if("on".equals(remerber)){
Cookie cookieuser = new Cookie("user",name+"-"+password);
//设定有效时间 以秒(s)为单位 保存1个星期
cookieuser.setMaxAge(60*60*24*7);
response.addCookie(cookieuser);
}
//跳到IndexServlet中
//response.sendRedirect("IndexServlet?name="+name);
out.print("ok");
}else{
//response.sendRedirect("fail.jsp");
out.print("error");
}
out.flush();
out.close();
}
Servlt中的代码
这个我正在尝试 但是不知道HTML怎么调用这个javascript啊 ..
//创建XmlHttpRequest对象。
var xmlHttp;
function creatXMLHttp(){
if(window.XmlHttpRequest){
xmlHttp=new XmlHttpRequest();
}else{
//IE
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}function checkUserID(userid){
creatXMLHttp();//创建出XMLHttpRequest对象
xmlHttp.open("post","login.do?operation='test'"); //我估计错误就是这个跳转地址了 operation这个参数是DispatchAction中的参数(确定执行DispatchAction中的某一方法的参数 这里执行的是test这个方法)
xmlHttp.onreadystatechange=checkuseridCallBack;
xmlHttp.send(null);
}function checkuseridCallBack(){
if(xmlHttp.readystate==4){
alert("值:" + xmlHttp.status); //这个的值是404,找不到页面
if(xmlHttp.status==200){
var text=xmlHttp.responseText;
if(text=="true"){
document.getElementById("mes").innerHTML="用户ID已经存在,无法使用!";
}else{
document.getElementById("mes").innerHTML="用户名可以使用!";
}
}
}
}
下面是HTML<form action="" method="post" >
用户名:<input type="text" name="userid" onblur="checkUserID(this.value)"/>
<span id="mes"><font color="blue">自动验证用户ID</font></span><br/>
姓 名:<input type="text" name="name"/><br/>
密 码:<input type="text" name="password"/> <br/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>然后是struts 使用的是DispatchActionpublic class LoginAction extends DispatchAction {
public ActionForward test(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
PrintWriter out = null;
try {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
} //什么判断也没有 直接返回true
out.println("true"); out.flush();
out.close();
return null;
}struts的配置文件<action path="/login" type="com.mulan.struts.action.LoginAction" parameter="operation">
<set-property property="cancellable" value="true" />
<forward name="index" path="/index.jsp" />
<forward name="register" path="/register.jsp"/>
<forward name="test" path="/test/test.jsp"/>
</action>
action中通过response获得printwriter,print(成功或者失败),页面判断返回值data,jquery获得密码框,设置属性或者值显示
首先是test.jsp<script language="JavaScript">
//创建XmlHttpRequest对象。
var xmlHttp;
var path = '<%=basePath%>'; //这是获得上下文路径
function creatXMLHttp(){
if(window.XmlHttpRequest){
xmlHttp=new XmlHttpRequest();
}else{
//IE
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}function checkUserID(userid){
creatXMLHttp();//创建出XMLHttpRequest对象
xmlHttp.open("post",path + "login.do?operation=test", true);//这个路径test不要加引号
xmlHttp.onreadystatechange=checkuseridCallBack;
xmlHttp.send(null);
}function checkuseridCallBack(){
if(xmlHttp.readystate==4){
if(xmlHttp.status==200){
var text=xmlHttp.responseText;
if(text=='true'){
document.getElementById("mes").innerHTML="用户ID已经存在,无法使用!";
} else {
document.getElementById("mes").innerHTML="用户名可以使用!";
}
}
}
}
然后是HTML<form action="" method="post" >
用户名:<input type="text" name="userid" onblur="checkUserID(this.value)"/>
<span id="mes"><font color="blue">自动验证用户ID</font></span><br/>
姓 名:<input type="text" name="name"/><br/>
密 码:<input type="text" name="password"/> <br/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>再然后是action 是一个DispatchAction哦public class LoginAction extends DispatchAction {
public ActionForward test(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
response.getWriter().print("true");//这个print不要println因为println会多返回一个换行,这样和javascript中的true就不能相等了
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
最后是struts的配置文件//其他的都不重要 parameter="operation"是DispatchAction中从传递的参数中 寻找执行的方法
<action path="/login" type="com.mulan.struts.action.LoginAction" parameter="operation">
<set-property property="cancellable" value="true" />
<forward name="index" path="/index.jsp" />
<forward name="register" path="/register.jsp"/>
<forward name="test" path="/test/test.jsp"/>
</action>最后的最后 多指教 ..