JSP与JavaBeans

  JavaBeans简介

  JavaBeans是一种符合必定标准的普通java类,须要知足下面几点:html

  1 类是publicjava

  2 属性私有数据库

  3 空的public构造方法服务器

  4 经过getter setter操做属性session

  JSP有不少的标签,比较经常使用的就是与javaBean相关的标签:架构

  <jsp:useBean>设置javaBeanapp

  <jsp:setProperty> 设置javabean中属性值jsp

  <jsp:getProperty> 获取javaBean属性值ide

  设置javaBean 要知足下面的语法:post

<jsp:useBean id="user" class="com.po.Users" scope="page"></jsp:useBean>

  其中id是该类的标识,至关于咱们建立的对象名称;

  class是类的全名,包括类的包名;

  scope是该javabean的使用范围,包括下面四中:

  page:仅应用于当前页面

  request:能够在reqest之间使用,好比经过转发连带传送request对象,也能够获得该属性。

  session:能够再一个会话期间使用

  application:在整个服务器启动期间均可以使用

  设置属性值 可使用下面四种方式:

<jsp:setProperty name="JavaBean name" property="*" />
    <jsp:setProperty name="JavaBean name" property="JavaBean属性名称" />
    <jsp:setProperty name="JavaBean name" property="JavaBean属性名" value="BeanValue" />手工设置 <jsp:setProperty name="JavaBean name" property="peroperty name" param="request对象中参数名" />

  样例以下:

<!-- 根据表单匹配全部的属性-->
    <jsp:setProperty property="*" name="user"/>
    
    <!-- 根据表单匹配部分的属性 -->
    <jsp:setProperty property="username" name="user"/>
    
    <!-- 与表单无关,手动设置 -->
    <jsp:setProperty property="username" name="user" value="张三"/>
     
    <!-- 经过URL传参 -->
    <jsp:setProperty name="user" property="username" param="myname"/>
    <jsp:setProperty name="user" property="password"/>

    <!-- 使用传统表达式方式 --> 用户名:<%=user.getUsername() %><br> 密码:<%=user.getPassword() %><br>
    
    <!-- 使用getProperty标签方式 --> 用户名:<jsp:getProperty property="username" name="user"/><br> 密码:<jsp:getProperty property="password" name="user"/><br>

  其中使用URL参数传送参数的时候,须要再前面的url后面,添加参数,例如:

<form name="loginForm" action="doLogin.jsp?myname=444" method="post">

  JSP与javaBeans

  有了JSP为何要使用javaBeans呢?

  由于JSP是一种java代码与html混合的语言,这样机会致使页面的表现层与行为层混合在一块儿,不利于后期的维护和调试。

  因此最开始的时候,JSP开发就是使用一大堆的JSP页面,互相跳转,很混乱,因而就有了一种新的解决方法:

  Model1:模型1,它的架构以下:

  能够看到用户是对JSP进行访问,可是JSP经过调用Javabean间接与数据库交互,分离页面表与逻辑层。

  这样就能达到一种解耦的效果。

  使用Model1模型,开发登陆界面

  业务场景跟前面同样,用户登陆login.jsp,成功后跳转到login_success.jsp,并提示登陆用户名;失败后,跳转到login_failure.jsp页面,并提示登陆跳转到登陆界面。

  只不过在跳转逻辑处理界面dologin.jsp中,不在直接进行逻辑处理,而是调用javaBean进行逻辑判断。

  dologin.jsp代码以下:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="com.po.Users" %>
<%@ page import="com.dao.UsersDao" %>

<jsp:useBean id="user" class="com.po.Users" scope="page"></jsp:useBean>
<jsp:useBean id="userdao" class="com.dao.UsersDao" scope="page"></jsp:useBean>
<jsp:setProperty name="user" property="*"/>
    
<!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>用户登陆</title>
</head>
<body>
    <h1>javaBeans</h1>
    <hr>
    <% request.setCharacterEncoding("utf-8"); if(userdao.isUser(user)){ session.setAttribute("username",user.getUsername()); request.getRequestDispatcher("login_success.jsp").forward(request,response); }else{ response.sendRedirect("login_failure.jsp"); } %>
</body>
</html>

  Users.java代码以下:

package com.po; public class Users { private String username; private String password; public Users(){ } 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; } }

  UsersDao.java代码以下

package com.dao; import com.po.Users; public class UsersDao { public boolean isUser(Users u){ if("xingoo".equals(u.getUsername()) && "123".equals(u.getPassword())){ return true; }else{ return false; } } }

  其余的代码,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>用户登陆</title>
</head>
<body>
    <h1>用户登陆</h1>
    <hr>
    <!--<form name="loginForm" action="doLogin.jsp?myname=444" method="post">  -->
    <form name="loginForm" action="doLogin.jsp" method="post">
        <table>
            <tr>
                <td>username</td>
                <td><input type="text" name="username" value=""/></td>
            </tr>
            <tr>
                <td>password</td>
                <td><input type="password" name="password" value=""/></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="submit"/></td>
            </tr>
        </table>
    </form>
</body>
</html>
View Code

  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">
<title>用户登陆</title>
</head>
<body>
    <h1>用户登陆</h1>
    <hr> 欢迎您!<%=session.getAttribute("username") %>
</body>
</html>
View Code

  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">
<title>用户登陆</title>
</head>
<body>
    <h1>用户登陆</h1>
    <hr> 登陆失败!<a href="login.jsp">返回登陆</a>
</body>
</html>
View Code
相关文章
相关标签/搜索