当前位置:   article > 正文

互联网软件开发——实验二 JSP 语法的应用(用户登录)_使用jsp实现用户登录,用户名为admin

使用jsp实现用户登录,用户名为admin

实验名称: 实验二 JSP 语法的应用

一、实验目的

1、掌握常见表单元素的应用和参数值的获取方法;
2、掌握 JSP 的脚本标识;
3、掌握 JSP 主要动作标识。

二、实验内容

1、模拟实现用户登录过程。用户在一个登录页面 login.jsp(如图 2-1)输入登
录信息并单击“提交”后,提交给 doLogin.jsp 处理,用以验证用户输入的用户
名、口令与系统的相应信息是否一致,登录成功则转发到文件 ok.jsp,该文件
显示输入的用户名和口令,如图 2-2 所示,失败则转发到文件 error.jsp,显示
“用户名或口令不正确!”。
在这里插入图片描述

要求
(1) 假定用户名和口令分别为 admin 和 123。创建一个 JavaBean–User 类,
该类含有两个属性 username(用户名),password(口令),给每个属性增加相应
的 get 和 set 方法。
 使用jsp:useBean动作标识创建 User 类对象;
 使用jsp:setProperty来将用户在 login.jsp 中填写的值赋给对象;
 使用jsp:getProperty在 ok.jsp 页面中输出结果;
 使用jsp:forward实现页面的转发。
(2) 考虑用 request.getParameter()方法获取参数的值,实现(1)的要求。
(3) 假定用户名和口令保存在一个属性文件
src/cn/edu/ahpu/user.properties 中,要求实现(1)的功能。
其中,属性文件内容如下:
username=admin,user1,user2
password=123,pass1,pass2
读取属性文件的测试代码如下:
在这里插入图片描述

2、实现用户注册页面 register.jsp(如图 2-3),输入登录信息并单击“注册”
后跳转到页面 doRegister.jsp(如图 2-4),显示“用户名”、“口令”、“性别” 和“爱好”信息。
在这里插入图片描述

提示:得到爱好兴趣多选项

String hobbies[]=request.getParameterValues("hobby"); 
  • 1

三、实验步骤

代码详见工程文件

1.1
login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<html>
 <head>
	<style> 
	input[type=button], input[type=submit], input[type=reset] {
	  background-color: #4CAF50;
	  border: none;
	  color: white;
	  padding: 4px 16px;
	  text-decoration: none;
	  margin: 4px 2px;
	  cursor: pointer;
	}
	input[type=text] ,input[type=password]{
	  width: 15%;
	  padding: 8px 8px;
	  margin: 4px 0;
	  box-sizing: border-box;
	  border: none;
	  background-color: #C0C0C0;
	  color: white;
	}
	
</style>
  </head>
  <body>
  <form action="doLogin.jsp" method="post">
  <%/*
 	form表单,以post方式提交给doLogin.jsp
 	
    action表示提交总结数据到某个url(文件网页等)。
    action="#",“#” 是锚标签,指提交数据到本页
     
	method中,get显示参数,post不显示参数。
	
	get会在网页栏显示信息,数据是公开的,所以相对来说不安全;
	另外,地址栏可输入的字符是有限的,所以get能传输的信息相对较少。
 */%>
    用户名:<input type="text" name="username"><br>
   <%/*表单提交就是靠着name来识别的,name是可以重复的,多数用于后台获取前台数据,value起到了默认值的作用  */%>
 口&nbsp; &nbsp;令:<input type="password" name="password"><br>
    <input type="submit" value="登录">
     <input type="reset" value="重置">
  </form>
  </body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

doLogin.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>
  <head>
    

  </head>
  
  <body>
   <jsp:useBean id="user" class="lumen.User" scope="session"></jsp:useBean>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
 <%/*
   	id表示定义的JavaBean的唯一标识,class表示定义的JavaBean的类。
   	定义了一个JavaBean就可以为其属性赋值了
   	创建lumen.User类的实例user,作用域为session
   	*/ %>
   	 <%/*
   	1、application作用域
	当指定JavaBean的作用域为application表示在整个项目的生命周期中都有效,服务器重启后失效。
	
	2、session作用域
	session作用域表示在当前会话周期内有效,只要仍在当前的会话生命周期内,就可以获取到相应的属性值。
	
	3、request作用域
	request作用域表示在当前用户的请求内有效,如果超过了当前请求,则获取不到相应的JavaBean的值。
	
	4、page作用域
	page作用域表示只在当前的页面有效,所以不管是请求重定向还是服务器内部转发,
	当发生页面跳转时都不能获取到JavaBean的属性值信息。page作用域是jsp:useBean的默认作用域。
   	*/ %>
   <jsp:setProperty property="*" name="user"/>
   <%/*
   <jsp:setProperty>用来设置已经实例化的Bean对象的属性   	
   1.<jps:setProperty name = “JavaBean实例名”  property = ”*”/>.
   	*,所有属性类型,在Bean中属性的名字,类型必须和request对象中的参数名称相匹配
   	
   2.<jsp:setProperty name = “JavaBean实例名” property = “JavaBean属性名“ />
   request对象中的一个参数值来指定Bean中的一个属性值
   
   3.“ value = “BeanValue”  value用来指定Bean属性的值
   
   4.param = “request对象中的参数名” param指定用哪个请求参数作为Bean属性的值
   */ %>
   
    <%
    if(user.getUsername().equals("admin") && "123".equals(user.getPassword()))
    	request.getRequestDispatcher("ok.jsp").forward(request, response);
    else
    	request.getRequestDispatcher("error.jsp").forward(request, response);
    %>
    <%/*
      请求转发: 跳转中不需要携带数据,推荐使用response.sendRedirect()方法

      重新定向: 跳转中需要携带数据,推荐使用request.getRequestDispatcher(),共享一个request
    
	forward 是服务器端的跳转,从一个java程序转到了另一个java程序,所以此时request会被作为参数传递过去。 
	sendRedirect 这个是客户端的跳转,服务器端会发送一个跳转的代码和url给浏览器,浏览器会重新请求指定的URL,
	此时,request已经无效了。当然,此时session还是生效的。
   
   	equals与==的区别
   	==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同 
	==是指对内存地址进行比较 , equals()是对字符串的内容进行比较
	==指引用是否相同, equals()指的是值是否相同
   	*/ %>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
     <br>
  </body>
</html>
  • 1
  • 2
  • 3

error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>
  <head>
  </head>
  
  <body>
   用户名或口令不正确! <br>
  </body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

ok.jsp

<%@ page language="java" import="java.util.*" contentType="text/html"
	pageEncoding="UTF-8"%>


<html>
  <head>
  </head>
  
  <body>
   <jsp:useBean id="user" class="lumen.User" scope="session"></jsp:useBean>
   <jsp:getProperty property="username" name="user"/>
   <jsp:getProperty property="password" name="user"/>
   <%/*
 	  获取指定Javabean对象的属性值。
 	  name:JavaBean的对象名,用于指定从哪个JavaBean中获取属性值

	property:JavaBean中的属性名,用于指定获取JavaBean中的哪个属性值
   	只有三个地方的user(实例化对象)名称,属性一致时才可以获取到属性的值
   */ %> 
     <br>
  </body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

src/lumen/User.java

package lumen;

public class User {
	String username;
	
	String password;
	
	public User(){}//空构造方法
	
	public User(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}
	


	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;
	}
	
	
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

运行结果
在这里插入图片描述

1.2
login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
	<style> 
	input[type=button], input[type=submit], input[type=reset] {
	  background-color: #4CAF50;
	  border: none;
	  color: white;
	  padding: 4px 16px;
	  text-decoration: none;
	  margin: 4px 2px;
	  cursor: pointer;
	}
	input[type=text] ,input[type=password]{
	  width: 15%;
	  padding: 8px 8px;
	  margin: 4px 0;
	  box-sizing: border-box;
	  border: none;
	  background-color: #C0C0C0;
	  color: white;
	}
	
</style>
  </head>
  
  <body>
<form action="doLogin.jsp" method="post">
 用户名:<input type="text" name="username"><br>&nbsp;&nbsp;令:<input type="password" name="password"><br>
 <input type="submit" value="登录">
 <input type="reset" value="重置">
</form>
	
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

doLogin.jsp

<%@page import="lumen.*"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
  </head>
  
  <body>
 
	
<%
 String name=request.getParameter("username");
 String pass=request.getParameter("password");
 

/*从request中拿出名字叫userName的值,赋给了你刚才定义的变量(name)。 request是负责页面之间传递参数和数据的类,是java封装好的*/

  User user =new User(name,pass);
 //创建User的实例user并给其属性赋值name,pass
  
boolean result="admin".equals(user.getUsername()) && "123".equals(user.getPassword());
//boolean类型变量result当账号密码正确时为true

if(result){
	session.setAttribute("username", name);
	session.setAttribute("password", pass);

/*getParameter得到的都是String类型的。或者是用于读取提交的表单中的值
(http://a.jsp?id=123中的123),或者是某个表单提交过去的数据; 
getAttribute()是获取对象容器中的数据值; getAttribute()是获取sessiom的值; 
getParameter()是获取POST/GET传递的参数值; 可以是对象Object
getParameter:用于客户端重定向时,传值用,即用于在用表单或url重定向传值时接收数据用。 
getAttribute:用于服务器端重定向时,即在sevlet中使用了forward函数,
getAttribute只能收到程序用setAttribute传过来的值。 
setAttribute 是应用服务器把这个对象放在该页面所对应的一块内存中去,
当你的页面服务器重定向到另一个页面时,应用服务器会把这块内存拷贝另一个页面所对应的内存中。
这样getAttribute就能取得你所设下的值,当然这种方法可以传对象。
getParameter只是应用服务器在分析你送上来的request页面的文本时,取得你设在表单或url重定向时的值。 */
   %>	
		<jsp:forward page="ok.jsp"></jsp:forward>
   <%
	}else{
   %>
  		<jsp:forward page="error.jsp"></jsp:forward>
  		
   <%} %>	
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

ok.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
	
<html>
<head>
 <style>
   tr{
       border:2px solid #ccc;    
    }
     td{
       border:2px solid #ccc;    
    }
</style>
</head>
	<body>	
	<P style="front-size:20pt;color:blue">This is ok.jsp</P>
		<table>
			<tr>
				<td >用户名:</td>
				<td><%=session.getAttribute("username")%></td>
			</tr>
			<tr>
				<td>&nbsp;&nbsp;&nbsp;令:</td>
				<td><%=session.getAttribute("password") %></td>
			</tr>
		</table>
	</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

error.jsp界面同上,共用一个User类

运行结果

在这里插入图片描述

1.3
login.jsp界面同上,共用一个User类
doLogin.jsp

<%@page import="lumen.DBTool"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
  </head>
  
  <body>
  <%
  request.setCharacterEncoding("utf-8");
   %>
	<jsp:useBean id="user" class="lumen.User" scope="session"/>
	<jsp:setProperty property="*" name="user" />
<%
	boolean result=DBTool.login(user.getUsername(), user.getPassword());
	
//  Java使用java.util.ResourceBundle类的getBundle()方法读取Properties文件,
//   并与输入的用户名,口令对比

	if(result){
 %>	
 <jsp:forward page="ok.jsp"></jsp:forward>
 <%
 }
 else{ 
  %>
   <jsp:forward page="error.jsp"></jsp:forward>
<%} %>	
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

ok.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
	
<html>
<head>
<style>
   tr{
       border:2px solid #ccc;    
    }
     td{
       border:2px solid #ccc;    
    }
</style>
</head>
	<body>
	<jsp:useBean id="user" class="lumen.User" scope="session"/>
			<table>
			<tr>
				<td>用户名:</td>
				<td><jsp:getProperty  property="username" name="user"/></td>
			</tr>
			<tr>
				<td>&nbsp;&nbsp;&nbsp;令:</td>
				<td><jsp:getProperty property="password" name="user"/></td>
			</tr>
		</table>
	
	</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

error.jsp界面同上
src/lumen/DBTool.java
利用DBTool工具类取出账号密码

package lumen;

import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;

public class DBTool {
	public static void main(String[] args) {
		
	}
	public static List<User> getUsers(){
		List<User> users = new ArrayList<User>();
		String propertyFileName = "lumen/user";
		ResourceBundle resourceBundle = ResourceBundle.getBundle(propertyFileName);
		String[] usernames = resourceBundle.getString("username").split(",");
		String[] passwords = resourceBundle.getString("password").split(",");
		for (int i = 0; i < usernames.length; i++) {
			User user = new User(usernames[i],passwords[i]);
			users.add(user);
			System.out.println(usernames[i] + "," + passwords[i]);
		}
		return users;
	}
	
	public static boolean login(String username,String password){		
		String propertyFileName = "lumen/user";
		ResourceBundle resourceBundle = ResourceBundle.getBundle(propertyFileName);
		String[] usernames = resourceBundle.getString("username").split(",");
		String[] passwords = resourceBundle.getString("password").split(",");
		for (int i = 0; i < usernames.length; i++) 
			if(usernames[i].equals(username) && passwords[i].equals(password))
				return true;
		return false;
	}

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

src/lumen/user.properties
利用.properties文件存放账号密码
在这里插入图片描述

运行结果

在这里插入图片描述

2
register.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<html>
  <head>
	<style> 
	input[type=button], input[type=submit], input[type=reset] {
	  background-color: #4CAF50;
	  border: none;
	  color: white;
	  padding: 4px 16px;
	  text-decoration: none;
	  margin: 4px 2px;
	  cursor: pointer;
	}
	input[type=text] ,input[type=password]{
	  width: 15%;
	  padding: 8px 8px;
	  margin: 4px 0;
	  box-sizing: border-box;
	  border: none;
	  background-color: #C0C0C0;
	  color: white;
	}
	<script>
	function displayResult(){
		var x=document.getElementById("red").name;
		alert(x);
	}
	</script>
</style>
  </head>
  
  <body>
	<form action="doRegister.jsp" method="post">
		账号名:<input type="text" name="username"><br>&nbsp;&nbsp;码:<input type="password" name="password"><br>
		性别:<input name="sex" type="radio" value=""><input name="sex" type="radio" value="" checked="checked"><br>
		爱好:<input name="hobby" type="checkbox" value="体育" >体育
		<input name="hobby" type="checkbox" value="游戏" >游戏
		<input name="hobby" type="checkbox" value="网络" >网络
		<input name="hobby" type="checkbox" value="读书" >读书<br>
		<input type="reset" value="重置">
		<input type="submit" value="注册">
		
	</form>    
  </body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48

doLogin.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%request.setCharacterEncoding("utf-8");
 %>
 <head>
 <style>
   tr{
       border:2px solid #ccc;    
    }
     td{
       border:2px solid #ccc;    
    }
</style>
</head>

<jsp:useBean id="member" class="lumen.Member" scope="page">
	<jsp:setProperty property="*" name="member"/>
</jsp:useBean>

<table>
	<tr>
		<td>用户名:</td>
		<td><jsp:getProperty  property="username" name="member"/></td>
	</tr>
	<tr>
		<td>&nbsp;&nbsp;&nbsp;令:</td>
		<td><jsp:getProperty property="password" name="member"/></td>
	</tr>
	<tr>
		<td>&nbsp;&nbsp;&nbsp;别:</td>
		<td><jsp:getProperty property="sex" name="member"/></td>
	</tr>
	<tr>
		<td>&nbsp;&nbsp;&nbsp;好:</td>
		<td><%
			String []hobbies=request.getParameterValues("hobby");
			for(String hobby:hobbies)
				out.println(hobby+"  ");
			 %></td>
	</tr>
</table>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

src/lumen/Member.java

package lumen;

public class Member {
	private String username;
	private String password;
	private String sex;
	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;
	}
	
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

运行结果
在这里插入图片描述
在这里插入图片描述

实验小结

通过本节用户登录注册等jsp界面设计,我了解了jsp的各种标签的用法,也学习了一些css的样式设置,掌握了一些常见表单元素的应用和参数值的获取方法; 以及JSP 的脚本标识和JSP 主要动作标识。

思考题:

1、简述 JSP 中 include 指令标识和 include 动作标识的区别和联系。
include 指令标识,作用是将jsp文件,HTML网页文件等其他文本文件静态嵌入当前jsp网页中,静态嵌入是“先包含后处理”,语法格式为<%@ include file=“path” %>
include 动作标识:作用是将jsp文件,HTML网页文件等其他文本文件动态嵌入当前jsp网页中,动态嵌入就是“先处理后包含”语法格式为 <jsp:include page=“url” />
2、什么是 JavaBean,它有什么作用?
Javabean 就是遵循一定标准的类的一个实例,这个类就定义一系列 get 和 set 方法。
Javabean 就是为了和 jsp 页面传数据化简交互过程而产生的,可实现HTML与Java代码的分离,使JSP更易于开发和维护。业务bean用于封装业务逻辑,数据库操作等,数据bean用于封装数据。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/462371
推荐阅读
相关标签
  

闽ICP备14008679号