ssh框架的小实例(用户登录)
刚学SSH框架写一个小实例,以便以后查看:
本案例简单的实现一个用户登录:
数据库方面就不写了,自己领悟吧!哈哈(根据user.hbm.xml文件就知道了)
我们一般可以创建下面几个包,什么意思呢,自己悟
com.website.action.user
com.website.dao
com.website.dao.impl
com.website.entity
com.website.service
com.website.service.impl
下面开始码代码了:
com.website.entity包中User.java与user.hbm.xml
User.java
package com.website.entity;
public class User {
private int userId;
private String userName;
private String userPassword;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
}
user.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.website.entity.User" table="user">
<id name="userId" column="user_id" type="int">
<generator class="identity"></generator>
</id>
<property name="userName" column="user_name" type="string"/>
<property name="userPassword" column="user_password" type="string"/>
</class>
</hibernate-mapping>
com.website.dao包中的UserDAO.java接口
UserDAO.java
package com.website.dao;
import com.website.entity.User;
/**
* 所需要的user用户的DAO接口
* 包含findUserByID,loginUser
* @author 战旗
*
*/
public interface UserDAO {
public User findUserById(Integer id);
public User loginUser(User user);
}
com.website.dao.impl包中的UserDAOImpl.java
package com.website.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.website.dao.UserDAO;
import com.website.entity.User;
/**
* userDAO 接口的实现类
* @author 战旗
*
*/
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{
/**
* @param id
* 根据ID查找User
* @return User
*/
@Override
public User findUserById(Integer id) {
User user = (User)this.getHibernateTemplate().get(User.class, id);
return user;
}
/**
* @param user
* 根据user的用户名 和 密码查找user用户,
* 如果查到返回user,否则返回null
* @return user
*/
@SuppressWarnings("unchecked")
@Override
public User loginUser(User user) {
//sql语句
String hql = "from User user where user.userName='" + user.getUserName()
+ "' and user.userPassword='" + user.getUserPassword() + "'" ;
List<User> users = (List<User>)this.getHibernateTemplate().find(hql);
if(users.size() > 0){
return users.get(0);
}
return null;
}
}
com.website.service包中的UserService.java接口
package com.website.service;
import com.website.entity.User;
/**
* User的Service接口
* @author 战旗
*
*/
public interface UserService {
public User findById(Integer id);
public User loginUser(User user);
}
com.website.service.impl包中的UserServiceImpl.java
package com.website.service.impl;
import com.website.dao.UserDAO;
import com.website.entity.User;
import com.website.service.UserService;
/**
*
* @author 战旗
*
*/
public class UserServiceImpl implements UserService{
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
@Override
public User findById(Integer id) {
return this.userDAO.findUserById(id);
}
@Override
public User loginUser(User user) {
return this.userDAO.loginUser(user);
}
}
最后com.website.action.user包的UserAction.java
package com.website.action.user;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.website.entity.User;
import com.website.service.UserService;
@SuppressWarnings("serial")
public class UserAction extends ActionSupport{
private User user;
private UserService userService;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public String login() throws Exception{
User userLogin = userService.loginUser(user);
if(userLogin != null){
HttpServletRequest req = ServletActionContext.getRequest();
HttpSession session = req.getSession();
session.setAttribute("user", userLogin);
return "success";
}else{
ActionContext.getContext().put("result", "2");
}
return "input";
}
}
来一下前端吧,详细点完整点:
<s:form action="loginUserAction" method="post">
<h2>登录</h2
<div style="margin:5px 0px;">
<input type="text" name="user.userName" placeholder="请输入账号..."/>
</div>
<div style="margin:5px 0px;">
<input type="password" name="user.userPassword" placeholder="请输入密码 ..."/>
</div>
<!-- 验证码的提示信息 -->
<div id="vdmsg" style="display:inline; color: red;"></div>
<div style="margin: 5px 0px;">
<button type="submit" >登<span style="width:20px;"></span>录</button>
</div>
</s:form>
再加上错误提示信息吧!
<script type="text/javascript">
var result = "${result}";
if(result == "2"){
document.getElementById("vdmsg").innerHTML = "用户名 或 密码错误!";
}
</script>
下面是整个程序的重点了,struts.xml和applicationContext.xml文件的配置:
struts.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="website" extends="struts-default">
<action name="*UserAction" class="userAction" method="{1}">
<result name="success" type="redirect">/main.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
applicationContext.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/website</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>com/website/entity/user.hbm.xml</value>
<value>com/website/entity/admin.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- userDao -->
<bean id="userDao" class="com.website.dao.impl.UserDAOImpl" scope="singleton">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="userServiceTarget" class="com.website.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDao"/>
</bean>
<bean id="userService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="target" ref="userServiceTarget"></property>
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="userAction" class="com.website.action.user.UserAction"
scope="prototype">
<property name="userService" ref="userService"></property>
</bean>
</beans>
到此就完全配置完了,web.xml的配置自己去吧配置个struts的过滤器就ok了
ssh框架的小实例(用户登录)的更多相关文章
- 小程序版好友对战实战-wss部署与小程序用户登录时序
上一篇文章是对需求的分析,本次将逐渐进入代码阶段.本次主要的内容包括服务端wss的部署以及小程序端用户授权的时序及逻辑. wss的配置与部署 微信小程序出于安全考虑,要求所有涉及到网络的操作,必须使用 ...
- Java基础知识强化之集合框架笔记37:用户登录注册案例
1. 登录注册案例分析图解: 2. 用户登录案例 详细分析 和 分包实现: (1)用户登录案例详细分析(面向对象思想) 按照如下的操作,可以让我们更符合面向对象思想: • 有哪些类呢? ...
- Spring学习之SpringMVC框架快速搭建实现用户登录功能
引用自:http://blog.csdn.net/qqhjqs/article/details/41683099?utm_source=tuicool&utm_medium=referral ...
- 微信小程序 用户登录 服务器端(TP5.1)实现
先来看官方提供的流程图: 客户端: 小程序客户端通过 wx.login() 获取登录code , 然后将code当做参数传递到服务器. getToken(){ var that = this; wx. ...
- OSGI框架—HelloWorld小实例
OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于 ...
- ubuntu(14.04) 安装ssh,并使用root用户登录
1.apt-get install openssh-server 2.修改ssh的配置文件/etc/ssh/sshd_config 注释掉以前的:PermitRootLogin without-pas ...
- python入门之实例-用户登录、注册
用户密码存储文件db(其中用户和密码之间用$符合隔开): admin$123456 root$sdfk9f24 chy$654321 代码如下: def login(username,password ...
- Spring3.0 与 MyBatis框架 整合小实例
本文将在Eclipse开发环境下,采用Spring MVC + Spring + MyBatis + Maven + Log4J 框架搭建一个Java web 项目. 1. 环境准备: 1.1 创建数 ...
- SSM框架完成Ajax简单用户登录验证
一.前端JSP <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...
随机推荐
- [转]在 Mac OS X上编译 libimobiledevice 的方法
link: http://blog.boceto.fr/2012/05/05/libimobiledevice-for-macosx/ The objective of the day: Compil ...
- Windows7和Archlinux双系统硬盘安装笔记
俗话说,好记性不如烂笔头,这些东西也都是我Google来的,做个笔记以后自己安装也方便些. 因为官方wiki的Beginners' Guide讲的非常好,大部分步骤按照wiki一步一步来就好了,这里只 ...
- Asp.Net MVC 进阶篇:路由匹配 实现博客路径 和文章路径
Asp.Net MVC 进阶篇:路由匹配 实现博客路径 和文章路径 我们要实现 通过路由 匹配出 博客地址 和博客文章地址 例如下面的这两个地址 //http://www.cnblogs.com/ma ...
- mysql 和 mongo db 语法对比
本文描述了MySQL中的常用SQL语句在MongoDB中的写法,如果你长期使用MySQL而对MongoDB跃跃欲试,这篇简单的文章可以帮助你更快的进入角色.查询:MySQL:SELECT * FROM ...
- Lucene.net入门学习系列(2)
Lucene.net入门学习系列(2) Lucene.net入门学习系列(1)-分词 Lucene.net入门学习系列(2)-创建索引 Lucene.net入门学习系列(3)-全文检索 在使用Luce ...
- IIS7中 ASP.NET授权功能如何实现对静态文件的控制
IIS7中 ASP.NET授权功能如何实现对静态文件的控制 前序 .net提供了3种用户认证的方式,分别是Windows,Forms,Passport.这几种形式的定义可以在网站根目录下Web.con ...
- “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现)
“MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现) 一.前三篇的内容是否对您有帮助呢?如果有的话,请您继续关注这篇吧,这篇主要是实现”用户管理“的 ...
- 创建简单的响应式HTML5模版
创建简单的响应式HTML5模版 HTML5目前发展势头良好,已经逐渐得到大部分浏览器不同程度的支持.许多web开发者也已经学习到了不少关于HTML 5的基础知识并开始试图使用HTML 5制作网页.与此 ...
- VS中为类,函数代码自动添加版权注释信息
以web项目为例: 一:给类加注释 1.在visual studio 的安装路径下 如:[盘符]:\Program files\Microsoft Visual Studio 8\Com ...
- 如何使用开源库,吐在VS2013发布之前,顺便介绍下V2013的新特性"Bootstrap"
如何使用开源库,吐在VS2013发布之前,顺便介绍下VS2013的新特性"Bootstrap" 刚看到Visual Studio 2013 Preview - ASP.NET, M ...