本篇文章主要介绍了"国税协同平台-15系统、子系统首页&登录功能2",主要涉及到Struts,Apache方面的内容,对于MySql感兴趣的同学可以参考一下:
接上一篇:http://blog.csdn.net/acmman/article/details/49614841我们的子系统界面已经加载出来:我们找到左边菜单...
接上一篇:http://blog.csdn.net/acmman/article/details/49614841
我们的子系统界面已经加载出来:

我们找到左边菜单页,给它加链接:
- 角色管理
- 用户管理
我们指定了点击链接之后右侧模块页面的地址。
效果:


接下来我们要添加登录功能:
我们把工程原来的默认欢迎界面(WEB-INF下面的index.jsp)改为我们的登录界面。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
response.sendRedirect(basePath+"sys/login_toLoginUI.action");
%>
可以看到我们让index.jsp去跳转到sys/login_toLoginUI.action,我们下面来实现这个action:
package cn.edu.hpu.tax.login.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
//跳转到登录页面
public String toLoginUI(){
return "loginUI";
}
}
然后写它的
Struts配置文件login-
Struts.xml:
Struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://Struts.Apache.org/dtds/Struts-2.3.dtd">
<Struts>
/WEB-INF/jsp/{1}.jsp
/WEB-INF/jsp/loginUI.jsp
Struts>
将配置文件加入到
Struts总配置文件中:
然后加入我们的登录页面loginUI.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/Struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.setAttribute("ctx", path);
%>
登录
然后重启服务器,测试登录页面:
跳转至登录页面成功。
我们下面来做登录功能:
我们是这么设计的:
登录:
1、获取帐号和密码
2、通过帐号和密码查询用户表;如果查询有记录说登录成功;否则登录失败跳转到登录页面并且提示用户登录失败信息
2.1、登录成功
2.1.1、将用户信息保存到session中
2.1.2、***
2.1.3、将用户登录记录到日志文件
2.1.4、重定向跳转到首页
2.2、登录失败
跳转到登录页面并且提示用户登录失败信息
退出(注销):清除session中保存的用户信息
下面编码实现:
首先在LoginAction中实现我们的登录检测方法:
//登录
public String login(){
if(user!=null){
if(StringUtils.isNoneBlank(user.getAccount())
&&StringUtils.isNoneBlank(user.getPassword())){
//根据用户的账号和密码查询用户列表
List list=userService.findUserByAccountAndPassword(user.getAccount(),user.getPassword());
if(list!=null&&list.size()>0){//说明登录成功
//1、登录成功
User user=list.get(0);
//1.1、***
//1.2、将用户信息保存到session中
ServletActionContext.getRequest().getSession().setAttribute(Constant.USER, user);
//1.3、将用户登录记录到日志文件
Log log=LogFactory.getLog(getClass());
log.info("用户名称为:"+user.getName()+"的用户登录了系统");
//1.4、重定向跳转到首页
return "home";
}else{
loginResult="账号或密码不正确!";
}
}else{
loginResult="账号或密码不能为空!";
}
}else{
loginResult="请输入账号和密码!";
}
return toLoginUI();
}
我们的loginResult设为LoginAction的成员参数,并且设置了set和get方法。当我们登录失败了,这个错误提示信息就将在域中,在页面显示错误的地方放置这个信息:
其中的常量Constant.USER被定义在Constant类中:
public class Constant {
//系统中用户在session中的内容
public static String USER="SYS_USER";
//其它常量省略
}
然后在login-strust.xml配置文件中配置我们的home跳转页面:
home
上面的登录方法中还有findUserByAccountAndPassword(user.getAccount(),user.getPassword());没有定义,我们在UserService中定义这个方法,然后在UserServiceImpl中实现这个方法:
@Override
public List findUserByAccountAndPassword(String account,
String password) {
return userDao.findUserByAccountAndPassword(account,password);
}
我们在UserDao中定义findUserByAccountAndPassword()这个方法,然后在UserDaoImpl中实现这个方法:
@Override
public List findUserByAccountAndPassword(String account,
String password) {
Query query=getSession().createQuery("FROM User WHERE account=? AND password=?");
query.setParameter(0, account);
query.setParameter(1, password);
return query.list();
}
我们来测试:
我们有一个账号和密码是:lixiangyang和554466

点击登录之后成功进入主页!

同时后台输出登录记录并存入Log日志中:

那么我们将密码故意输错,发现又跳转回登录界面并看到了错误信息:

至此我们的登录方法完成,但是我们还要处理一些细节(注销等功能)。下篇总结再赘述。
转载请注明出处:http://blog.csdn.net/acmman/article/details/49614941
以上就介绍了国税协同平台-15系统、子系统首页&登录功能2,包括了Struts,Apache方面的内容,希望对MySql有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_209074.html