JSP userBean setProperty直接从request中获取参数:
form表单Jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page isELIgnored="true"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>008index</title> </head> <body> <form action="index015.jsp" method="post"> <input type="text" name="userName"> <input type="submit" value="submitUserName"> </form> <form action="index015.jsp" method="post"> <input type="text" name="name"> <input type="submit" value="submitName"> </form> <form action="index015.jsp" method="post"> <input type="text" name="name"> <input type="text" name="age"> <input type="submit" value="submitNameAge"> </form> </body> </html>
获取表单参数JSP:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page isELIgnored="true"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>008index</title> </head> <body> <p> <jsp:useBean id="person" class="com.stono.servlet.bean.Person"> <jsp:setProperty name="person" property="name" param="userName1"></jsp:setProperty> </jsp:useBean> Name is <jsp:getProperty property="name" name="person"/> <pre> 此处生成的servlet java文件为: org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person"), "name", request.getParameter("userName1"), request, "userName1", false); </pre> </p> <p> <jsp:useBean id="person2" class="com.stono.servlet.bean.Person"> <jsp:setProperty name="person2" property="name" ></jsp:setProperty> </jsp:useBean> Name is <jsp:getProperty property="name" name="person2"/> <pre> 此处生成的servlet java文件为: org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person2"), "name", request.getParameter("name"), request, "name", false); </pre> </p> <p> <jsp:useBean id="person3" class="com.stono.servlet.bean.Person"> <jsp:setProperty name="person3" property="*" ></jsp:setProperty> </jsp:useBean> Name is <jsp:getProperty property="name" name="person3"/> Age is <jsp:getProperty property="age" name="person3"/> <pre> 此处生成的servlet java文件为: org.apache.jasper.runtime.JspRuntimeLibrary.introspect(_jspx_page_context.findAttribute("person3"), request); </pre> </p> </body> </html>
获取表单参数JSP的servlet:
/* * Generated by the Jasper component of Apache Tomcat * Version: Apache Tomcat/7.0.35 * Generated at: 2015-10-26 00:15:33 UTC * Note: The last modified time of this file was set to * the last modified time of the source file after * generation to assist with modification tracking. */ package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import java.util.*; public final class index015_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { private static final javax.servlet.jsp.JspFactory _jspxFactory = javax.servlet.jsp.JspFactory.getDefaultFactory(); private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants; private javax.el.ExpressionFactory _el_expressionfactory; private org.apache.tomcat.InstanceManager _jsp_instancemanager; public java.util.Map<java.lang.String,java.lang.Long> getDependants() { return _jspx_dependants; } public void _jspInit() { _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig()); } public void _jspDestroy() { } public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException { final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; final javax.servlet.ServletContext application; final javax.servlet.ServletConfig config; javax.servlet.jsp.JspWriter out = null; final java.lang.Object page = this; javax.servlet.jsp.JspWriter _jspx_out = null; javax.servlet.jsp.PageContext _jspx_page_context = null; try { response.setContentType("text/html;charset=UTF-8"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; out.write(" "); out.write(" "); String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; out.write(" "); out.write("<!DOCTYPE html> "); out.write("<html> "); out.write("<head> "); out.write("<meta charset="UTF-8"> "); out.write("<title>008index</title> "); out.write("</head> "); out.write("<body> "); out.write(" <p> "); out.write(" "); com.stono.servlet.bean.Person person = null; person = (com.stono.servlet.bean.Person) _jspx_page_context.getAttribute("person", javax.servlet.jsp.PageContext.PAGE_SCOPE); if (person == null){ person = new com.stono.servlet.bean.Person(); _jspx_page_context.setAttribute("person", person, javax.servlet.jsp.PageContext.PAGE_SCOPE); out.write(" "); out.write(" "); org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person"), "name", request.getParameter("userName1"), request, "userName1", false); out.write(" "); out.write(" "); } out.write(" "); out.write(" Name is "); out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((com.stono.servlet.bean.Person)_jspx_page_context.findAttribute("person")).getName()))); out.write(" "); out.write(" </p> "); out.write(" <p> "); out.write(" "); com.stono.servlet.bean.Person person2 = null; person2 = (com.stono.servlet.bean.Person) _jspx_page_context.getAttribute("person2", javax.servlet.jsp.PageContext.PAGE_SCOPE); if (person2 == null){ person2 = new com.stono.servlet.bean.Person(); _jspx_page_context.setAttribute("person2", person2, javax.servlet.jsp.PageContext.PAGE_SCOPE); out.write(" "); out.write(" "); org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person2"), "name", request.getParameter("name"), request, "name", false); out.write(" "); out.write(" "); } out.write(" "); out.write(" Name is "); out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((com.stono.servlet.bean.Person)_jspx_page_context.findAttribute("person2")).getName()))); out.write(" "); out.write(" </p> "); out.write(" <p> "); out.write(" "); com.stono.servlet.bean.Person person3 = null; person3 = (com.stono.servlet.bean.Person) _jspx_page_context.getAttribute("person3", javax.servlet.jsp.PageContext.PAGE_SCOPE); if (person3 == null){ person3 = new com.stono.servlet.bean.Person(); _jspx_page_context.setAttribute("person3", person3, javax.servlet.jsp.PageContext.PAGE_SCOPE); out.write(" "); out.write(" "); org.apache.jasper.runtime.JspRuntimeLibrary.introspect(_jspx_page_context.findAttribute("person3"), request); out.write(" "); out.write(" "); } out.write(" "); out.write(" Name is "); out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((com.stono.servlet.bean.Person)_jspx_page_context.findAttribute("person3")).getName()))); out.write(" "); out.write(" Age is "); out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((com.stono.servlet.bean.Person)_jspx_page_context.findAttribute("person3")).getAge()))); out.write(" "); out.write(" </p> "); out.write(" "); out.write("</body> "); out.write("</html> "); } catch (java.lang.Throwable t) { if (!(t instanceof javax.servlet.jsp.SkipPageException)){ out = _jspx_out; if (out != null && out.getBufferSize() != 0) try { out.clearBuffer(); } catch (java.io.IOException e) {} if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); else throw new ServletException(t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } } }
POJO:
package com.stono.servlet.bean; public class Person { // 对外的属性名称还是name, private String name2; private Integer age; public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name2; } public void setName(String name) { this.name2 = name; } }