1.<jsp:useBean>
Person.java
package zh.bean.demo; public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } }
访问路径:http://localhost:8080/Javaweb01/jsp/useBean.jsp
2.<jsp:setProperty>
(1)方式一
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="zh.bean.demo.Person"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="person" class="zh.bean.demo.Person" scope="page"></jsp:useBean> <!-- 访问路径中参数名为name的值才会赋值给person对象 例如:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh--> <jsp:setProperty name="person" property="name"/> <% person = (Person)pageContext.getAttribute("person"); out.print(person); %> </body> </html>
访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh
访问路径为:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh&age=19,也只有参数名为name的值才会赋值给person对象。
(2)方式二
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="zh.bean.demo.Person"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="person" class="zh.bean.demo.Person" scope="page"></jsp:useBean> <!--访问路径中与person对象属性同名的参数值才会赋值给person对象 --> <jsp:setProperty name="person" property="*"/> <% person = (Person)pageContext.getAttribute("person"); out.print(person); %> </body> </html>
访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh&age=19
访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh&age=19&sex=man
(3)方式三
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="zh.bean.demo.Person"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="person" class="zh.bean.demo.Person" scope="page"></jsp:useBean> <!--将访问路径中指定的参数值赋给person对象 --> <jsp:setProperty name="person" property="name" param="username"/> <% person = (Person)pageContext.getAttribute("person"); out.print(person); %> </body> </html>
访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?username=hao&name=huan。由于指定参数的原因,即使访问路径中存在name参数,也不把它赋给person的name属性,而是把username值赋给person的name属性。
(4)方式四
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="zh.bean.demo.Person"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="person" class="zh.bean.demo.Person" scope="page"></jsp:useBean> <!--使用value的值给person对象的属性赋值,此时忽略访问路径中的所有参数 --> <jsp:setProperty name="person" property="name" value="xxdty"/> <% person = (Person)pageContext.getAttribute("person"); out.print(person); %> </body> </html>
访问路径:http://localhost:8080/Javaweb01/jsp/setProperty.jsp?name=zh&name=22。
3.<jsp:getProperty>
User.java
package zh.bean.demo; public class User { private String name; private String gender; private String education; private String email; public User() { } public User(String name, String gender, String education, String email) { super(); this.name = name; this.gender = gender; this.education = education; this.email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getEducation() { return education; } public void setEducation(String education) { this.education = education; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "User [name=" + name + ", gender=" + gender + ", education=" + education + ", email=" + email + "]"; } }
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>Insert title here</title> </head> <body> <form action="${pageContext.request.contextPath}/jsp/user.jsp" method="post"> 姓名:<input type="text" name="name"></br> 性别:<input type="radio" name="gender" value="man" checked="checked">男 <input type="radio" name="gender" value="woman">女</br> 学历:<select name="education"> <option value="select">-请选择-</option> <option value="high_school">高中</option> <option value="Undergraduate">大学本科</option> <option value="master">硕士</option> </select></br> <!-- 【注意】:表单里的mail和User类的属性email不同 --> 邮箱:<input type="text" name="mail"></br> <input type="submit" value="提交"> </form> </body> </html>
<%@ 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>Insert title here</title> </head> <body> <!-- 创建user --> <jsp:useBean id="user" class="zh.bean.demo.User" scope="page"></jsp:useBean> <!-- 属性赋值 --> <jsp:setProperty property="*" name="user"/><!-- 与属性名同名的参数自动赋值给相应的属性 --> <jsp:setProperty property="email" param="mail" name="user"/><!-- 使用param为email属性赋值 --> <!-- 输出属性值 --> 姓名:<jsp:getProperty property="name" name="user"/></br> 性别:<jsp:getProperty property="gender" name="user"/></br> 学历:<jsp:getProperty property="education" name="user"/></br> 邮箱:<jsp:getProperty property="email" name="user"/> </body> </html>
访问路径:http://localhost:8080/Javaweb01/jsp/login.jsp
user.jsp显示结果: