1 login.jsp代码

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/frameset.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<STYLE type=text/css>
BODY {FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: 宋体
}
TD {FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: 宋体
}
</STYLE><META content="MSHTML 6.00.6000.16809" name=GENERATOR></HEAD>
<BODY>
<FORM id=form1 name=form1 action="${pageContext.request.contextPath }/UserAction_login" method=post><DIV id=UpdatePanel1>
<DIV id=div1
style="LEFT: 0px; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR: #0066ff"></DIV>
<DIV id=div2
style="LEFT: 0px; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR: #0066ff"></DIV><DIV>&nbsp;&nbsp; </DIV>
<DIV>
<TABLE cellSpacing=0 cellPadding=0 width=900 align=center border=0><TBODY><TR><TD style="HEIGHT: 105px"><IMG src="data:images/login_1.gif" border=0></TD></TR><TR><TD background=images/login_2.jpg height=300><TABLE height=300 cellPadding=0 width=900 border=0><TBODY><TR><TD colSpan=2 height=35></TD></TR><TR><TD width=360></TD><TD><TABLE cellSpacing=0 cellPadding=2 border=0><TBODY><TR><TD style="HEIGHT: 28px" width=80>登 录 名:</TD><TD style="HEIGHT: 28px" width=150><INPUT id=txtName style="WIDTH: 130px" name="user_code"></TD><TD style="HEIGHT: 28px" width=370><SPAN id=RequiredFieldValidator3 style="FONT-WEIGHT: bold; VISIBILITY: hidden; COLOR: white">请输入登录名</SPAN></TD></TR><TR><TD style="HEIGHT: 28px">登录密码:</TD><TD style="HEIGHT: 28px"><INPUT id=txtPwd style="WIDTH: 130px" type=password name="user_password"></TD><TD style="HEIGHT: 28px"><SPAN id=RequiredFieldValidator4 style="FONT-WEIGHT: bold; VISIBILITY: hidden; COLOR: white">请输入密码</SPAN></TD></TR><TR><TD style="HEIGHT: 28px">验证码:</TD><TD style="HEIGHT: 28px"><INPUT id=txtcode style="WIDTH: 130px" name=txtcode></TD><TD style="HEIGHT: 28px">&nbsp;</TD></TR><TR><TD style="HEIGHT: 18px"></TD><TD style="HEIGHT: 18px"><span style="color:red"><s:property value="exception.message"/></span></TD><TD style="HEIGHT: 18px"></TD></TR><TR><TD></TD><TD><INPUT id=btn style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"  type=image src="data:images/login_button.gif" name=btn> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR><TR><TD><IMG src="data:images/login_3.jpg"
border=0></TD></TR></TBODY></TABLE></DIV></DIV>
</FORM>
<s:debug></s:debug>
</BODY></HTML>

2 UserAction

package www.test.web.action;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;import www.test.domain.User;
import www.test.service.UserService;
import www.test.service.impl.UserServiceImpl;public class UserAction extends ActionSupport implements ModelDriven<User> {private User user = new User();private UserService us  = new UserServiceImpl();public String login() throws Exception {//1 调用Service 执行登陆操作User u = us.login(user);//2 将返回的User对象放入session域作为登陆标识ActionContext.getContext().getSession().put("user", u);//3 重定向到项目的首页return "toHome";}@Overridepublic User getModel() {return user;}
}

3 UserServiceImpl

package www.test.service.impl;import www.test.dao.UserDao;
import www.test.dao.impl.UserDaoImpl;
import www.test.domain.User;
import www.test.service.UserService;
import www.test.utils.HibernateUtils;public class UserServiceImpl implements UserService {private UserDao ud = new UserDaoImpl();@Overridepublic User login(User user) {//打开事务
        HibernateUtils.getCurrentSession().beginTransaction();//1.调用Dao根据登陆名称查询User对象User existU = ud .getByUserCode(user.getUser_code());//提交事务
        HibernateUtils.getCurrentSession().getTransaction().commit();if(existU==null){//获得不到=>抛出异常提示用户名不存在throw new RuntimeException("用户名不存在!");}//2 比对密码是否一致if(!existU.getUser_password().equals(user.getUser_password())){//不一致=>抛出异常提示密码错误throw new RuntimeException("密码错误!");}//3 将数据库查询的User返回return existU;}
}

4 UserDaoImpl

package www.test.dao.impl;import org.hibernate.Query;
import org.hibernate.Session;import www.test.dao.UserDao;
import www.test.domain.User;
import www.test.utils.HibernateUtils;public class UserDaoImpl implements UserDao {@Overridepublic User getByUserCode(String user_code) {//HQL查询//1.获得SessionSession session = HibernateUtils.getCurrentSession();//2 书写HQLString hql = "from User where user_code = ? ";//3 创建查询对象Query query = session.createQuery(hql);//4 设置参数query.setParameter(0, user_code);//5 执行查询User u = (User) query.uniqueResult();return u;}}

5 struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd">
<struts><!-- 指定struts2是否以开发模式运行1.热加载主配置.(不需要重启即可生效)2.提供更多错误信息输出,方便开发时的调试--><constant name="struts.devMode" value="true"></constant><package name="crm" namespace="/" extends="struts-default" ><global-exception-mappings><!-- 如果出现名为java.lang.RuntimeException的异常,就跳转到名为error的结果 --><exception-mapping result="error" exception="java.lang.RuntimeException"></exception-mapping></global-exception-mappings><action name="CustomerAction_*" class="www.test.web.action.CustomerAction" method="{1}" ><result name="list" >/jsp/customer/list.jsp</result><result name="toList" type="redirectAction"><param name="actionName">CustomerAction_list</param><param name="namespace">/</param></result></action><action name="UserAction_*" class="www.test.web.action.UserAction" method="{1}" ><result name="toHome" type="redirect">/index.htm</result><result name="error" type="dispatcher">/login.jsp</result></action></package>
</struts>

转载于:https://www.cnblogs.com/jepson6669/p/8530926.html

案例46-crm练习客户登录相关推荐

  1. 基于 Python/Vue/D2 实现的CRM管理系统(客户管理,产品管理,商机管理,合同管理,客户公海,权限管理等业务模块)

    目录 一.系统概述 业务模块 部署方式 二.效果展示 登录页面 客户页面 联系人 产品类目 产品 合同 消息中心 供应商 客户公海 三.关键代码 后端 http 使用 python django 后端 ...

  2. C语言 项目 CRM系统(客户信息管理系统)

    项目目标 项目需求说明 系统界面 1)添加客户界面 通过编号来区分客户 2)删除客户界面 对用户输入的编号进行核查,存在与否,合法与否 3)显示客户列表界面 4)修改客户信息的界面 项目设计 Cust ...

  3. php修改学生信息代码_值得收藏的CRM软件客户管理系统(包括JAVA/PHP)

    悟空CRM是一款永久开源免费的CRM管理系统,悟空CRM-基于JAVA/TP5.0+vue+ElementUI的前后端分离CRM系统 ,悟空CRM是基于JAVA/PHP多语言的B/S架构的管理软件,为 ...

  4. mysql 登录默认实例_【MySQL案例】mysql本机登录-S失灵_mysql

    [mysql案例]mysql本机登录-S失效 1.1.1. mysql本机登录mysql时,-S参数失效 [环境描述] mysql5.5.14 [问题描述] 配置了多实例 实例1 实例2 datadi ...

  5. 利用CRM系统分析客户数据

    客户是企业生存发展的根本,"客户就是上帝"是从古至今的至理名言.在信息化技术时代里,众多企业纷纷启动CRM客户管理系统,期望通过CRM系统的专业客户管理效能,提高企业整体客户管理效 ...

  6. 知客CRM:客户关系管理2.0

    互联网的Web2.0,从博客到大大小小的点评网站,大家都不陌生,相对于Web1.0而言,Web2.0更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者.下面我们来看这个例子,某公司推 ...

  7. 中小企业如何用在线CRM留住客户

    客户是企业生产发展的根本.企业的所有经营活动归根到底都是为围绕"客户"展开.开发潜在客户.将潜在客户变为客户,将新客户变为老客户,让老客户实现多次购买--那么企业究竟该如何让自己的 ...

  8. 企业如何用CRM软件客户管理自动化优化流程?

    假如企业需要利用CRM软件来对自己的客户实施一系列的管理维护流程,那么客户服务自动化是个必选的功能流程,如果没有服务自动化流程,那么CRM软件就成了一个普通客户资料信息管理工具,只能被用于储存调用客户 ...

  9. 图解CRM(客户关系管理)全流程

    在不同场合下,CRM(客户关系管理)可能是一个管理学术语,也可能是一个软件系统.我们通常所指的CRM,指用计算机自动化分析销售.市场营销.客户服务以及应用等流程的软件系统.通俗地说,CRM就是利用软件 ...

  10. python数据建模案例源代码_一个完整的数据分析案例 | 用Python建立客户流失预测模型(含源数据+代码)...

    原标题:一个完整的数据分析案例 | 用Python建立客户流失预测模型(含源数据+代码) 来源:数据分析不是个事儿 作者:启方 原文: https://mp.weixin.qq.com/s/_20MN ...

最新文章

  1. Silverlight学习笔记之文字特效之ImageBrush
  2. Winform中实现点击按钮弹窗输入密码验证通过后执行相应逻辑
  3. hiveserver2启动不起来_一辆顶杆机电启动很响,不好打火,有时空挡指示灯较暗...
  4. Oracle中Null与空字符串' '的区别
  5. 前端学习(238):IE低版本常见bug
  6. android stepview 京东,Android-Android-OpenAPI SDK-帮助文档-京东云
  7. idea中Mark Directory as的几个选项详解
  8. CSS 的三个特性:层叠性、继承性、优先级
  9. C语言:复制线性链表(递归)算法
  10. 单像空间后方交会的程序实现
  11. springboot学习(下)
  12. vue-element-admin 框架结构粗解
  13. 机器学习常用性能度量中的Accuracy、Precision、Recall、ROC、F score等都是些什么东西?...
  14. 【docker入门】
  15. Pycharm下载MaxCompute过程
  16. Android clippling使用
  17. OpenCV图形图像击中击不中HITMISS变换处理基础知识
  18. 三年亏损14亿,想在纽交所上市的爱回收,靠做旧生意能拼过闲鱼和转转吗?
  19. Form derives from Form
  20. 时间空间复杂度(入门篇)——数据结构与算法

热门文章

  1. ospf 实验笔记(二)
  2. Springboot版本+ Spring Framework版本 + jdk版本 + Maven版本
  3. Unrecognized option: -javaagent
  4. Fletcher-Reevers Conjugate Descent和Steepest Descent两种算法中伪代码的区别
  5. 市面上的hadoop书籍调研
  6. intellij运行spark的maven方式运行WordCount
  7. ubuntu下面codelite运行代码一闪而过的问题、codelite的代码排版快捷键、去掉xfce4的Ctrl+F5
  8. mesh threejs 属性_threeJS创建mesh,创建平面,设置mesh的平移,旋转、缩放、自传、透明度、拉伸...
  9. php 超链接新页面打开新页面,Typecho 超链接默认新窗口打开
  10. fs7宽容度_《如果蜗牛有爱情》,FS7拍出电影级质感!