怎么样把后台的验证显示在前台呢?这就要经过json数据传输了 运用了jquery,ajax技术
我简单的帖个例子出来,希望大家给点意见
这个程序的关键就是把以下 msg的内容输出到前台 就是通过js提示出来
package com.hz.bbs.action;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.p_w_picpath.BufferedImage;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.json.annotations.JSON;
import com.hz.bbs.entity.User;
import com.hz.bbs.service.DaoService;
import com.hz.bbs.service.impl.DaoServiceImpl;
import com.opensymphony.xwork2.ActionSupport;
import com.sun.mail.iap.Response;
public class DaoAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 8508463273698504917L;
private DaoService daoService = new DaoServiceImpl();
private String username;
private String password;
private User user;
private String code;
private String msg="";
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@JSON(serialize=true)
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@JSON(serialize=true)
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@JSON(serialize=true)
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public String login() {
user = new User();
System.out.println(code);
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
String rands = (String)session.getAttribute("randoms");
System.out.println("12"+" "+rands);
user.setUsername(username);
user.setUserpassword(password);
System.out.println(username);
System.out.println(password);
session.setAttribute("admin", username);
user.setIschecked("1");
int b = daoService.login(user);
if(!rands.equalsIgnoreCase(code)) {
msg="验证码错误";
return INPUT;
}
if(b==0) {
System.out.println("用户名错误");
msg = "用户名或者密码错误";
System.out.println(user.getUsername());
return INPUT;
}
if(b==1){
return INPUT;
}
return INPUT;
}
public String main(){
return SUCCESS;
}
}
所有msg语句都要返回input 在配置文件中input直接返回json
strut.xml配置
<package name="bbs" namespace="/" extends="struts-default,json-default">
<!-- 后台登录 -->
<action name="login" class="com.hz.bbs.action.DaoAction" method="login">
<result name="input" type="json"/>
</action>
<action name="main" class="com.hz.bbs.action.DaoAction" method="main">
<result name="success">/indexmain.jsp</result>
</package>
jsp页面
通过ajax异步传参
function getMsg(){
$.post("login.action",
{ username:$('#username').val(),password:$('#password').val(),code:$('#code').val() },
function(data){
if(data.msg == ""||data.msg==null){
window.location.href="main.action";
}else{
alert(data.msg);
// window.location=window.location;
}
},"json");
}
<form name="myform" action="login.action" method="post" onSubmit=" return validateForm('myform')">
<span class="login_txt"><span class="STYLE1">管理员:</span> </span>
<input id="username" name="username" class="editbox4" value="" size="20">
<span class="login_txt"> <span class="STYLE1">密 码: </span></span> <input type="password" class="editbox4" id="password" size="20" name="password">
<span class="login_txt STYLE1">验证码:</span> <input type="text" class="wenbenkuang" id="code" name="code" maxlength="4" size="20">
<img border="0" id="codeimg" name="codeimg" src="rand.action">
<a href="javascript:reloadImage('rand.action')"><font color="red">看不清</font></a><br>
<input type="button" name="Submit" class="STYLE1" id="Submit" value="登 陆" onClick="getMsg();">
<input type="reset" name="cs" class="STYLE1" id="cs" value="取 消"> </form>
我帖例子是为了大家能看的更懂一些 如果直接copy那要修改很多 我希望大家能先看懂 再模仿
我简单的帖个例子出来,希望大家给点意见
这个程序的关键就是把以下 msg的内容输出到前台 就是通过js提示出来
package com.hz.bbs.action;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.p_w_picpath.BufferedImage;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.json.annotations.JSON;
import com.hz.bbs.entity.User;
import com.hz.bbs.service.DaoService;
import com.hz.bbs.service.impl.DaoServiceImpl;
import com.opensymphony.xwork2.ActionSupport;
import com.sun.mail.iap.Response;
public class DaoAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 8508463273698504917L;
private DaoService daoService = new DaoServiceImpl();
private String username;
private String password;
private User user;
private String code;
private String msg="";
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@JSON(serialize=true)
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@JSON(serialize=true)
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@JSON(serialize=true)
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public String login() {
user = new User();
System.out.println(code);
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
String rands = (String)session.getAttribute("randoms");
System.out.println("12"+" "+rands);
user.setUsername(username);
user.setUserpassword(password);
System.out.println(username);
System.out.println(password);
session.setAttribute("admin", username);
user.setIschecked("1");
int b = daoService.login(user);
if(!rands.equalsIgnoreCase(code)) {
msg="验证码错误";
return INPUT;
}
if(b==0) {
System.out.println("用户名错误");
msg = "用户名或者密码错误";
System.out.println(user.getUsername());
return INPUT;
}
if(b==1){
return INPUT;
}
return INPUT;
}
public String main(){
return SUCCESS;
}
}
所有msg语句都要返回input 在配置文件中input直接返回json
strut.xml配置
<package name="bbs" namespace="/" extends="struts-default,json-default">
<!-- 后台登录 -->
<action name="login" class="com.hz.bbs.action.DaoAction" method="login">
<result name="input" type="json"/>
</action>
<action name="main" class="com.hz.bbs.action.DaoAction" method="main">
<result name="success">/indexmain.jsp</result>
</package>
jsp页面
通过ajax异步传参
function getMsg(){
$.post("login.action",
{ username:$('#username').val(),password:$('#password').val(),code:$('#code').val() },
function(data){
if(data.msg == ""||data.msg==null){
window.location.href="main.action";
}else{
alert(data.msg);
// window.location=window.location;
}
},"json");
}
<form name="myform" action="login.action" method="post" onSubmit=" return validateForm('myform')">
<span class="login_txt"><span class="STYLE1">管理员:</span> </span>
<input id="username" name="username" class="editbox4" value="" size="20">
<span class="login_txt"> <span class="STYLE1">密 码: </span></span> <input type="password" class="editbox4" id="password" size="20" name="password">
<span class="login_txt STYLE1">验证码:</span> <input type="text" class="wenbenkuang" id="code" name="code" maxlength="4" size="20">
<img border="0" id="codeimg" name="codeimg" src="rand.action">
<a href="javascript:reloadImage('rand.action')"><font color="red">看不清</font></a><br>
<input type="button" name="Submit" class="STYLE1" id="Submit" value="登 陆" onClick="getMsg();">
<input type="reset" name="cs" class="STYLE1" id="cs" value="取 消"> </form>
我帖例子是为了大家能看的更懂一些 如果直接copy那要修改很多 我希望大家能先看懂 再模仿
转载于:https://blog.51cto.com/hzywy/754060