`

javabean。xml。测试。

阅读更多

编组是在内存中生成对象的 XML 表示的过程。与 Java 序列化一样,这种表示需要包括所有依赖的对象:主对象引用的对象、这些对象引用的其他对象、等等。

解组是上述过程的逆过程,在内存中从 XML 表示创建对象(以及依赖的对象)。

 

 

         javabeanxml之间我们自由的往来,不仅用于通过javabean编组xml,作为页面展示,也是Flex的数据源;另一方面,将xml解组成javabean,作为测试之用。

 

Java代码如下:

 

 

package mvc.login;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.exolab.castor.xml.Marshaller;

import basic.Dealer;
import basic.JspVAR;
import basic.Util;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport implements ServletRequestAware {

	/**
	 * 
	 */
	private static final long serialVersionUID = -9016618480581879359L;

	private HttpServletRequest request;
	private LoginUtil loginUtil;

	public LoginUtil getLoginUtil() {
		return loginUtil;
	}

	public void setLoginUtil(LoginUtil loginUtil) {
		this.loginUtil = loginUtil;
	}

	public String login() {
		return Action.LOGIN;
	}

	public String in() {
		String[] members = { "username'String", "password'String",
				"format'String" };
		Object[] elements = Dealer.getElemByName(request, members);
		LoginForm searchPara = new LoginForm(elements);

		/* 返回值:0. 全对. 1. 密码错. 2. 用户名错. */
		int flag = loginUtil.judgeUserName_Password(searchPara);

		LoginBean loginBean = new LoginBean();
		switch (flag) {
		case 0:
			loginBean.setUsername("0");
			loginBean.setPassword("0");
			request.getSession().setAttribute(JspVAR.session_user,
					searchPara.getUsername());
			request.getSession().setAttribute(JspVAR.session_date,
					Util.timeTransform(Util.getCurrentTime()));
			break;
		case 1:
			loginBean.setUsername("0");
			loginBean.setPassword("1");
			break;
		case 2:
			loginBean.setUsername("1");
			loginBean.setPassword("1");
			break;
		default:
			loginBean.setUsername("1");
			loginBean.setPassword("1");
			break;
		}
		try {
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setContentType("text/xml; charset=UTF-8");
			response.setHeader("Cache-Control", "no-cache");
			PrintWriter out = response.getWriter();
			Writer writer = new StringWriter();
			Marshaller.marshal(loginBean, writer);
			out.print(writer.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public void in1() {
		int flag = 0;

		LoginBean loginBean = new LoginBean();
		switch (flag) {
		case 0:
			loginBean.setUsername("0你");
			loginBean.setPassword("0我");
			break;
		case 1:
			loginBean.setUsername("0");
			loginBean.setPassword("1");
			break;
		case 2:
			loginBean.setUsername("1");
			loginBean.setPassword("1");
			break;
		default:
			loginBean.setUsername("1");
			loginBean.setPassword("1");
			break;
		}
		outputxml(loginBean);
	}

	public void outputxml(Object object) {
		PrintWriter out = null;
		try {
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setContentType("text/xml; charset=UTF-8");
			response.setHeader("Cache-Control", "no-cache");
			out = response.getWriter();
			Writer writer = new StringWriter();
			Marshaller.marshal(object, writer);
			out.print(writer.toString());
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		} finally {
			out.close();
		}
	}

	public String out() {
		return "LOGOUT-SUCCESS";
	}

	public void setServletRequest(HttpServletRequest request) {
		// TODO Auto-generated method stub
		this.request = request;
	}
}

 

 

 

访问

http://127.0.0.1:8080/s3s/login_in1.action?username=admin&password=12345&format=xml

得到的xml如下:

 

 

<?xml version="1.0" encoding="UTF-8"?>
<login-bean>
    <password>0我</password>
    <username>0你</username>
</login-bean>

 

 

 

测试代码如下:

 

 

package mvc.login.test;

import java.io.*;
import java.net.*;

import mvc.login.LoginBean;

import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;

public class GetURL {
	public static void main(String[] args) throws IOException,
			MarshalException, ValidationException {
		String re = GetURLstr("http://127.0.0.1:8080/s3s/login_in1.action?username=admin&password=12345&format=xml");
		// OutputStream out = System.out;
		// out.write(re.getBytes());
		Reader reader = new StringReader(re);
		LoginBean loginBean = (LoginBean) Unmarshaller.unmarshal(
				LoginBean.class, reader);
		System.out.println(loginBean.getUsername());
		System.out.println(loginBean.getPassword());

	}

	public static String GetURLstr(String strUrl) {
		InputStream in = null;
		// OutputStream out = null;
		String strdata = "";
		try {
			URL url = new URL(strUrl); // 创建 URL
			in = url.openStream(); // 打开到这个URL的流
			// out = System.out;

			// 复制字节到输出流
			byte[] buffer = new byte[4096];
			int bytes_read;
			while ((bytes_read = in.read(buffer)) != -1) {
				String reads = new String(buffer, 0, bytes_read, "UTF-8");
				// System.out.print(reads);
				strdata = strdata + reads;
				// out.write(buffer, 0, bytes_read);
			}

			in.close();
			// out.close();
			return strdata;
		}

		catch (Exception e) {
			System.err.println(e);
			System.err.println("Usage: java GetURL <URL> [<filename>]");
			return strdata;
		}
	}

}

 

 

 

分享到:
评论

相关推荐

    JavaBean和xml转换

    这个文件可能包括了如何使用JAXB进行JavaBean和XML转换的代码示例,可能包括了JavaBean类、XML输入/输出文件,以及测试类等。 通过学习和理解JAXB的工作原理以及如何在代码中应用,开发者可以有效地在Java应用程序...

    Xml与javaBean互转.zip

    10. **测试**:确保转换代码正确无误非常重要,因此,编写单元测试以验证XML到JavaBean以及JavaBean到XML的转换结果是必要的。 了解这些知识点后,开发者可以根据项目需求和性能要求选择合适的工具或技术来实现XML...

    xml与javabean的转换

    在测试环境中,我们可以编写单元测试来验证XML到JavaBean和JavaBean到XML的转换是否正确。`JUnit`或`TestNG`这样的测试框架可以帮助我们构建测试用例,确保在各种情况下转换都能按预期工作。 总结来说,Jox库提供了...

    xml和java bean互相转换工具包(简单易用)

    xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。...源代码包及详细使用文档后续整理,欢迎使用和测试本工具包。

    javabean与xml互转demo

    jar包只有两个dom4j和jaxen 后者是xml转javabean用到的,否则会报异常:java.lang.NoClassDefFoundError: org/jaxen/JaxenException。 项目可以直接运行,中间测试数据乱码地方不影响,可以自己替换文字

    JSP+JavaBean+XML+Mysql的新闻发布系统概述PPT

    该新闻发布系统是一个基于Web的应用程序,使用了JSP(JavaServer Pages)、JavaBean、XML以及Mysql数据库技术。系统设计的目的是为了提供一个方便、快速的新闻发布和浏览平台,适应网络时代用户的需求。 1. **JSP+...

    JavaBean组件程序设计

    - **单元测试**:使用JUnit等测试框架,对JavaBean的业务逻辑进行测试。 - **集成测试**:验证JavaBean与其他组件的交互,如通过Mockito模拟依赖。 综上所述,JavaBean组件程序设计是Java开发中的核心概念,它...

    javabean BDK

    4. **代码生成**:可能具有自动生成 JavaBean 源码或 XML 配置文件的能力,简化开发流程。 5. **单元测试**:集成测试框架,帮助编写针对 JavaBean 的测试用例。 在文件名“bdk1_1”中,"1_1"可能是版本号,表示这...

    使用Betwixt将XML转为JAVA Bean(内有JAR包)

    测试通常会创建一个包含相同节点名的XML文件,然后将其转换为Java Bean,再将该Bean转换回XML,最后比较原始XML和新生成的XML是否一致。 总之,Betwixt提供了一种方便的方式来处理Java对象与XML之间的转换,即使在...

    jsp|javaBean|javascrip|XML与层及做的学习项目

    【标题】"jsp|javaBean|javascript|XML与层及做的学习项目"是一个全面涵盖Web开发核心技术的学习资源,旨在帮助开发者深入理解并实践如何利用这些技术构建商业网站。在这个项目中,你将学习到JavaServer Pages (JSP)...

    jsp javabean spring hibernate

    【标题】"jsp javabean spring hibernate" 涉及的是一个经典的Java Web开发技术栈,主要包括JSP(JavaServer Pages)、JavaBean以及Spring和Hibernate两大框架。这些技术是构建高效、可维护的企业级应用的重要组成...

    Eclipse下JavaBean开发WebService

    - 使用JAX-WS(Java API for XML Web Services)来创建Web服务。在Eclipse中,右键点击项目,选择New -&gt; Other -&gt; Web Service,然后按照向导步骤操作。 - 选择JavaBean作为服务实现,Eclipse会自动生成服务接口和...

    javabean记事本

    10. **测试与调试**:对于撤销快捷键的问题,开发者需要通过单元测试和集成测试来定位问题,使用debug工具跟踪代码执行,查看变量状态,以便修复bug。 总的来说,JavaBean记事本是一个综合性的Java编程实践项目,...

    通过jsp+javabean实现猜数字游戏

    MyEclipse 提供了丰富的工具支持,如代码编辑、调试、部署和测试等功能,使得开发过程更加便捷高效。 JavaBeans 是Java平台上的组件模型,通常用于构建可重用的软件组件。在猜数字游戏中,JavaBean 可能被用来封装...

    图示ireport中使用javabean作数据源开发基于jasperreports报表过程

    它允许开发者在Java应用中嵌入复杂的报表功能,通过XML定义报表模板,结合数据源生成报表。 2. iReport介绍: iReport是JasperReports的官方设计工具,提供了一个用户友好的界面,允许开发者通过拖放操作来设计...

    JSP与JavaBean应用实例-猜数字游戏

    - 最后,测试应用,确保所有功能正常运行。 总结来说,这个实例展示了JSP和JavaBean如何结合,以实现一个简单的Web游戏。JavaBean提供了数据存储和业务逻辑,而JSP则负责展示这些信息给用户。这种分离关注点的设计...

    JSP+JavaBean+Servlet的框架demo

    通过MyEclipse,开发者可以更高效地构建和测试上述框架的项目。 综上所述,"JSP+JavaBean+Servlet的框架demo"提供了一个实践性的教学案例,涵盖了Web开发中的前端展示、后端处理和数据存储等多个关键环节。通过深入...

    JSP和JavaBean学生管理系统初建.

    6. **部署和测试**:将项目部署到服务器,进行功能测试和性能优化。 总的来说,"JSP和JavaBean学生管理系统初建"项目提供了一个实践JSP和JavaBean技术的实例,对于学习Web开发尤其是Java Web开发的初学者来说,这是...

Global site tag (gtag.js) - Google Analytics