JSP与JDBC

1. page="list.jsp"/>

相当于

<%
    request.getRequestDispatcher("list.jsp").forward(request, response);
%>
2、<jsp:useBean class="anni.ContactDao" id="contactDao" scope="application"/>

anni.ContactDao是一个封装了数据库操作的bean

相当于

<%
    anni.ContactDao contactDao = (anni.ContactDao) application.getAttribute("contactDao");
    if (contactDao == null) {
        contactDao = new anni.ContactDao();
        application.setAttribute("contactDao", contactDao);
    }
%>
在上面的代码中只是为了创建一个对象的实例,为什么不用new呢,那要比这样写的代码少许多,也更容易理解,为什么我们还要执意使用jsp:useBean?

注意一下标签中的scope="application",application正是我们介绍过的四个作用域之一

我们先从application中获得contactDao对应的对象,然后判断得到的是否为null,如果为null说明此变量还没有初始化,这时就要使用new创建一个对象实例并放入application中。最后我们得到的就是这个contactDao实例。

3、create.jsp包含表单提交的信息

save.jsp表单提交信息处理

Contact是对应的实体bean名称里面装有对应属性的get,set方法

class="anni.ContactDao" id="contactDao" scope="application"/>
class="anni.Contact" id="contact"/>
"contact" property="*"/>
<%
    contactDao.save(contact);
    response.sendRedirect("list.jsp");
%>

相当于

先从application中取出contactDao,再创建一个contact。在创建contact的时候没有指定scope,默认情况下只会使用new创建这个局部变量,不会对任何作用域产生影响。jsp:setProperty是新事物了,它的作用就是为某个javabean设置数据。之前我们已经使用jsp:useBean创建了一个 contact实例,现在我们通过name="contact"设置这个实例的数据,property可以指定一个属性,比如 property="username",也可以使用星号(*)批量设置所有可以找到的属性,这个jsp动作实际上与下面的代码等价。

contact.setUsername(request.getParameter("username"));
contact.setSex(request.getParameter("sex"));
contact.setEmail(request.getParameter("email"));
contact.setQq(request.getParameter("qq"));
contact.setDescn(request.getParameter("descn")); 
contactDao.save(contact);
response.sendRedirect("list.jsp");

引入链接:
http://www.family168.com/tutorial/jsp/html/jsp-ch-05.html


 


 

 

 

你可能感兴趣的:(JSP学习篇)