使用jsp+javabean完成用户登陆功能
User.java
package com.po;
public class User implements java.io.Serializable {
private String username;
private String password;
public User() {
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
UserDao.java
package com.dao; import com.po.User; // 用户的业务逻辑类
public class UserDao {
public static boolean userLogin(User user) {
if (user.getUsername().equals("admin") && user.getPassword().equals("admin")) {
return true;
} else {
return false;
}
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>welcome</title>
</head>
<body>
<form action="checking.jsp" method="get">
<input type="text" name="username" value="" placeholder="username">
<input type="password" name="password" value="" placeholder="password">
<%-- JavaBean的属性要与input标签的name保持一致,这样才能通过jsp:setProperty自动设置所创建对象的属性 --%>
<input type="submit"/>
</form>
JSESSIONID=<%=request.getSession().getId()%>
</body>
</html>
checking.jsp
<%@ page import="com.dao.UserDao" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>waiting</title>
</head>
<body>
<jsp:useBean id="user" class="com.po.User" scope="page"/>
<%-- 如果使用其它更大的作用域,会发现只要成功登陆一次,之后即使密码错误也能成功登陆 --%>
<jsp:setProperty name="user" property="*"/>
<%-- 请求重定是客户端行为,不会携带上一次请求的信息 --%>
<%-- 请求分派是服务端行为,请求的信息会一直传递下去 --%>
<%
if (UserDao.userLogin(user)) {
request.getRequestDispatcher("LoginSuccess.jsp").forward(request, response);
} else {
response.sendRedirect("LoginFailure.jsp");
}
%>
</body>
</html>
LoginFailure.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
登陆失败<br>
</body>
</html>
LoginSuccess.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
登陆成功<br>
</body>
</html>
【一些问题】
1、无法避免URL重写。。。---------> 改成 POST 即可

2、通过URL绕开登陆界面直接登陆。。。

【添加的小功能】

package com.status; import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import java.util.Stack; public class Online implements HttpSessionListener{
private static Stack<String> online = new Stack<>(); public static Stack<String> getOnline() {
return online;
} @Override
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
online.push(httpSessionEvent.toString());
} @Override
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
online.pop();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list> <session-config>
<session-timeout>1</session-timeout>
</session-config> <listener>
<listener-class>
com.status.Online
</listener-class>
</listener>
</web-app>
<%@ page import="com.status.Online" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
登陆成功<br>
<hr>
在线用户:<br>
<%
int i = 0;
for (String user: Online.getOnline()) {
out.print(++i + "、" + user + "<br>");
}
%>
</body>
</html>
事实上并不需要真正登陆,只要访问服务器下面的任何页面就算“在线”了。。。(因为这些行为都会导致JVM创建session)
使用jsp+javabean完成用户登陆功能的更多相关文章
- jsp应用-实现用户登陆功能
项目结构 1.login.jsp 这个没什么好说的,把表单提交到校验页面进行校验 2.首先获取request域中user,password,然后进行校验,校验成功把信息存入session域,然后转发到 ...
- 使用Struts框架,实现用户登陆功能
前言:本篇文章是本人这周学习的一个小结,在自我总结的同时,希望也能够给其他同学带来一点帮助.本文主要知识是参照书本上的知识点以及网上其他博客文章,在上机操练后的所得,具体源码主要来自http://bl ...
- JavaBean实现用户登陆
本文简单讲述使用javabean实现用户登录,包括用户登录,注册和退出等. 系统结构图 2.数据库表 create table P_USER ( id VARCHAR2(50) not n ...
- 用java实现一个简单的单用户登陆功能的思路
引用 所谓“单用户单账户登录”是指:在同一系统中,一个用户名不能在两个地方同时登录. 我们参照 QQ 实现效果:当某账号在 A 处登录后,在未退出的情况下,如果再到 B 处登录,那么,系统会挤下 A ...
- struts2+Hibernate实现用户登陆功能
实现的功能,在登陆页面输入Username和PassWord后,将username和password通过Hibernate匹对数据库是否含有一样的username和password,若有则登陆进去,若 ...
- PHP会话(Session)实现用户登陆功能 转自#落人间#
对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用. 由于 Session 是以文本文件形式存储在 ...
- 小峰servlet/jsp(3)登陆功能实现
一.User模型: User.java: package com.java1234.model; public class User { private int id; private String ...
- PHP会话(Session)实现用户登陆功能
对比起 Cookie,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用. 由于 Session 是以文本文件形式存储在 ...
- jsp的session完成登陆功能
login.jsp: <%@ page language="java" import="java.util.*" contentType="te ...
随机推荐
- Eclipse中关于JRE System Library、Web App Libraries的疑惑
当我们在Eclipse中建立java的web工程时,会产生JRE System Library和Referenced Libraries,Web App Libraries不生成,下面会 简要说明一下 ...
- python之filter()函数
filter()函数是python内置的一个高阶函数. filter()函数接受一个函数f 和一个list,这个函数f的作用是对每个元素进行判断,返回True或False,filter()根据判断结果 ...
- 嵌入式开发之davinci--- 8168 总的roi 编码
http://bbs.61dsp.com/forum.php?mod=viewthread&tid=767
- SQL Server 日期格式化输出
转自:http://hi.baidu.com/%BC%D1%C0%D6%B1%C8%BA%A3/blog/item/fdaf6c9525adfa0f7af480ec.html T-SQL Script ...
- 【BZOJ4403】序列统计 Lucas定理
[BZOJ4403]序列统计 Description 给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量.输出答案对10^6+3取模的结果. Input 输入第 ...
- 巨蟒python全栈开发linux之centos3
1.作业讲解 (1)递归创建文件夹/tmp/oldboy/python/{alex,wusir,nvshen,xiaofeng} 下面中的路径没有必要换,在哪里创建都行,根目录下或者tmp目录下或者其 ...
- POJ 2485 Highways【最小生成树最大权——简单模板】
链接: http://poj.org/problem?id=2485 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...
- explain the past and guide the future 好的代码的标准:解释过去,指引未来;
好的代码的标准:解释过去,指引未来: Design philosophies | Django documentation | Django https://docs.djangoproject.co ...
- do not use numbers as enumeration values
w 字段类型设置错误 有限元的判断,勿用枚举行. MySQL :: MySQL 5.7 Reference Manual :: 12.4.4 The ENUM Typehttps://dev.mysq ...
- <mvc:view-controller path=""/>标签的作用
<mvc:view-controller path=""/>标签的作用 对应WEB-INF目录下面的JSP页面,我们知道是不能直接使用URL访问到.需要通过转发的方式, ...