怎么样把后台的验证显示在前台呢?这就要经过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配置
/indexmain.jsp
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");
}
我帖例子是为了大家能看的更懂一些 如果直接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配置
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");
}
我帖例子是为了大家能看的更懂一些 如果直接copy那要修改很多 我希望大家能先看懂 再模仿