案例——用户登录注册xml版

登录注册注销功能实现:
 
 浏览器端----->主页(登录、注册、注销),登录页面、注册页面 ------>浏览器发送请求
 
 ===========================================================
  
 服务器端 ----->登录页面--->LoginServlet
            所具备的功能:
             根据用户名和密码判断用户是否存在
              如果存在登录用户,将用户封装在request域属性中,转发到主页
              如果不存在,提示错误信息
            
      注册页面 ---->RegistServlet
            所具备的功能:
             根据用户名判断用户是否存在
              如果存在,提示信息
              不过不存在,封装信息,添加用户,并登录用户,跳转到主页   -------  web               使用javaBean封装数据 ------domain
      
      注销功能----->LogOutServlet
            所具备的功能:
             注销用户登录的功能,跳转到主页
 
 ===========================================================
 
 提供Service服务完成Servlet与UserDao之间的交互
     所具备的功能:
       注册用户的功能    
        根据用户名判断用户是否存在                   ------------ service
        添加用户
 
       根据用户名和密码判断用户是否存在
 ===========================================================
 
 对数据库信息进行处理 ------>UserDao ------->可以新建一个类专门用于测试该功能UserDaoTest (test包)  ------------dao
           提供一个工具类,用来解析xml文件,更新xml文件,           ------------daoutils
           所具备的功能:
            根据用户名判断用户名是否存在
            根据用户名和密码获取用户对象
            添加用户功能
            
 自定义异常类,用来处理自定义的异常信息                      ------------exception
 
 ===========================================================
 
 数据库----->xml模拟数据库
 
 准备工作:新建web工程

在src目录下新建xml文件users.xml

<?xml version="1.0" encoding="UTF-8"?>
<users>
	<user username="admin" password="admin" nickname="admin" email="[email protected]"/>
</users>

解析xml文件和支持XPath的jar包

jar包下载

放入到WEB-INF 下的lib文件夹内导入工程

分包:

com.spadeking.utils提供了解析xml文件的工具类

com.spadeking.dao直接操作xml文件的类

com.spadeking.test用来测试dao中的方法

com.spadeking.damain封装JavaBean

com.spadeking.exception自定义异常类

com.spadeking.mytag存放jsp页面用到的自定义标签类

com.spadeking.factory用来对dao层和service层解耦的工厂类,本工程为用到

com.spadeking.service负责信息的逻辑和流转

com.spadeking.web用来对页面信息的处理和service层数据的处理

XMLDaoUtils类:

package com.spadeking.daoutils;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class XMLDaoUtil {
	private static String path = XMLDaoUtil.class.getClassLoader().getResource(
			"users.xml").getPath();
	private static Document dom=null;
	static {
		SAXReader reader = new SAXReader();
		try {
			dom = reader.read(path);
		} catch (DocumentException e) {
			e.printStackTrace();
			throw new RuntimeException();
		}
	}

	private XMLDaoUtil() {
	}

	public static Document getDom() {
		return dom;
	}

	public static void XmlRef() {
		try {
			XMLWriter writer = new XMLWriter(new FileOutputStream(path),
					OutputFormat.createPrettyPrint());
			writer.write(dom);
			writer.close();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			throw new RuntimeException();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			throw new RuntimeException();
		} catch (IOException e) {
			e.printStackTrace();
			throw new RuntimeException();
		}
	}
}

javaBean类:

package com.spadeking.domain;

import com.spadeking.exception.MsgException;

public class User {
	private String username;
	private String password;
	private String password2;
	private String nickname;
	private String email;
	public User() {
	}
	public User(String username, String password, String password2,
			String nickname, String email) {
		this.username = username;
		this.password = password;
		this.password2 = password2;
		this.nickname = nickname;
		this.email = email
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# XML入门经典——C#编程人员必备的XML技能 作者:[美]Stewart Fraser, Steven 著,毛尧飞,崔伟 译 出社:清华大学出社 出时间:2003年11月 第1章 在C#中使用XML的原因1.1 使用XML的原因1.1.1 开放性1.1.2 简单性1.1.3 自我描述性1.1.4 互操作性1.1.5 结构1.1.6 分开结构和内容1.1.7 可扩展性1.2 什么是XML1.2.1 XML涉及多种语言1.2.2 XML文档1.3 使用XML的对象1.3.1 内容表示1.3.2 B2B电子商务1.3.3 远程过程调用1.3.4 数据存储和访问1.3.5 不使用XML的情况1.4 XML标准1.4.1 什么是W3C1.4.2 XML标准1.4.3 与XML相关的标准1.4.4 标准重要的原因1.5 XML如何适应.NET1.5.1 在.NET Framework中使用XML1.5.2 .NET中的XML支持1.6 小结第2章 XML概述2.1 XML的概念2.1.1 XML元素2.1.2 XML属性2.1.3 XML解析器2.1.4 构建XML2.1.5 XML文档的各个组成部分2.2 创建格式良好的XML文档2.2.1 XML中的元素2.2.2 XML中的属性2.2.3 在XML中使用注释2.3 验证XML文档的有效性2.3.1 文档类型定义2.3.2 XML Schema2.3.3 XML编码2.4 小结第3章 在.NET中使用XML3.1 XML如何适合.NET3.1.1 XML3.1.2 文档对象模型(DOM)3.1.3 命名空间3.1.4 DTD和XML Schema3.1.5 XPath 3.1.6 XSLT3.2 .NET Framework使用XML3.2.1 配置文件3.2.2 ADO.NET3.2.3 SOAP和Web服务3.3 案例分析——电话簿样式应用程序3.4 小结第4章 在.NET中读取XML4.1 流模型4.1.1 流模型和DOM的比较4.1.2 流模型中的变体4.2 XmlTextReader类4.2.1 XmlTextReader属性4.2.2 读取属性4.2.3 读取较大的数据块4.3 XmlNodeReader类4.4 XmlValidatingReader类4.5 小结第5章 在.NET中编写XML5.1 利用.NET类编写XML文档5.2 XmlWriter类5.2.1 XmlWriter方法5.2.2 XmlWriter属性5.3 XmlWriter类5.3.1 XmlTextWriter构造函数5.3.2 XmlTextWirter属性5.3.3 处理XmlTextWirter5.3.4 写入较大的数据块5.4 小结第6章 在.NET中实现DOM6.1 文档对象模型6.1.1 文档对象模型与流模型6.1.2 .NET DOM继承模型6.2 XmlNode类6.2.1 XmlNode的定义6.2.2 XmlNode的属性6.2.3 XmlNode的方法6.3 XmlDocument类6.3.1 创建节点6.3.2 加载和保存6.3.3 迭代XmlDocument实例6.3.4 编辑XML文档6.4 案例分析6.4.1 体系结构6.4.2 应用程序详细信息6.4.3 加载用户联系人6.4.4 搜索联系人6.4.5 导出联系人6.4.6 导入其他联系人6.5 小结第7章 XPath和.NET7.1 System.Xml.XPath命名空间7.2 .NET中的XPath类7.2.1 XPathDocument类<br
好的,下面我来为您介绍一下如何使用vue-router实现用户登录注册功能。 首先,我们需要安装vue-router,可以通过以下命令进行安装: ``` npm install vue-router --save ``` 然后,在main.js中引入并使用vue-router: ``` import VueRouter from 'vue-router' Vue.use(VueRouter) ``` 接下来,我们新建一个router.js文件,用于配置路由。在该文件中,我们需要定义路由路径和路由组件: ``` import Vue from 'vue' import VueRouter from 'vue-router' import Login from './components/Login.vue' import Register from './components/Register.vue' Vue.use(VueRouter) const routes = [ { path: '/login', component: Login }, { path: '/register', component: Register } ] const router = new VueRouter({ routes }) export default router ``` 在上面的代码中,我们定义了两个路由路径:/login和/register,并分别对应了Login和Register两个组件。 接下来,在App.vue中,我们需要使用<router-view>标签来显示路由组件: ``` <template> <div id="app"> <router-view></router-view> </div> </template> ``` 最后,在main.js中引入router.js,并将其挂载到Vue实例中: ``` import Vue from 'vue' import App from './App.vue' import router from './router' Vue.config.productionTip = false new Vue({ router, render: h => h(App), }).$mount('#app') ``` 至此,我们已经完成了基本的路由配置。接下来,我们可以在Login和Register组件中实现具体的登录和注册功能。 在Login组件中,我们可以使用Vue.js提供的v-model指令来绑定表单输入的数据,并在点击登录按钮时向服务器发送请求验证用户名和密码: ``` <template> <div class="login"> <h1>登录</h1> <form> <label>用户名:</label> <input type="text" v-model="username"> <br> <label>密码:</label> <input type="password" v-model="password"> <br> <button @click.prevent="login">登录</button> </form> </div> </template> <script> export default { data() { return { username: '', password: '' } }, methods: { login() { // 向服务器发送请求验证用户名和密码 } } } </script> ``` 而在Register组件中,我们可以使用v-model指令来绑定表单输入的数据,并在点击注册按钮时向服务器发送请求创建新用户: ``` <template> <div class="register"> <h1>注册</h1> <form> <label>用户名:</label> <input type="text" v-model="username"> <br> <label>密码:</label> <input type="password" v-model="password"> <br> <label>确认密码:</label> <input type="password" v-model="confirmPassword"> <br> <button @click.prevent="register">注册</button> </form> </div> </template> <script> export default { data() { return { username: '', password: '', confirmPassword: '' } }, methods: { register() { // 向服务器发送请求创建新用户 } } } </script> ``` 到这里,我们已经完成了一个简单的用户登录注册功能,并使用vue-router实现了路由跳转。当用户访问/login时,会显示Login组件;当用户访问/register时,会显示Register组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值