ajax 请求后台



     

 先简单的记录一下 ajax 的用法

HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");
PrintWriter out;


前台 :

$.ajax({ 
			url:'<%=basePath%>AutoCodeSession',//这里是你的action或者servlert的路径地址 
			type:'post', //数据发送方式 
			dataType:'json', //接受数据格式 (这里有很多,常用的有html,xml,js,json) 
			//data:'', //要传递的数据 
			data:'username='+$("#username").val()+'&password='+$("#password").val(), //要传递的数据 
			error: function(msg){ //失败 
			alert('Error loading document');
		 	alert(msg.responseText);
			}, 
			success: function(msg){ //成功 
	                alert('username='+$("#username").val()+'&password='+$("#password").val());
 			alert(msg.url);//根据后台返回值前台可以获取值
			}
			}); 	 

后台:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		System.out.println("dopost------");
		response.setContentType("text ml;charset=utf-8");  
		// 设置浏览器禁用缓存
		response.setHeader("pragma", "no-cache");
		response.setHeader("cache-control", "no-cache");
		HttpSession session = request.getSession(true);
		String orgHref = (String) session.getAttribute("orgHref");
		System.out.println("wangzhi :====="+orgHref);
 		String jsonString = "{\"success\":\"true\",\"url\":\""+orgHref+"\"}";//这里设定 返回到前台的值  前台可以用 msg.url来获取
 		String userName = request.getParameter("username");
		String passWord = request.getParameter("password");

		System.out.println("suername ----"+userName);
 		PrintWriter out;
		try {
		out = response.getWriter();
		out.print(jsonString);
		out.flush();
		out.close();
		} catch (IOException e) {
		e.printStackTrace();
		}
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

后台 struts


package cn.lin.action.check;

import java.io.File;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.validation.SkipValidation;
import org.springframework.context.ApplicationContext;

import com.opensymphony.xwork2.ActionContext;

import cn.fulong.common.web.action.BaseAction;
import cn.fulong.growth.entity.GrowthDmApplyInfo;
import cn.fulong.growth.service.DirecApplyService;

/**
 *  这里写的是一个上传文件的验证
 *
 */
public class DirecapplyAction  extends BaseAction{
	

	 
	/**
	 * 页面提示信息
	 */
	private String msg;
	 
	
	 
	private File files;
	
	 
	private String filesFileName;
	
	private String filesContentType ;
	
	
	 
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	 
	public File getFiles() {
		return files;
	}
	public void setFiles(File files) {
		this.files = files;
	}
	public String getFilesFileName() {
		return filesFileName;
	}
	public void setFilesFileName(String filesFileName) {
		this.filesFileName = filesFileName;
	}
	public String getFilesContentType() {
		return filesContentType;
	}
	public void setFilesContentType(String filesContentType) {
		this.filesContentType = filesContentType;
	}
	 
	public String checkFile() throws IOException{
		if(null == files){
			/**若文件为空返回""**/
			msg= "宣传材料不能为空";
		}else{
			// 判断数据是否正确
			// 文件后缀名
			int index = StringUtils.lastIndexOf(filesFileName, '.');
			if (index == -1) {
				msg= "文件类型错误!";
			}
			/**获取文件后缀名**/
			String extFileName = StringUtils.substring(filesFileName, index + 1);
			String forbitName = "doc-docx";
			String[] forbitNames = forbitName.split("-");
			for(int i= 0 ;i<forbitNames.length ; i++){
				 if(extFileName.equalsIgnoreCase(forbitNames[i])){
					 msg= "请上传正确的附件,附件不能类型不能为"+forbitNames[i];
					 break;
				 }
			 }
			
		}
		HttpServletResponse response = (HttpServletResponse)ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);  
		response.getWriter().println(new String (msg.getBytes("ISO8859_1"), "utf-8"));//利用这样的写法 来获取后台返回值
		return null;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值