- 浏览: 194469 次
文章分类
最新评论
-
code_xiaoke:
session可是有30分钟有效期的还有如果在分布式的环境下 ...
Java Web 用户登陆示例代码 -
xul0038:
http://www.baidu.com
Java Web 用户登陆示例代码 -
16866:
非常棒,配置信息呢
Nginx负载均衡 -
开发小菜:
什么意思,没明白?能不能写一个例子
JS 实现DIV随浏览器窗口大小变化
实现功能:
1、用户登陆、注销
2、利用session记录用户登陆信息
3、在JSP中展示已登陆用户信息
实现原理:
登陆后通过判断用户名和密码是否和存储的一致,如果一致,就把用户信息放到session中储存;如果不一致就提示信息,并且返回登陆页面。
显示信息页面上固定从session中找用户登陆信息,找到就显示用户信息,没找到就显示登陆框。
注销很简单,就是清空session信息。
主要文件:
1、LoginAction:struts2的Action类,用于处理JAVA端的主要登陆和登出逻辑。
2、login.jsp:用户登陆页面,用户输入用户名和密码,如果登陆失败显示失败信息。
3、page.jsp:登陆成功后显示用户信息。
4、struts.xml:struts的配置文件。
LoginAction:struts2的Action类,用于处理JAVA端的主要登陆和登出逻辑
package luju.me.teach.struts2.login;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
/**
* @author 鲁炬 http://luju.me
*
*/
public class LoginAction {
private String loginname;
private String password;
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
/** 用户登陆 */
public String login() {
if(StringUtils.isBlank(this.loginname)) {
return Action.INPUT;
}
/*
这里写你自己通过用户名查找用户信息的业务逻辑
比如:使用手机号登陆
Citizen user = prmService.queryEGovCitizenByMobile(this.loginname);
....
*/
if(user == null || user.getPwd() == null || !user.getPwd().getValue().equals(this.password)) {
//登陆失败
this.msg = "用户不存在或密码错误!";
return Action.INPUT;
} else {
//登陆成功
//设置session
this.getSession().setAttribute("_USER_INFO_LOGIN_NAME_", this.loginname);
this.getSession().setAttribute("_USER_INFO_USER_ID_", user.getId().getValue());
this.getSession().setAttribute("_USER_INFO_USER_INFO_", user);
//设置cookie
this.getResponse().addCookie(new Cookie("_USER_INFO_LOGIN_NAME_", this.loginname));
this.getResponse().addCookie(new Cookie("_USER_INFO_USER_ID_", user.getId().getValue()));
return Action.SUCCESS;
}
}
/**
* 注销
*/
public String loginout() {
//清空session
this.getSession().invalidate();
return Action.SUCCESS;
}
public HttpSession getSession() {
return ServletActionContext.getRequest().getSession();
}
public HttpServletRequest getRequest() {
return ServletActionContext.getRequest();
}
public HttpServletResponse getResponse() {
return ServletActionContext.getResponse();
}
}
struts.xml:struts的配置文件
<?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="common" namespace="/common">
<action name="login" class="luju.me.site.common.action.LoginAction"
method="login">
<result name="input">login.jsp</result>
<result name="success" type="redirect">/page.jsp</result>
</action>
<action name="loginout" class="luju.me.site.common.action.LoginAction"
method="loginout">
<result name="success" type="redirect">login.action</result>
</action>
</package>
</struts>
login.jsp:用户登陆页面,用户输入用户名和密码,如果登陆失败显示失败信息。
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>欢迎登录</title>
</head>
<body>
<div id="login">
<span>${msg}</span>
<form name="form1" method="post" action="<c:url value="/common/login.action" />" >
<span>
<label>用户名:</label>
<input name="loginname" id="loginname" type="text" value="admin" />
</span>
<span>
<label>密码:</label>
<input type="password" name="password" id="password" value="123"/>
</span>
<span>
<input type="submit" value="登陆" />
</span>
</form>
</div>
</body>
</html>
page.jsp:登陆成功后显示用户信息。
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
boolean isLogin = false;
String loginName = (String)request.getSession().getAttribute("_USER_INFO_LOGIN_NAME_");
if(loginName != null && !"".equals(loginName)){
isLogin = true;
}
request.setAttribute("isLogin",isLogin);
request.setAttribute("loginName",loginName);
%>
<c:if test="${isLogin}">
你好:${loginName}
<a href="<c:url value="/common/loginout.action" />">注销</a>
</c:if>
<c:if test="${!isLogin}">
<form name="login_form" method="post" action="<c:url value="/common/login.action" />" >
<span>
<label>手机号:</label>
<input name="loginname" id="loginname" type="text" value="" />
</span>
<span>
<label>密码:</label>
<input type="password" name="password" id="password" value=""/>
</span>
<span>
<input type="submit" value="登陆" />
</span>
</form>
</c:if>
发表评论
-
java实现动态切换上网IP (ADSL拨号上网) java开发
2013-04-24 10:06 1214动态切换IP的实现主是也由Windows的rasdial命令提 ... -
JAVA字符串处理函数
2013-04-12 09:21 1020Java中的字符串也是一连串的字符。但是与许多其他的计算机语 ... -
(转)Lucene打分规则与Similarity模块详解
2013-02-06 14:08 1123搜索排序结果的控制 Lu ... -
Compass将lucene、Spring、Hibernate三者结合
2013-02-01 11:02 1636版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声 ... -
Lucene3.0详解
2013-02-01 10:57 1333★第一部分:概述 1. 我 ... -
Java对数函数及Java对数运算
2013-02-01 09:47 6714Java对数函数的计算方法非常有问题,然而在API中却有惊人 ... -
Lucene为不同字段指定不同分词器(转)
2013-01-31 17:34 3364在lucene使用过程中,如 ... -
.net发邮件【转】
2013-01-31 15:10 1737对于.NET而言,从2.0开始 ... -
域名管理与解析原理 — 《Java邮件开发详解》读书笔记
2013-01-31 14:56 1647一 基本概念 1. 域名:域名是由圆点分开一串单词或缩写组 ... -
优秀的Java工程师需要掌握的10项技能
2013-01-31 14:04 1783编程专业相对于计算机领域其他专业来讲,是一门比较难以修炼的专业 ... -
Web开发入门不得不看
2013-01-28 17:31 990如今,各种互联网的Web ... -
选择JSF不选Struts的十大理由
2013-07-09 09:44 723我的一个客户不知道该 ... -
MVC框架的映射和解耦
2013-01-25 21:37 781最近在写一个业务上用到的框架,回想起接触过的一些MVC框架, ... -
JAVA发送EMAIL的例子
2013-07-09 09:44 859import javax.mail.*; ... -
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎
2012-11-19 09:55 1331前两天看到了一个中国新闻网,这个网站的搜索form的actio ... -
Lucene多字段搜索
2012-11-19 09:53 924最近在学习Lucene的过程中遇到了需要多域搜索并排序的问题, ... -
lucene之sort
2012-11-16 15:06 1037package cn.zqh.lucene.sort; im ... -
Nginx负载均衡
2012-11-16 11:45 7526最近迷上了Nginx,真实麻雀虽小,五脏俱全..功能实在强大. ... -
Lucene相关度排序的调整
2012-11-16 11:38 1668Lucene的搜索结果默认按 ... -
HashSet重复元素判断
2012-10-15 16:37 9087HashSet不能添加重复的元素,当调用add(Object) ...
相关推荐
Web Service示例。不知道如何写WEB service程序,那就认真看看这个实例吧!
孙鑫老师的Java Web开发详解里面所有的示例代码
Web Services示例Java代码
《Java Web程序设计教程》介绍使用Java语言开发Web应用的主流技术。首先,从基本开发技术入手,讲解了JSP、servlet、SQL以及JDBC的基础概念及应用方法。然后,逐步过渡到框架技术的讲解,包括Struts2框架技术应用、...
我们提供基于HTTP协议的开发接口,令您可以很容易的将短信集成到您的系统。API开发接口格式语言支持Java、php、C#、VB等
《Tomcat与Java Web开发技术详解》一书的示例源代码
java web 开发 上传文件至服务端保存于服务端某个文件夹下 java代码示例
夏帮贵《Java web开发完全掌握》示例源代码第6-9章,全部源代码请购买相关书籍
SendCloud Java发送的WEBAPI_4.4代码示例,注:此为使用 SendCloud API V2 发送邮件的示例.
SendCloud Java发送的WEBAPI_4.2代码示例,注:此为使用 SendCloud API V2 发送邮件的示例.
由于上传大小限制50M,因此分享的是我的百度网盘链接,下载后文本文件里有链接,包括Java Web整合开发王者归来整本书326.5M 的PDF文档以及54.7M的光盘源代码 本书简介: 资深Java程序员耗时一年时间写作,十年开发...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考...小型网上订餐系统源码+表设计+示例截图(Java Web).zip
java连接oracle示例代码,java web
《Java Web编程宝典(十年典藏版)》附有配套DVD光盘,光盘中提供了书中全部实例和项目的源代码。这些源代码全部经过精心调试,能够在Windows XP、WindowsServer2003及Windows7操作系统下编译和运行。 《Java Web...
运行环境jdk8+tomcat8+idea15+mysql; 运行方法:将代码导入你的idea中,根据提供的配置文件配置数据库和表,插入数据,。...本示例代码提供了一个完整的java web项目从后台到前台的执行过程,是一个很好的学习资源。
《Java Web服务:构建与运行》通过提供混合架构概述、完整的工作代码示例以及短而精确的编译、部署和执行应用程序的指示,采用明确实用的方法来处理这些技术。你将学习如何从头开始编写Web服务以及集成现有服务到你...
主要介绍了Java web数据可视化实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
PRO192-Java core code in class project in class(DuyDT)prj 311-桌面Java应用程序库实践考试示例实践考试D201 -数据结构和算法我的...桌面Java lab包括我通过的两节课(TuanVM)prj 321-基于Web的Java应用程序代码
适用:java语言,网络初学者 //Java web应用程序开发实验项目 // 本实验项目旨在开发一个基于Python的Web应用程序。项目将实现一个简单的Web服务器和客户端,通过一...实现: Java客户端代码 以及 Java Web服务器代码。