- 浏览: 200494 次
文章分类
最新评论
-
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 1302动态切换IP的实现主是也由Windows的rasdial命令提 ... -
JAVA字符串处理函数
2013-04-12 09:21 1151Java中的字符串也是一连串的字符。但是与许多其他的计算机语 ... -
(转)Lucene打分规则与Similarity模块详解
2013-02-06 14:08 1210搜索排序结果的控制 Lu ... -
Compass将lucene、Spring、Hibernate三者结合
2013-02-01 11:02 1679版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声 ... -
Lucene3.0详解
2013-02-01 10:57 1419★第一部分:概述 1. 我 ... -
Java对数函数及Java对数运算
2013-02-01 09:47 6799Java对数函数的计算方法非常有问题,然而在API中却有惊人 ... -
Lucene为不同字段指定不同分词器(转)
2013-01-31 17:34 3475在lucene使用过程中,如 ... -
.net发邮件【转】
2013-01-31 15:10 1774对于.NET而言,从2.0开始 ... -
域名管理与解析原理 — 《Java邮件开发详解》读书笔记
2013-01-31 14:56 1723一 基本概念 1. 域名:域名是由圆点分开一串单词或缩写组 ... -
优秀的Java工程师需要掌握的10项技能
2013-01-31 14:04 1864编程专业相对于计算机领域其他专业来讲,是一门比较难以修炼的专业 ... -
Web开发入门不得不看
2013-01-28 17:31 1036如今,各种互联网的Web ... -
选择JSF不选Struts的十大理由
2013-07-09 09:44 770我的一个客户不知道该 ... -
MVC框架的映射和解耦
2013-01-25 21:37 835最近在写一个业务上用到的框架,回想起接触过的一些MVC框架, ... -
JAVA发送EMAIL的例子
2013-07-09 09:44 907import javax.mail.*; ... -
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎
2012-11-19 09:55 1388前两天看到了一个中国新闻网,这个网站的搜索form的actio ... -
Lucene多字段搜索
2012-11-19 09:53 1042最近在学习Lucene的过程中遇到了需要多域搜索并排序的问题, ... -
lucene之sort
2012-11-16 15:06 1095package cn.zqh.lucene.sort; im ... -
Nginx负载均衡
2012-11-16 11:45 7669最近迷上了Nginx,真实麻雀虽小,五脏俱全..功能实在强大. ... -
Lucene相关度排序的调整
2012-11-16 11:38 1732Lucene的搜索结果默认按 ... -
HashSet重复元素判断
2012-10-15 16:37 9142HashSet不能添加重复的元素,当调用add(Object) ...
相关推荐
Java Web登录实例是一个...通过阅读和运行这些代码,你可以加深对Java Web登录机制的理解,为后续的Web开发打下坚实基础。同时,这也是实践和提升编程技能的好机会,因为理论学习总是需要结合实际操作才能真正掌握。
本示例代码是关于如何创建和使用Web服务的一个简明教程,旨在帮助开发者理解Web服务的基本概念、配置和实现。 一、Web服务基础 Web服务的核心技术包括SOAP(Simple Object Access Protocol)、WSDL(Web Services ...
"java代码规范示例" Java 代码规范示例中,涵盖了 Java 项目中包、类、方法、注释等多个方面的规范。 首先,从文件头的注释部分可以看到,这个 Java 文件是一个 FTP 帮助类,负责实现 FTP 的上传和下载功能。这个...
8. **文件上传和下载**:在Java Web应用中,源代码可能会包含处理文件上传和下载的示例,使用诸如Commons FileUpload等库。 9. **安全机制**:例如,登录认证、权限控制等,你可能会看到基于HTTP基本认证、表单认证...
JavaServlet是一种用于构建动态Web应用...以上就是关于"JavaServlet示例代码"的关键知识点,涵盖了Servlet的基本用法、用户注册登录流程以及常见的安全性考虑。理解和掌握这些内容对于深入学习Java Web开发至关重要。
系统功能模块包括: 仓库列表展示:展示所有仓库的姓名和邮箱信息; 仓库添加:提供输入界面,允许添加新仓库;...基于Spring Boot开发的java web 用户管理系统 CRUD(增删查改)web系统操作示例代码
Web服务是一种基于标准...总的来说,这个Java Web Service示例代码是一个很好的起点,它涵盖了服务端开发和客户端调用的基本流程。深入学习和实践,你将能够熟练地创建和使用各种Web服务,实现不同系统间的无缝集成。
这个"java web开发教程全部代码"压缩包提供了全面的学习资源,旨在帮助初学者和进阶者深入理解Java Web开发的核心概念与实践技巧。 首先,Java Web开发的基础是Java Servlet和JavaServer Pages (JSP)。Servlet是...
孙鑫老师的"Java Web开发详解"是一本深入解析这个领域的书籍,提供了丰富的示例代码来帮助读者理解并实践相关概念。在这个压缩包中,你将找到书中所有示例代码的源文件,这对于学习和参考是非常宝贵的资源。 Java ...
本示例"java web接口开发demo"可能是提供了一个简单的Java Web接口的实现,帮助开发者理解如何构建和使用这样的接口。 首先,让我们了解一下Servlet,它是Java Web应用的核心组件之一,用于接收HTTP请求并返回响应...
这个“图书管理系统”是利用Java Web技术实现的一个典型示例,它包含了数据库的增删改查功能,非常适合初学者学习和参考。 1. **Java Web基础** - **Servlet**:Java Web应用程序的核心组件,用于处理HTTP请求并...
这个"java web 购物车代码"项目显然是一个实现这一功能的示例。以下是这个项目可能涉及的关键知识点和详细说明: 1. **Servlet与JSP**:在Java Web应用中,Servlet用于处理HTTP请求,而JSP(JavaServer Pages)用于...
这是一种常见的Java Web应用架构,它将业务逻辑(Model)、用户界面(View)和控制逻辑(Controller)分离,提高了代码的可维护性和可扩展性。在源代码中,可能会看到Controller类用于处理请求,Model类用于封装数据...
示例代码可能包括如何使用JAX-WS的`Service`类或者Apache CXF等第三方库来创建Web服务客户端,调用服务接口并处理返回的数据。 7. **测试Web服务** 开发者通常使用`wsimport`工具生成Java客户端代理类,或者使用...
Java Web是一种基于Java技术构建Web应用程序的框架和标准,它结合了Java服务器页面(JSP)、Servlet、JavaServer Faces(JSF)等组件,为开发人员提供了强大的后端支持和丰富的用户界面创建工具。本教程将围绕“经典...
【JAVA WEB 选课系统源代码】是一个典型的Java Web应用程序示例,对于初学者和有经验的开发者来说,都是一个宝贵的资源。这个项目的核心是利用Java语言和Web技术来构建一个能够实现学生选课功能的系统。下面我们将...
源代码提供了书本理论知识的具体实践示例,帮助读者更直观地理解Java Web编程的核心概念和技术。这里我们将详细解析其中涉及的关键知识点。 1. **Servlet与JSP**:Servlet是Java Web应用的基础,它是一个Java类,...
本示例将介绍如何在Java Web环境中实现二维码生成,并提供了一个具体的目录结构和代码实现。 首先,我们需要了解生成二维码的核心库——`qrcode-gen`或者`zbar`等。这些库提供了将文本数据编码为图像的功能,使得...
2. **MVC设计模式**:Model-View-Controller模式在Java Web应用中广泛使用,用于分离业务逻辑、数据模型和用户界面。源代码可能会展示如何组织这些组件,如使用DispatcherServlet作为入口点,控制请求分发,并结合...
"零点起飞学Java Web随书源代码"是一个学习资源,旨在帮助初学者理解和实践Java Web开发。这本书可能详细讲解了Java Web的基础概念、核心技术以及实际应用案例,并附带了这些源代码,以便读者可以亲手运行和调试。 ...