java--jsp(Java Server Page)_3
来源:互联网 发布:软件通用解决方案 编辑:程序博客网 时间:2024/04/30 14:02
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>JSP开发的几代技术</title> </head> <body> <h2>JSP开发的几代技术</h2> <a href="jsps/login1.jsp">第一代JSP开发技术1:纯JSP技术</a><br/><br/><br/> <a href="jsps/login2.jsp">第一代JSP开发技术2(model1):JSP+EJB技术</a> <h4>第二代JSP开发技术(model2):MVC框架=JSP+JaveBean+Servlet技术</h4> <hr/> <h2>以下演示jsp中bean标记的使用</h2> 1、声明JavaBean对像-必须使用完整类名<br/> <jsp:useBean id="u" class="cn.hncu.ejb.User" scope="session"></jsp:useBean> <!-- 以上声明相当于: User u = new User(); session.setAttribute("u",u); scope的可选值为:page|request|session|application --> <% u.setName("jack"); out.println(u.getName()); %> <br/> 2、访问JavaBean的属性<br/> <jsp:getProperty property="name" name="u"/><br/> <jsp:setProperty property="age" name="u" value="23"/> <jsp:getProperty property="age" name="u"/> <h4> 使用"jsp:setProperty"标记为birthday(复杂类型)设置属性:</h4> <!--注意,如果仅仅只把User中的birthDay变量改为birth,下面的属性名不要用"birth", 因为底层是根据下面property中的取值生成对应的setter-getter方式名,再到JavaBean中调用对应方式。 < jsp:setProperty property="birth" name="u" value="2016-09-26"/>是错的 --> <jsp:setProperty property="birthDay" name="u" value="2016-09-26"/> <jsp:getProperty property="birthDay" name="u"/> <% out.println( u ); %> <br/> 3、通过param属性给JavaBean赋值<br/> <jsp:useBean id="u2" class="cn.hncu.ejb.User" scope="session"></jsp:useBean> <form action="jsps/a.jsp"> 姓名1:<input type="text" name="nm"/><br/> 姓名2:<input type="text" name="name"/><br/> 年龄:<input type="text" name="age"/><!-- 提供字符串到int类型的转换 --><br/> <input type="submit" value="注册"/> </form> </body></html>
使用JSP的原则
在项目的开发中(除非这个公司是个菜鸟公司),JSP只用做展示,所有的用户操作,都是从JSP页面将请求发给Servlet处理,Servet在处理完成后,再转发给其他JSP页面。这就是基本的MVC设置模式,也即Model1。
在JSP页面中,一般不会出现<% ..%>这样的java代码块。需要输出时使用jsp的自定义的标签来处理,这样JSP就更像是HTML页面了。(此技术后面会讲)。
第一代JSP开发技术1:纯JSP技术
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> <!-- 处理表单的JSP可以用单独的JSP来实现 --> <!-- <form action="login1.jsp">提交给自己处理 --> <form action="login1Serv.jsp"> Name:<input type="text" name="name" /><br/> <input type="submit" value="登录"> </form> </body></html>
登陆失败
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> <!-- 处理表单的JSP可以用单独的JSP来实现,可以写在login1.jsp页面中 --> <% request.setCharacterEncoding("utf-8"); String name = request.getParameter("name"); if(name!=null && name.startsWith("hncu")){//在这里访问后台(用普通类写或直接在这里写访问后台的代码) session.setAttribute("user", name); response.sendRedirect(request.getContextPath()+"/jsps/suc.jsp"); }else{ out.println("登录失败!"); } %> </body></html>
登陆成功
第一代JSP开发技术2(model1):JSP+EJB技术
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> <!-- 处理表单的JSP可以用单独的JSP来实现 --> <form action="login2Serv.jsp"> Name:<input type="text" name="name" /><br/> <input type="submit" value="登录"> </form> </body></html>
登陆失败
<%@page import="cn.hncu.ejb.User"%><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> <!-- 处理表单的JSP可以用单独的JSP来实现 --> <% request.setCharacterEncoding("utf-8"); //EJB = 企业级JavaBean = 包含业务逻辑的JavaBean //把用户提交的登录参数收集并封装成JavaBean String name = request.getParameter("name"); User u = new User(); u.setName(name); //调用EJB中的业务逻辑层代码 User user = u.login(); if(user!=null){//在这里访问后台(用普通类写或直接在这里写访问后台的代码) session.setAttribute("user", user); response.sendRedirect(request.getContextPath()+"/jsps/suc.jsp"); }else{ out.println("登录失败!"); } %> </body></html>
登陆成功
第二代JSP开发技术(model2):MVC框架=JSP+JaveBean+Servlet技术:http://blog.csdn.net/xanlv/article/details/52822352
jsp中bean标记的使用
JavaBean简介
JavaBean是一种可重用的软件组件。
一个JavaBean具有以下标准:
必须是一个公共的类。
一个公开的无参的构造。
getXxx和setXxx方法。
在JSP中访问JavaBean的语法:
声明JavaBean对像-必须使用完整类名
< jsp:useBean id=”u” class=”cn.hncu.ejb.User” scope=”session”>< /jsp:useBean>
注:一般情况下,我们保留< jsp:useBean/>的body部分为空,如果不为空,则只有初始化此Bean时执行,如:
< jsp:useBean id=”u” class=”cn.hncu.ejb.User” scope=”session”>
这是body部分,只会在初始化时执行一次
< /jsp:useBean>
访问JavaBean的属性
< jsp:setProperty property=”age” name=”u” value=”23”/>
< jsp:getProperty property=”age” name=”u”/>
也可以在页面上使用Java代码直接访问它的属性和其他方法。
JavaBean的范围
JavaBean的scope属性决定的Bean的范围,默认为page范围。
当声明了一个Bean并将它放到某个范畴之后,在同一个范围内再次使用< jsp:useBean../>将不再创建。而是直接给你返回已经创建过的Bean的实例。此过程可以通过查看容器翻译的源代码得知。
通过param属性给JavaBean赋值:
JavaBean可以接收用户通过参数提交的数值,并直接封装到JavaBean中。
以下JavaBean的属性全部为String类型。
以下接收用户的三个参数直接赋值:注意保持与参数指定的名相同
< jsp:setProperty property=”name” name=”u” param=”nm”/>
一次设置全部属性:
< jsp:setProperty name=”u2” property=”*”/>注意不能使用param
注意:一次设置全部的参数,其内部通过反射加以实现,所以,
在你向Bean传递参数时,必须与JavaBean的属性名高度一致。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>设置bean中的属性</title> </head> <body> <h2>演示jsp中bean标记的使用</h2> <h4> 利用请求表单上传的参数来设置bean中的属性 </h4> <jsp:setProperty property="name" name="u" param="nm"/> u:${u}<br/><br/> <h4>自动装配bean: 把表单参数名与bean中属性名一一对应地进行读参且设置属性</h4> <jsp:setProperty name="u2" property="*"/> u2:${u2} </body></html>
调用JavaBean的其他方法
在JavaBean中除了可以通过标签调用它的的属性之外,还可以直接在scriptlet直接调用它的其他方法。
这种方式比较适合较小的项目。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> </head> <body> 欢迎你,<%=session.getAttribute("user")%> <br/> <h2>以下是用户相应的操作界面</h2> <h2>以下是用户相应的操作界面</h2> </body></html>
- java--jsp(Java Server Page)_3
- JSP(Java Server Page)
- JSP-Java Server Page基础知识
- JSP基础---java server page
- Day19-JSP(Java Server Page)
- JSP(Java Server Page )
- JSP(Java Server Page)
- JSP:Java Server Page(1)
- java--jsp(Java Server Page)_1
- java--jsp(Java Server Page)_2
- java--jsp(Java Server Page)_1
- JSP(java Server Page):java动态页面
- JSP (java server page) servlet生命周期
- java jsp page指令
- JSP技术已死 ? (Java Server Page technology will die) ?
- JSP技术已死 ? (Java Server Page technology will die) ?
- JS(JavaScript) 与 JSP(Java server page) 的区别
- jsp(java server page)之模板式servlet
- python的import与from...import的不同之处
- 欢迎使用CSDN-markdown编辑器
- CSS笔记
- jQuery之easyui的入门
- Android开发学习之路--基于vitamio的视频播放器(二)
- java--jsp(Java Server Page)_3
- Android-笔记-161022
- JS语法
- Android 关于inflate
- 进程间通信总结
- C++学习日记
- cs231n-(5)神经网络-3:学习和评估
- JFinal Model判断数据库某条记录的属性字段是否包含空值
- Ctsc1997 选课