在项目过程过程中遇到,客户端使用指定的链接地址访问服务器,服务器接收到访问后,给这个客户端发送一些数据,然后客户端接收到这些数据,对这些数据进行处理。比如采用如下链接访问Tomcat中的Servlet:
http://localhost:8080/TestAppPro/TestHelloWorldTestHelloWorld的Servlet的doPost方法接收访问,然后在request.setParameter("param",value);怎样实现,在客户端(不一定是浏览器、可以通过URLConnection)请求
http://localhost:8080/TestAppPro/TestHelloWorld
链接后,能够获得value这个值?郁闷了以下午。求解。。
http://localhost:8080/TestAppPro/TestHelloWorldTestHelloWorld的Servlet的doPost方法接收访问,然后在request.setParameter("param",value);怎样实现,在客户端(不一定是浏览器、可以通过URLConnection)请求
http://localhost:8080/TestAppPro/TestHelloWorld
链接后,能够获得value这个值?郁闷了以下午。求解。。
解决方案 »
- java项目发布的问题
- 一道java机试题,望高手帮解答
- 关于动态html表单,struts的actionform应该如何设置
- 谁能解决这个问题程序呢?
- Tomcat 发布问题
- ssh 增加一条记录时出错
- 哪位给发个jdk?
- 用jbuilder做的jsp,如何讲网址中的端口号8080去掉,高分求助,在线等,多谢!
- J2EE系统中,多个EntityBean,如何实现序列化?
- 大家有没有看到这篇文章:http://www.yesky.com/20021105/1638333.shtml,开玩笑!
- 请教使用mybatis用到的注解方式转换为xml配置方式
- 页面超时后想返回到之前页面状态,其中之前登陆页面的语言没有返回正确。
(XML也可以)
<script type="text/javascript">
function ff(){
var j={"name":"Michael","address":
[{"city":"Beijing","street":" Chaoyang Road ","postcode":100025},{"city":"shanghai","street":"jingke road","postcode":100026}]
};
document.write(j.name);
document.write(j.address[0].city);
document.write(j.address[0].street);
document.write(j.address[0].postcode);
document.write(j.address[1].city);
document.write(j.address[1].street);
document.write(j.address[1].postcode); var aa1 = eval("[{'id':'1','name':'长沙'}, {'id':'2','name':'株洲'}, {'id':'3','name':'湘潭'}]");
var aa = [{'id':'1','name':'长沙'}, {'id':'2','name':'株洲'}, {'id':'3','name':'湘潭'}]
for(var i=0;i<aa.length;i++){
document.write(aa[i].id);
document.write(aa[i].name);
}
var bb = [{'id':'0','name':'aa','province':{'id':'0','name':'p1'}}, {'id':'1','name':'bb','province':{'id':'0','name':'p1'}}];
document.write(bb[0].province.id);
document.write(bb[0].province.name);
}
</script>
//XMLHttpReq.send(sXML);向服务器端提交数据后,服务器端读取数据方法(一)string title = string.Empty;
string content = string.Empty;
string classid = string.Empty;
string toGrade = string.Empty;
string breviaryPic = string.Empty;Request.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
XmlDocument xmldoc = new XmlDocument(); //建立xml文档对象
xmldoc.Load(Request.InputStream); //接受ajax发送的xml文档对象流 //也可以接受普通字符流XmlNode nodeTitle = xmldoc.SelectSingleNode("//title"); //获得title节点
title = nodeTitle.InnerText; //取得节点值
XmlNode nodetoGrade = xmldoc.SelectSingleNode("//ToGrade");
toGrade = nodetoGrade.InnerText;
XmlNode nodeclassid = xmldoc.SelectSingleNode("//classID");
classid = nodeclassid.InnerText;breviaryPic = xmldoc.SelectSingleNode("//BreviaryPic").InnerText;
content = xmldoc.SelectSingleNode("//content").InnerText;//XMLHttpReq.send(sXML);向服务器端提交数据后,服务器端读取数据方法(二)下面介绍一下XML格式的数据提交到服务器端之后,如何解析的?对应的服务器端Servlet程序代码如下:package classmate;
import java.io.BufferedReader;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;public class LoginXmlAction extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
}
/*
* 处理<POST>请求方法
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置接收信息的字符集
request.setCharacterEncoding("UTF-8"); StringBuffer bxml = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while((line = reader.readLine()) != null) {
bxml.append(line);
}
}
catch(Exception e) {
System.out.println(e.toString());
} String xml =bxml.toString();
Document xmlDoc = null;
try {
xmlDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
}catch(ParserConfigurationException e) {
System.out.println(e);
}
String uname = xmlDoc.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
String psw = xmlDoc.getElementsByTagName("psw").item(0).getFirstChild().getNodeValue();
String responseText;
//依据验证结果输出不同的数据信息
if(uname.equals("jenny") && psw.equals("hi")){
responseText = "热烈的欢迎您!" ;
}else{
responseText = "对不起,登录失败!";
}
//设置输出信息的格式及字符集
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().print(responseText);
}
注意在Java程序中,为了实现对XML格式数据的解析,需要首先导入与其相关的类所在的包。然后借助DocumentBuilderFactory提供的相关方法进行解析。
首先,我们需要建立一个解析器工厂,利用这个工厂来获得一个具体的解析器对象:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
当获得一个工厂对象后,使用它的静态方法newDocumentBuilder()方法可以获得一个DocumentBuilder对象,这个对象代表了具体的DOM解析器。
然后,我们就可以利用这个解析器来对XML文档进行解析了:
Document doc = db.parse("c:/xml/message.xml");
DocumentBuilder的parse()方法接受一个XML文档名作为输入参数,返回一个Document对象,这个Document对象就代表了一个XML文档的树模型。
以后所有的对XML文档的操作,都与解析器无关,直接在这个Document对象上进行操作就可以了。而具体对 Document操作的方法,就是由DOM所定义的。
从上面得到的Document对象开始,就可以开始按照DOM的方式进行解析。使用Document对象的 getElementsByTagName()方法,可以得到一个NodeList对象,
一个Node对象代表一个XML文档中一个标签元素,而 NodeList对象,它所代表的是一个Node对象的列表。然后,可以使用NodeList对象的item()方法来得到列表中每一个Node对象。
当一个Node对象被建立之后,保存在XML文档中的数据就被提取出来并封装在这个Node中。然后再使用getFirstChild()方法来获得对应标记下面的第一个子Node对象。
依此类推就可以获取到对应的数据,开始使用了。