Model1简介
Java Web应用程序的开发总体上来说有两个模型就是Model1和Model2。Model1模型出现前,整个Web应用
的情况:几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。这样的弊端显露无
疑:在界面层充斥着大量的业务逻辑的代码和数据访问层的代码,Web程序的可扩展性和可维护性特别差。
JavaBean的出现可以使JSP页面中使用JavaBean封装的数据或者调用JavaBean的业务逻辑代码,这样大大提高
了程序的可维护性。
Model1图示:
在Model1中,由Jsp页面去调用Javabean。
Javabean既可以封装数据同时也可以封装业务逻辑。
Javabean一般把属性设计为私有,使用setter和getter访问属性。
Javabean就是符合某种设计规范的Java类。
项目案例
使用JSP+JavaBean完成用户登录功能。相关的代码提供出来,还有一部分的JS代码和图片没有提供。
整个项目的目录结构:
JavaBean实体类Users:
<span style="font-size:18px;">package com.entity;
import java.io.UnsupportedEncodingException;
/**
* 用户实体类
* @author Administrator
* @date 2016年7月11日
*/
public class Users {
//私有属性
private String username;
private String password;
//无参构造器
public Users(){
}
//通过重构得到setter和getter方法
public String getUsername() {
return username;
}
public void setUsername(String username) throws UnsupportedEncodingException {
this.username = toUTF8(username);
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
private String toUTF8(String str) throws UnsupportedEncodingException {
return new String(str.getBytes("iso-8859-1"),"UTF-8");
}
}</span>
JavaBean业务逻辑类UsersDAO:
<span style="font-size:18px;">package com.dao;
import com.entity.Users;
/**
* 用户的业务逻辑类
* @author Administrator
* @date 2016年7月11日
*/
public class UsersDAO {
//用户登录方法
public boolean usersLogin(Users u){
if("admin".equals(u.getUsername())&&"123456".equals(u.getPassword())){
return true;
}else{
return false;
}
}
}</span>
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">
<!-- Page title -->
<title>登录界面</title>
<!-- End of Page title -->
<!-- Libraries -->
<link type="text/css" href="css/login.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/easyTooltip.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script>
<!-- End of Libraries -->
</head>
<body>
<div id="container">
<div class="logo">
<a href="#"><img alt="" src="images/logo.png"></a>
</div>
<div id="box">
<form action="dologin.jsp" method="post">
<p class="main">
<label>用户名:</label>
<input type="text" name="username" value="" />
<label>密码:</label>
<input type="password" name="password" value="" />
</p>
<p class="space">
<input type="submit" value="登录" class="login" style="cursor: pointer;">
</p>
</form>
</div>
</div>
</body>
</html>
login.css源代码:
<span style="font-size:18px;">@import 'css3.css';
* {
margin:0; padding:0;
}
body {
position:relative;
height:100%;
background:#fff url('../images/loginbg.png') left top repeat-x;
font-family:Tahoma, Arial, sans-serif;
}
img {
border:0;
}
#container {
width:960px;
margin:0 auto;
}
#container .logo {
width:230px;
margin:240px auto 0;
}
#container #box {
clear:both;
float:none;
width:70%;
margin:50px auto 0;
}
p.main label {
float:left;
padding:5px;
display:inline;
margin-left:40px;
font-size:13px;
color:#000;
margin-right:10px;
}
#box p {
clear:both;
float:none;
width:100%;
}
p.main INPUT {
background:url('../images/input.png') 0 0 repeat-x;
border:1px solid #d3d3d3;
color:#555;
padding:5px;
float:left;
width:200px;
}
input.login {
float:right;
padding:3px 10px 3px 10px;
color:#fff;
font-size:12px;
text-decoration:none;
border:1px solid #555;
background:url('../images/rep1.png') 50% 50% repeat-x;
display:inline;
margin-right:5px;
}
span {
font-size:13px;
color:#666;
}
.space {
padding-top:15px;
}
span input {
margin-left:125px;
margin-right:5px;
border:1px solid #111;
background:#444;
color:#fff;
}</span>
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>dologin页面</title> </head> <body> <jsp:useBean id="loginUser" class="com.entity.Users" scope="page"></jsp:useBean> <jsp:useBean id="userDAO " class="com.dao.UsersDAO" scope="page"></jsp:useBean> <jsp:setProperty property="*" name="loginUser"/> <% //防止中文乱码 request.setCharacterEncoding("utf-8"); //如果用户和密码都等于admin,则登录成功 if(userDAO.usersLogin(loginUser)){ //将用户名封装到session对象中 session.setAttribute("loginUser", loginUser.getUsername()); //验证正确转发到成功页面 request.getRequestDispatcher("login_success.jsp").forward(request, response); } else{ //请求重定向到失败页面 response.sendRedirect("login_failure.jsp"); } %> </body> </html>
login_success.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"> <!-- Page title --> <title>login_success页面</title> <!-- End of Page title --> <!-- Libraries --> <link type="text/css" href="css/login.css" rel="stylesheet" /> <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="js/easyTooltip.js"></script> <script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script> <!-- End of Libraries --> </head> <body> <div id="container"> <div class="logo"> <a href="#"><img src="images/logo.png" alt="" /></a> </div> <div id="box"> <% String loginUser = ""; //防止用户名为空 if(session.getAttribute("loginUser")!=null){ loginUser = session.getAttribute("loginUser").toString(); } %> 欢迎您<font color="red"><%=loginUser%></font>,登录成功! </div> </div> </body> </html>
login_failure.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"> <!-- Page title --> <title>login_failure页面</title> <!-- End of Page title --> <!-- Libraries --> <link type="text/css" href="css/login.css" rel="stylesheet" /> <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="js/easyTooltip.js"></script> <script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script> <!-- End of Libraries --> </head> <body> <div id="container"> <div class="logo"> <a href="#"><img src="images/logo.png" alt="" /></a> </div> <div id="box"> 登录失败!请检查用户或者密码!<br> <a href="login.jsp">返回登录</a> </div> </div> </body> </html>
运行结果:
登录界面:
输入admin和123456:
输入admin和123: