JSP入门2
1. CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,一般应用有这四项也就足够了。 我们这里的例子是对联系人信息进行CRUD操作。
2. javabean是把一些操作集合在一起写成一个java类,想要进行什么操作直接调用这个类里的方法就行。
咱们这里使用javabean的地方有两处,一个是链接数据库并进行CRUD操作,另一个把每条数据都写 成一个类。
对于CRUD应用,有一些大家默认的命名来表示不同的操作。
1. list.jsp。读取所有信息并显示到页面上,这个是CRUD中Read(读取)。
2. create.jsp。进入添加联系信息的页面,等待用户输入信息。 save.jsp。接收用户提交的信息,添加到数据库中。 这两步对应CRUD中的Create(创建)。
3. edit.jsp。进入修改联系信息的页面,等待用户修改信息。 update.jsp。接收用户提交的信息,修改数据库中对应的信息。 这两步对应CRUD中的Update(更新)。
4. remove.jsp。删除用户选择的信息。这步对应CRUD中的Delete(删除)。
JSP页面跳转
<jsp:forward page="list.jsp"/>
初始化Bean对象
<jsp:useBean class="anni.ContactDao" id="contactDao" scope="application"/>
它会先去scope定义的作用域application中取得contactDao对应的对象,这个contactDao正是标签中定义的id,转换的对象类型则是标签中class属性的值。
我们每获得一条信息就把它放入pageContext中。之所以这样做,是为了在下面使用el表达式显示信息。
el表达式的一个特点就是必须放到作用域里才能调用,如果使用Contact contact = (Contact) list.get(i);而不放到pageContext中,后面的${contact.username}就无法找到contact了。
这里还要提及el表达式的进一步用法,${contact.username}实际上得到的是contact.getUsername()返回的结果。这里有一个默认的转换规则,假设有一个getUsername()方法,我们先要去掉开头的get,然后将get后的那个字母小写,得到的username就是与el表达式中对应的部分。
有趣的是${contact.username}仅仅与getUsername()方法对应,无论contact有没有String username这个变量。如果我们想使用${contact.nameAndSex},只要写一个public String getNameAndSex()方法返回我们想要的数据即可,不需要添加String nameAndSex;变量。
jsp:setProperty是新事物了,它的作用就是为某个javabean设置数据。
<jsp:setProperty name="contact" property="*"/>
之前我们已经使用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"));
只要它们的名称与contact中的方法对应(这次是set开头的方法了),jsp:setProperty就可以自动为它们进行赋值,转换的规则与get的方法名是类似的
点击“修改”的时候,id便附加到url后了。
<a href="edit.jsp?id=${contact.id}">修改</a>
edit.jsp中获得id的值,根据id从contactDao获得对应的联系信息contact,再将contact放到pageContext供后面的el表达式使用。
<jsp:useBean class="anni.ContactDao" id="contactDao" scope="application"/>
<%
String id = request.getParameter("id");
Contact contact = contactDao.get(Long.parseLong(id));
pageContext.setAttribute("contact", contact);
%>
JSP入门2的更多相关文章
- Jsp入门学习笔记
#Jsp入门 一.JSP基础语法 1.JSP指令: page inlcude taglib 2.JSP注释: a.html注释: <!-- abcdefghijklmn --> b.jsp ...
- JSP入门:介绍什么是JSP和Servlet(转)
转自:http://developer.51cto.com/art/200907/134506.htm JSP入门:什么是jsp? JSP(Java Server Pages)是由Sun Micros ...
- JSP入门必读
JSP基础知识:转自老师上课梳理的笔记,希望对大家有所帮助.有什么不妥当的地方还望大家批评指正. 特别适用于JSP入门的人员使用.1.JSP [1] 简介1.1 HTML HTML擅长显示一个静 ...
- 九、JSP入门(1)
JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1.2 JSP的 ...
- day11(jsp入门&Cookie&HttpSession&一次性图片校验码)
day11 JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. ...
- JSP入门之自定义标签
第二部分简单讲解:主要讲解el表达式,核心标签库.本章主要讲解:自定义标签库:404页面,505页面,错误页面配置方法 全部代码下载:链接 1.JSP自定义标签: 自定义标签是用户定义的JSP语言元素 ...
- Jsp入门实战上
前面讲了servlet入门实践现在开始介绍jsp入门实践,开发环境的搭建请参考我前面的tomcat的文章,jsp入门教程分为上下两部分,第一部分简单讲解:jsp语法的规范,以及三大编译指令,七个动作指 ...
- Cookie&&Session&&jsp入门
会话技术 会话:一次会话中包含多次请求和响应. 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Coo ...
- JSP入门
JSP简介 所谓JSP就是在网页文件中嵌入Java代码或JSP定义的一些标记.JSP是建立在Servlet上的,在执行时JSP容器会先将JSP文件转换成Servlet文件以及class 文件,然后再执 ...
- jsp 入门 cookie session
Java Server Page ==> 服务器端的动态页面资源.用来做显示的功能. JSP构成 ==> HTML 脚本代码 标签构成. JSP 原理 ==> 实际上就是 servl ...
随机推荐
- centos 7 mariadb 启动问题
安装完了 mariadb 后 有一天重启机器发现 启动不了 mariadb.service systemctl start mariadb.service //然后发现下面的问题 job for ma ...
- 获取ip地址及城市信息
大家好,今天给大家分享的是一个简单的知识获取登录用户的ip地址及城市信息,lz是一个小白,如果有哪些错误的地方 欢迎大家指出 东西很简单,直接上代码 [HttpPost] public string ...
- 原创: rsync软件服务利用ansible实现一键化部署
---恢复内容开始--- 首先创建一个脚本文件 /server/tools/peizhi.sh cat /server/tools/peizhi.sh cat >>/etc/rsyncd ...
- 通过业务系统的重构实践DDD
最近新接了一个业务系统——社区服务系统,为了快速熟悉和梳理老系统的业务逻辑和代码,同时对老系统代码做一些优化,于是打算花上一个月时间不间断地对老系统服务进行重构.同时,考虑到社区业务的复杂性,想起了之 ...
- IOS学习【VMware 12 安装 Mac OS X 10.11】-Day1
1.下载安装VMware 12 pro (32位不能安装) 虚拟机 VM12密钥 5A02H-AU243-TZJ49-GTC7K-3C61N 2.unlock206 用于VMware 12识别tac ...
- html加载和解析流程
之前查找资料了解了html的整个渲染过程,对于理解页面加载帮助还是蛮大的,下面我用visio把它画成流程图,便于直观理解 好吧,居然要150字才能发布............ 浏览器渲染过程 浏览器渲 ...
- JAVA基础第五组(5道题)
21.[程序21] 题目:求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘. 思路:用递归的思想. package com.niit.homework1; import ...
- Beta阶段冲刺日志集合贴
[Beta]Daily Scrum Meeting--Day1:http://www.cnblogs.com/RunningGuys/p/6890738.html [Beta]Daily Scrum ...
- 201521123037 《Java程序设计》第3周学习总结
1. 本周学习总结 链接:http://naotu.baidu.com/file/026a646bb4031d4238accc69cdf53272 2. 书面作业 1. 代码阅读 public cla ...
- 201521123042《Java程序》第二周总结
1. 本周学习总结 了解枚举类型的使用方法. 学会使用ArrayList替换数组,并且学会运用相关函数,例如: strList.contains(str)(判断数组中是否包含字符串str,包含则返回t ...