AJAX JQUERY STRUTS2.....异步验证用户名

本文介绍了一种在Web应用中解决中文乱码的方法,通过在web.xml中配置统一编码过滤器并设置UTF-8编码,确保从前端到后端的数据传输过程中字符编码的一致性。同时展示了具体的Java代码实现及Struts2框架中的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在web.xml加上统一编码过滤器.為的是防止乱码.

 

 <filter>
  <filter-name>Set Character Encoding</filter-name>
  <filter-class>
   com.filter.SetCharacterEncodingFilter
  </filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>Set Character Encoding</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

 

 

java代码:

 

/**
 *
 */
package com.filter;

/**
 * @author
 *
 */
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SetCharacterEncodingFilter implements Filter {

private String charset = "UTF-8";

public void destroy() {
}

public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding(charset);
arg1.setCharacterEncoding(charset);
arg2.doFilter(arg0, arg1);
}

public void init(FilterConfig arg0) throws ServletException {
}
}

 

 

jsp页面:

 

 

<input type="text" name="student.stu_username" id="stuid" />

 

 

javascript:

 

$(document).ready(function(){
$("#stuid").change(function(){
$.post("userSearchSys.action", {username: $("#stuid").val()} ,function(data){alert(data);});
});
});

 

绑定onchange事件.

 

 

struts2.xml:

 

 

  <action name="*Sys" class="com.action.Sys" method="{1}">
   <result type="stream"><param name="username">inputStream</param></result>
  </action>

 

 

action:

 

public String userSearch(){
  StudentDao sDao = new StudentDao();
  
  try {
  int i =sDao.searchUsername(username);
  HttpServletResponse response = ServletActionContext.getResponse();
  PrintWriter out = response.getWriter();
  
  response.setCharacterEncoding("UTF-8");
  response.setHeader("Charset","UTF-8");
  response.setHeader("Cache-Control", "no-cache");
  if (i==1){
   out.println("用户名已经存在");
   }
  else {
   out.println("用户名可用");
  }}
  catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return null;
 }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值