JSP小例子——以Model1的思想实现用户登录小例子(不涉及DB操作)
Model1简介
现在比较流行的就是Model1和Model2,这里介绍Model1。
在Model1模型出现前,整个Web应用的情况是:几乎全部由JSP页面组成,JSP页面接受处理客户端请求,对请求处理后直接作出响应。
这样做的弊端就是:在界面层充斥着大量的业务逻辑的代码和数据访问层的代码,Web程序的可扩展性和可维护性非常差。
JavaBean的出现可以使JSP页面中使用JavaBean封装的数据或者调用JavaBean的业务逻辑代码,这样大大提升了程序的可维护性。
Model1:
案例:使用JSP+JavaBean完成用户登录功能。
我们需要建一个名为User的用户类来表示数据库中的每一行的成员。
User.java:
package com.moonlit.obj; public class User {
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;
}
}
同时我们还需要建一个DAO类(业务逻辑类)来是的JSP层和JavaBean之间能够交互。其中包括了一个判断User账号密码是否正确的方法userLogin()。
UserDAO.java:
package com.moonlit.dao; import com.moonlit.obj.User; public class UserDAO {
public boolean userLogin(User user) {
return "admin".equals(user.getUsername()) & "admin".equals(user.getPassword());
}
}
我们使用一个login.jsp界面来模拟登陆:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>login page</title>
</head>
<body>
<form name="regForm" action="dologin.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
login.jsp主要就是提交了一个包含用户名和密码的表达提交给dologin.jsp,dologin.jsp相对于之前的代码有较大的改动。
在dologin.jsp中,我们首先需要通过<jsp:useBean>标签实例化一个User类和一个业务逻辑类(UserDAO类)。
<jsp:useBean id="user" class="com.moonlit.obj.User" scope="page" />
<jsp:useBean id="userDao" class="com.moonlit.dao.UserDAO" scope="page" />
接下来,我们就可以通过<jsp:setProperty>标签给User实例赋值了:
<jsp:setProperty name="user" property="*" />
然后我们可以通过业务逻辑类的实例的userLogin方法判断用户是否登录成功,如果登陆成功,则请求转发到login_success.jsp页面;如果登陆不成功,则登录到login_failure.jsp页面。
<%
if (userDao.userLogin(user)) {
request.getRequestDispatcher("login_success.jsp").forward(request, response);
} else {
response.sendRedirect("login_failure.jsp");
}
%>
完整的dologin.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>do login page</title>
</head>
<body>
<jsp:useBean id="user" class="com.moonlit.obj.User" scope="page" />
<jsp:useBean id="userDao" class="com.moonlit.dao.UserDAO" scope="page" />
<jsp:setProperty name="user" property="*" />
<%
if (userDao.userLogin(user)) {
request.getRequestDispatcher("login_success.jsp").forward(request, response);
} else {
response.sendRedirect("login_failure.jsp");
}
%>
</body>
</html>
dologin.jsp
登录成功效果:
登录失败效果:
JSP小例子——以Model1的思想实现用户登录小例子(不涉及DB操作)的更多相关文章
- JSP小例子——实现用户登录小例子(不涉及DB操作)
实现用户登录小例子用户名和密码都为"admin",登陆成功使用服务器内部转发到login_success.jsp页面,并且提示登陆成功的用户名.如果登陆失败则请求重定向到login ...
- 微信小程序与微信公众号同一用户登录问题
微信小程序与微信公众号同一用户登录问题 最近在做微信小程序与微信公众号登录合并的接口.整理相关资料以及个人认识的心得写了这篇文章与大家一起分享. 首先,简单说下我遇到的问题是我们的程序调用微信小程序得 ...
- JSP慕课网阶段用户登录小例子(不用数据库)
getAttribute和setAttribute一起使用,而getParameter用于取得如request传来的参数. Web是请求/响应架构的使用,而request和response就是在服务器 ...
- C#语言Winform防SQl注入做用户登录的例子
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- 基于Shiro,JWT实现微信小程序登录完整例子
小程序官方流程图如下,官方地址 : https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html ...
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- 小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和
小易邀请你玩一个数字游戏,小易给你一系列的整数.你们俩使用这些整数玩游戏.每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字. 例如: 如果{2,1,2 ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...
随机推荐
- STS(Spring Tool Suite)使用maven添加jar包
打开:http://mvnrepository.com/ 搜索:hibernate 或者:http://search.maven.org 搜索:hibernate-core 两种方式都可以添加jar包 ...
- C#获取显示器屏幕数量 控制winform显示到哪一个屏幕
获取当前系统连接的屏幕数量: Screen.AllScreens.Count();获取当前屏幕的名称:string CurrentScreenName = Screen.FromControl(thi ...
- Spring velocity 中文乱码 解决方案
主要有这么几步,在spring web 的 [sevlet-name]-servlet.xml文件中,修改为: 黑体字体为关键,其它根据你的实际情况配置: <!-- ============= ...
- TocControl控件图层无法显示问题
在窗口里的层层嵌套SplitContainer后,出现最内层SplitContainer内部TocControl控件图层无法显示问题:加载完mxd后代后加上axTOCControl1.SetBuddy ...
- poi读取excel元素
Java读取excel元素 忽略元数据末尾回到原数据开始处 pom文件设置 <dependency><groupId>org.apache.poi</groupId> ...
- webpack One CLI for webpack must be installed. These are recommended choices, delivered as separate(webpack报错)
用webpack 打包项目的时候:webpack js.js bundle.js 报错. 最近在安装好webpack后,使用时,提示 One CLI for webpack must be insta ...
- MSSQL如何访问ORACLE里的表
环境: MSSQL:2008 ORACLE DB:10.2.0.1 之前一直没有接触MSSQL,最近因需要MSSQL访问ORACLE里的表,下面是MSSQL连接ORACLE的配置过程. 1 ...
- sudo配置文件/etc/sudoers格式
sudo的配置文件 sudoers 一般在 /etc 目录下. 不过不管 sudoers 文件在哪儿,sudo 都提供了一个编辑该文件的命令:visudo 来对该文件进行修改. 讲解sudo配置文件/ ...
- mysql多实例安装详解
首先说明一个场景:我的电脑是ubuntu系统,之前apt-get自动安装过mysql.这也是出现错误最多的原因之一. 安装过程,其中充斥着各种错误: 6.mkdir mysql 7.groupadd ...
- Openresty支持HTTP2
1. 下载openresty-1.13.6.1.tar.gz和openssl-1.0.2l.tar.gz,并解压 下载对应的软件版本,创建openresty_http2安装路径 2. 安装openre ...