热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Struts2+Mybatis整合实现注册登录功能

1.要实现框架之间的整合,第一2.接下来先配置Struts2的核心控制器web.xml<?xmlversion1.0encoding

1.要实现框架之间的整合,第一



2.接下来先配置Struts2的核心控制器web.xml




  	
  
        struts2
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    

    
        struts2
        /*
    
  
  
  
    index.jsp
  


核心控制器中的代码去官方文档中直接摘抄即可。


3.接下来,我们需要一个Po类,简单的在其中定义id,用户名和密码即可


package com.guanglan.po;

public class User {
	private int id;
	private String uname;
	private String pwd;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	
	
}


4.导入Struts.xml配置文件







    
    
    


开启动态方法,开发者模式,其余使用注解

 

5.创建一个Action类,并引入User,实现其get,set方法

public class regAction {
	
	private User user;
	
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

6.创建JSP文件,并写表单,从jsp文件中传入数据至action中。


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>



  
    

  
  
  
  	
    	用户名:
密码:
提交:


在action中定义一个reg方法来接收表单数据,同理定义login方法接收表单数据。

public String reg() throws IOException{
		
		
		return "ok";
	
	}
	
	public String login() throws Exception{
		
	}


7.下面我们来实现一下mybatis


先在src下导入mybatis.xml





	
		
	
	

	
		
			
			
				
				
				
				
			
		
	
	
		
	

8.新创建一个查询关系映射sql语句的包

然后创建一个mapper.xml配置文件,在其中写入你需要用到的查询语句









	
	
	
		insert into t_user(uname,pwd) values(#{uname},#{pwd})
		
	
	
	

9.创建一个Service类

package com.guanglan.Service;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.guanglan.po.User;
public class UserService {
	
	
	
		public static void add(String name,String password) throws IOException{
			SqlSessionFactory ssf= new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis.xml"));
			SqlSession sqlsession=ssf.openSession();
					User u = new User();
					u.setUname(name);
					u.setPwd(password);
					
					sqlsession.insert("com.mybatis.Hello.insertUser",u);
					
					sqlsession.commit();
		
		}
		
		public static User add1(String name,String password) throws Exception{
			SqlSessionFactory ssf= new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis.xml"));
			SqlSession session=ssf.openSession();
					
					Map map= new HashMap();
					
					map.put("un",name);
					map.put("pwd",password);
					
					User datas=session.selectOne("com.mybatis.Hello.selectAll",map);
					
							
					if(datas!=null){
							
								return datas;
							}
					else
							
								return null;
							
								
					
					
					
			
			
			
			
			
		}
		
		
}

10.在action中调用Service中的方法,传入值到Service中,执行session.selectOne,以及session.insert方法来查询和往数据库中写入数据。并且返回一个User对象在action的login方法中,如果对象不是空,证明在数据库中查询到了数据,登录成功。如果为空,那么登录失败。

package com.guanglan.reg.action;

import java.io.IOException;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

import com.guanglan.Service.*;


import com.guanglan.po.User;
@Action("guanglan")	
@Results({
	@Result(name="ok",location="/reg-ok.jsp"),
	@Result(name="success",location="/login-ok.jsp"),
	@Result(name="error",location="/login-error.jsp")
	})
public class regAction {
	
	private User user;
	
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public String reg() throws IOException{
		
		UserService.add(user.getUname(), user.getPwd());
		
		return "ok";
	
	}
	
	public String login() throws Exception{
		User uu =UserService.add1(user.getUname(), user.getPwd());
		if(uu==null){
			
			return "error";
		
		}else
			return "success";
	}
	
	
}

只是简单的总结了一下,本人也是java小白。



推荐阅读
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 一、Tomcat安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat8.0\webapps二、Tomcat8.0配置多个端口,其实也就是给T ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
author-avatar
美美琳子_899
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有