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";
}
@Override
public 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();
@Override
public 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 { @Override
public User getByUserCode(String user_code) {
//HQL查询
//1.获得Session
Session session = HibernateUtils.getCurrentSession();
//2 书写HQL
String 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>

案例46-crm练习客户登录的更多相关文章

  1. 项目一:第九天 1、前台客户登录 2、Jquery citypicker省市区三级联动插件 4、业务受理(在线下单)

    1. 前台客户登录 2. Jquery citypicker省市区三级联动插件 3. 百度地图介绍 4. 业务受理(在线下单) 1 实现前台系统登录功能 1.1 Md5加密 admin(明文)---- ...

  2. 案例49-crm练习获取客户列表带有分页和筛选功能

    1 案例分析 2 书写步骤 1.封装PageBean 2.书写Action 3.书写Service 4.书写Dao   注意清空之前设置的聚合函数  dc.setProjection(null); 5 ...

  3. CRM(客户关系管理)

    CRM最初是由Gartner Group提出的. CRM定义:"客户关系管理(CRM),是代表增进赢利.收入和客户满意度而设计的,企业范围的商业战略." 我们可以看出,Gartne ...

  4. 如何通过CRM评估客户价值和提高客户忠诚度?

    随着市场经济的日益繁荣,同行业之间企业的竞争越来越激烈,企业纷纷各出奇招吸引和挖掘客户,力求让自己的品牌成为更多客户的第一选择.那么,我们可以用什么方法来评估客户价值,提高客户忠诚度呢? 在互联网时代 ...

  5. 苏泊尔借助微软CRM提升客户满意度

    企业背景 作为中国最大.全球第二的炊具研发制造商和中国小家电领先品牌,品质和创新一是苏泊尔矢志追求的企业理念,从火红点无油烟锅的发明到能做柴火饭的球釜IH饭煲的面世,苏泊尔用产品的创新和品质的承诺,不 ...

  6. day 72 crm(9) 客户关系系统,整体实现,以及自定制路由内容,客户关系梳理

    前情提要: crm(9)  ,利用stark 组件和,rbac组键的使用,   明确观点: 一:客户关系需求明确 1:客户关系系统,主要是,本业务逻辑主要是 销售就客户关系的业务逻辑, 二: 创建ap ...

  7. 案例44-crm练习新增客户使用struts2

    1 src下配置文件 1 struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYP ...

  8. 案例51-crm练习新增客户使用数据字典和ajax

    1 案例效果 2 使用ajax加载数据字典下拉选-后台部分 1 domain部分-BaseDict package www.test.domain; public class BaseDict { / ...

  9. HttpClient 应用案例揭破应用Discuss论坛登录

    闲来无事,写了一个对discuss论坛登录的案例,初次上场按照以前的惯例没成功,见过抓包分析discuss论坛成功完成,废话不多说 直接上代码. 1:winform 做客户端,添加HttpClient ...

随机推荐

  1. CString::MakeLower Crash

    记录一下使用CString::MakeLower可能导致的crash的一个问题: 问题重现: int _tmain(int argc, _TCHAR* argv[]){ std::string  sT ...

  2. JS判断键盘是否按了F5刷新

    <script type="text/javascript"> $(function () { $(document).keydown(function (event) ...

  3. javascript 数组排序

    var arr=[1,2,3,5,10,4,2,19,2,0]; alert(arr);//[1,2,3,5,10,4,2,19,2,0] arr.sort(function (a, b) {//升序 ...

  4. 【bzoj2330】: [SCOI2011]糖果 图论-差分约束-SPFA

    [bzoj2330]: [SCOI2011]糖果 恩..就是裸的差分约束.. x=1 -> (A,B,0) (B,A,0) x=2 -> (A,B,1)  [这个情况加个A==B无解的要特 ...

  5. loj #6235. 区间素数个数

    #6235. 区间素数个数 题目描述 求 1∼n 1\sim n1∼n 之间素数个数. 输入格式 一行一个数 n nn . 输出格式 一行一个数,表示答案. 样例 样例输入 10 样例输出 4 样例解 ...

  6. 关于jboss的线程问题+java.lang.outofmemoryError

    近日来,用Jmeter做压力测试.发现,每台客户机使用800个线程组压力倍增.昨天的测试,到了今天下午都没有跑完. 仔细观察了下Jboss的错误日志,发现,jboss已经宕机了. 本身后台的环境是使用 ...

  7. 【算法】关于图论中的最小生成树(Minimum Spanning Tree)详解

    本节纲要 什么是图(network) 什么是最小生成树 (minimum spanning tree) 最小生成树的算法 什么是图(network)? 这里的图当然不是我们日常说的图片或者地图.通常情 ...

  8. linux 下PATH环境变量

    环境变量简介 什么是环境变量呢?简要的说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件. 在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现&quo ...

  9. Octave安装符号工具箱

    1.国内访问Octave的代码包不稳定,可以访问网址http://sourceforge.mirrorservice.org/o/oc/octave/Octave%20Forge%20Packages ...

  10. asp web服务

    项目名--->添加--->web引用 网址:http://www.webxml.com.cn/zh_cn/index.aspx https://blog.csdn.net/linshich ...