这几天学到ajax,突然有点茫然了,jsp,xml,html,json,servlet,javascript,这些东西集中到一起变得没有了头绪,使劲缕,也没有理清思路,真希望有人帮忙里一下思路。
还有就是这两天周末,碰到了个棘手的问题,网上众说纷纭可是还是没有结决问题,在这里请教大家帮帮忙谢谢了!!!
下面是有关ajax中出现的乱码的问题,代码如下:
jsp文件 testGetPost.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<script>
//xmlHttpRequest对象
var xmlHttp;
//创建xmlHttpRequest对象
function createXMLHttpRequest(){
if (window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
//发送参数字符串
function createQueryString(){
//得到姓名
var Name = document.getElementById("Name").value;
//得到爱好
var Hobby = document.getElementById("Hobby").value;
//得到生日
var birthday = document.getElementById("birthday").value;
//构造请求字符串
var quertString = "Name=" + Name + "&Hobby=" + Hobby
+ "&birthday=" + birthday;
return quertString;
}
//处理GET请求
function doRequestUsingGET(){
createXMLHttpRequest();
var queryString = "GetAndPostExample?";
queryString = queryString + createQueryString() + "&timeStamp=" + new Date().getTime();
xmlHttp.open("GET",queryString,true);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.send(null);
}
//处理POST请求
function doRequestUsingPOST(){
createXMLHttpRequest();
var url = "GetAndPostExample?timeStamp=" + new Date().getTime();
var queryString = createQueryString();
alert(url);
xmlHttp.open("POST",url,true);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
xmlHttp.send(queryString);
}
//回调方法
function handleStateChange(){
if (xmlHttp.readyState == 4){
if (xmlHttp.status == 200){
//解析返回结果
parseResults();
}
}
}
//解析返回结果
function parseResults(){
var responseDiv = document.getElementById("serverResponse");
if (responseDiv.hasChildNodes()){
responseDiv.removeChild(responseDiv.childNodes[0]);
}
//返回文本构造一个文本节点
var responseText = document.createTextNode(xmlHttp.responseText);
responseDiv.appendChild(responseText);
}
</script>
</head>
<body>
<h1>
输入你的姓名,爱好,和生日:
</h1>
<table>
<tbody>
<tr>
<td>姓名:</td>
<td><input type="text" id="Name"/>
</tr>
<tr>
<td>爱好:</td>
<td><input type="text" id="Hobby"/>
</tr>
<tr>
<td>生日:</td>
<td><input type="text" id="birthday"/>
</tr>
</tbody>
</table>
<form action="#">
<input type="button" value="发送GET请求" onclick="doRequestUsingGET()"/>
<br /><br />
<input type="button" value="发送POST请求" onclick="doRequestUsingPOST()"/>
</form>
<br/>
<h2>服务器响应:</h2>
<div id="serverResponse"></div>
</body>
</html>
服务器端的代码 GetAndPostExample.java :package com.bjsxt.java.ajax;import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class GetAndPostExample extends HttpServlet {
//处理方法
protected void processRequest(HttpServletRequest request,
HttpServletResponse response, String method) throws
ServletException, IOException {
//设置响应内容类别
response.setContentType("text/html;charset=UTF-8");
//得到参数
String Name = request.getParameter("Name");
String Hobby = request.getParameter("Hobby");
String birthday =request.getParameter("birthday");
//创建响应文本
String responseText = "你好 :" + Name +"。您的兴趣是:" + Hobby + "。您的生日是" + birthday
+ "。" + " [传参方法: " + method + "]";
//传回浏览器
PrintWriter out = response.getWriter();
out.println(responseText);
//关闭写出流
out.close();
}
//Initialize global variables
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response,"GET");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response,"POST");
}
//Clean up resources
public void destroy() {
}}
还有就是这两天周末,碰到了个棘手的问题,网上众说纷纭可是还是没有结决问题,在这里请教大家帮帮忙谢谢了!!!
下面是有关ajax中出现的乱码的问题,代码如下:
jsp文件 testGetPost.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<script>
//xmlHttpRequest对象
var xmlHttp;
//创建xmlHttpRequest对象
function createXMLHttpRequest(){
if (window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
//发送参数字符串
function createQueryString(){
//得到姓名
var Name = document.getElementById("Name").value;
//得到爱好
var Hobby = document.getElementById("Hobby").value;
//得到生日
var birthday = document.getElementById("birthday").value;
//构造请求字符串
var quertString = "Name=" + Name + "&Hobby=" + Hobby
+ "&birthday=" + birthday;
return quertString;
}
//处理GET请求
function doRequestUsingGET(){
createXMLHttpRequest();
var queryString = "GetAndPostExample?";
queryString = queryString + createQueryString() + "&timeStamp=" + new Date().getTime();
xmlHttp.open("GET",queryString,true);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.send(null);
}
//处理POST请求
function doRequestUsingPOST(){
createXMLHttpRequest();
var url = "GetAndPostExample?timeStamp=" + new Date().getTime();
var queryString = createQueryString();
alert(url);
xmlHttp.open("POST",url,true);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
xmlHttp.send(queryString);
}
//回调方法
function handleStateChange(){
if (xmlHttp.readyState == 4){
if (xmlHttp.status == 200){
//解析返回结果
parseResults();
}
}
}
//解析返回结果
function parseResults(){
var responseDiv = document.getElementById("serverResponse");
if (responseDiv.hasChildNodes()){
responseDiv.removeChild(responseDiv.childNodes[0]);
}
//返回文本构造一个文本节点
var responseText = document.createTextNode(xmlHttp.responseText);
responseDiv.appendChild(responseText);
}
</script>
</head>
<body>
<h1>
输入你的姓名,爱好,和生日:
</h1>
<table>
<tbody>
<tr>
<td>姓名:</td>
<td><input type="text" id="Name"/>
</tr>
<tr>
<td>爱好:</td>
<td><input type="text" id="Hobby"/>
</tr>
<tr>
<td>生日:</td>
<td><input type="text" id="birthday"/>
</tr>
</tbody>
</table>
<form action="#">
<input type="button" value="发送GET请求" onclick="doRequestUsingGET()"/>
<br /><br />
<input type="button" value="发送POST请求" onclick="doRequestUsingPOST()"/>
</form>
<br/>
<h2>服务器响应:</h2>
<div id="serverResponse"></div>
</body>
</html>
服务器端的代码 GetAndPostExample.java :package com.bjsxt.java.ajax;import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class GetAndPostExample extends HttpServlet {
//处理方法
protected void processRequest(HttpServletRequest request,
HttpServletResponse response, String method) throws
ServletException, IOException {
//设置响应内容类别
response.setContentType("text/html;charset=UTF-8");
//得到参数
String Name = request.getParameter("Name");
String Hobby = request.getParameter("Hobby");
String birthday =request.getParameter("birthday");
//创建响应文本
String responseText = "你好 :" + Name +"。您的兴趣是:" + Hobby + "。您的生日是" + birthday
+ "。" + " [传参方法: " + method + "]";
//传回浏览器
PrintWriter out = response.getWriter();
out.println(responseText);
//关闭写出流
out.close();
}
//Initialize global variables
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response,"GET");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response,"POST");
}
//Clean up resources
public void destroy() {
}}
解决方案 »
- 如何刷百度指数?
- servelt传值乱码
- hql怎么执行不了...在线等
- hibernate many-to-one问题
- excel 帐票做成现在都用jxl还是poi好。
- 现在Java报表都用什么工具啊,现在用的比较多的,使用方便的,功能强大的???
- Axis 安全 JAVA 反序列化 问题
- 真心请教tomcat5+mysql+jsp数据库链接池问题!悬赏300分!
- spring mvc 注解:No bean named 'userBiz' is defined
- 求大神看看我这个怎么了啊,啥错误下面是日志
- mysql数据乱码问题,求教高手,查了网上解决方法,但好像有新的问题
- struts2问题
[color=#FF9900]js代码:
//两次编码,处理乱码
queryString = encodeURI(queryString );
queryString = encodeURI(queryString );
java代码:
//服务器段解码解决乱码问题 文件编码=数据库编码=输出编码=网页编码
Name= java.net.URLDecoder.decode(Name,"UTF-8");
Hobby= java.net.URLDecoder.decode(Hobby,"UTF-8");
birthday= java.net.URLDecoder.decode(birthday,"UTF-8");
浏览器端译码两次,服务器端解码的时候在设定一次UTF-8就可以了!!
再次感谢各位O(∩_∩)O~
java.net.Decode.decode(reuqest.getParameter("param"),"UTF-8");
拿出来的值就不会乱了。
jquery对ajax的封装相当的好,lz可以试试