JSP与JavaBeans

简介:   JavaBeans简介   JavaBeans是一种符合一定标准的普通java类,需要满足下面几点:   1 类是public   2 属性私有   3 空的public构造方法   4 通过getter setter操作属性   JSP有很多的标签,比较常用的就是与javaBean相关的标.

  JavaBeans简介

  JavaBeans是一种符合一定标准的普通java类,需要满足下面几点:

  1 类是public

  2 属性私有

  3 空的public构造方法

  4 通过getter setter操作属性

  JSP有很多的标签,比较常用的就是与javaBean相关的标签:

  <jsp:useBean>设置javaBean

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

  <jsp:getProperty> 获取javaBean属性值

  设置javaBean 要满足下面的语法:

<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>

  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>

  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>
本文转自博客园xingoo的博客,原文链接:JSP与JavaBeans,如需转载请自行联系原博主。
相关文章
JSP JavaBeans
一、什么是javabean 1、Javabeans就是符合某种特定规范Java类。使用Javabeans的好处是 解决代码的重复编写,减少代码冗余,功能区分明确,提高代码的维护性。 2、设计原则四点:公有类,属性私有,包含无参的共有构造方法,getter和setter方法封装属性 示例: 在JSP中使用JavaBean有两种方法: 1。
|
2月前
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
2月前
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
2月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
17 0
|
4月前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
87 12
|
4月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
84 10
|
4月前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
53 9
|
4月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
【6月更文挑战第23天】Java Web开发中,Servlet和JSP是构建动态Web应用的基础。Servlet处理逻辑,JSP专注展示。示例展示了Servlet如何通过`request.setAttribute`传递数据给JSP渲染。JSP自定义标签提升页面功能,如创建`WelcomeTag`显示欢迎消息。Servlet过滤器,如`CacheControlFilter`,用于预处理数据或调整响应头。这些集成和扩展技术增强了应用效率、安全性和可维护性,是Java服务器端开发的关键。
54 7
|
4月前
|
前端开发 安全 Java
Java服务器端开发实战:利用Servlet和JSP构建动态网站
【6月更文挑战第23天】**Servlet和JSP在Java Web开发中扮演关键角色。Servlet处理业务逻辑,管理会话,JSP则结合HTML生成动态页面。两者协同工作,形成动态网站的核心。通过Servlet的doGet()方法响应请求,JSP利用嵌入式Java代码创建动态内容。实战中,Servlet处理数据后转发给JSP展示,共同构建高效、稳定的网站。虽然新技术涌现,Servlet与JSP仍为Java Web开发的基石,提供灵活且成熟的解决方案。**
64 8
|
4月前
|
缓存 负载均衡 安全
Servlet与JSP在Java Web应用中的性能调优策略
【6月更文挑战第23天】在Java Web中,Servlet和JSP调优至关重要,以应对高并发和复杂业务带来的性能挑战。优化包括Servlet复用、线程安全、数据库连接池,以及JSP的编译优化、使用JSTL、页面缓存和静态内容分离。全局优化涉及负载均衡、异步处理和缓存策略。通过这些实践,开发者能提升应用响应速度和吞吐量,确保高负载下的稳定运行。
60 7