您的位置:首页 > Web前端 > JavaScript

JSP学习第二天

2016-10-15 13:49 232 查看
JSP学习第二天PPT演示友情链接

JSP开发的几代技术:

纯代码演示—文字讲解学习请看另一篇博客详解

(1)第一代JSP开发技术1:纯JSP技术

主页面(index.jsp)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>

<body>
<h2>JSP开发的几代技术</h2>
<a href="<%=path %>/jsps/Login1.jsp">第一代JSP开发技术1:纯JSP技术</a><br/><br/><br/>
<a href="<%=path %>/jsps/Login2.jsp">第一代JSP开发技术2(model1):JSP+EJB技术</a><br/><br/><br/>
<a href="jsps/login3.jsp">第二代JSP开发技术(model2):MVC框架=JSP+JaveBean+Servlet技术</a><br/>

<h2>以下演示jsp中bean标记的使用</h2>
1.申明JavaBean对象必须使用完整类名
<jsp:useBean id="u" class="cn.hncu.ejb.User" scope="session" ></jsp:useBean>
<!--
上一句相当于 User u = new User();
-->
<%
u.setName("成吉思汗");
out.println(u.getName()+"<br/>");
%>
2.设置JavaBean属性<br/>
<jsp:setProperty property="age" name="u" value="21" />
3.访问JavaBean属性<br/>
<jsp:getProperty property="name" name="u"/>
<jsp:getProperty property="age" name="u"/><br/>
使用"jsp:setProperty"标记为birthday(复杂类型)设置属性:<br/>
<!--注意,下面的属性名不要用"birth",因为底层是根据下面property中的取值生成对应的setter-getter方式名,再到JavaBean中调用对应方式。  -->
<!-- 设置属性值 -->
<jsp:setProperty property="birthday" name="u" value="2016-10-15"/>
<!-- 拿到属性值 -->
<jsp:getProperty property="birthday" name="u"/>
<%out.println(u); %><br/>
4.通过Parameter属性给JavaBean赋值
<jsp:useBean id="u2" class="cn.hncu.ejb.User" scope="session" ></jsp:useBean>
<form action="<%=path %>/jsps/Ope.jsp" method="post" >
姓名:<input type="text" name="name" /><br/>
Name:<input type="text" name="nm" /><br/>
性别:<input type="radio" value="1" name="sex" checked="checked" />男
<input type="radio" value="0" name="sex" />女<br/>
年龄:<input type="text" name="age" /><br/>
<input type="submit" value="登录">
</form>
</body>
</html>


登录页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JSP登录页面</title>
</head>

<body>
<!-- 登录页面 -->
<form action="<%=path %>/jsps/LoginServlet.jsp" method="post">
姓名:<input type="text" name="name" /><br/>
<input type="submit" value="登录"/>
</form>
</body>
</html>


验证页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JSP验证页面</title>
</head>

<body>
<h2>登录校验页面</h2>
<%
request.setCharacterEncoding("utf-8");//设置编码格式
response.setContentType("text/html;charset=utf-8");
//接收来自前台页面的参数进行解析
String name = request.getParameter("name");
//在这里我简化了校验步骤---只要是以"hncu"开头的我就认为登录成功
if(name!=null && !name.trim().equals("")){
if(name.startsWith("hncu")){
//out.println("恭喜您!"+name+",登录成功....接下来请进行操作吧!");
//重定向转到另外的页面时传参有两种:1)直接在路径后面添加需要传的参数--这种不建议使用,灵活性不高
//                       2)通过session容器----这种必须掌握
//用过重定向来转到另外的操作页面
session.setAttribute("user", name);
response.sendRedirect(path+"/jsps/Suc.jsp");
}else{
out.println("很遗憾!登录失败,请重新核对用户名再输入......");
}
}

%>
</body>
</html>


效果图:











(2)第一代JSP开发技术2(model1):JSP+EJB技术–(EJB:企业级JavaBean技术)

登录页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JSP--JavaBean技术登录页面</title>
</head&g
e3dc
t;

<body>
<form action="<%=path%>/jsps/Login2Servlet.jsp" method="post">
姓名:<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"%>
<%
String path = request.getContextPath();
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'Login2Servlet.jsp' starting page</title>
</head>

<body>
<!-- 处理表单的JSP可以用单独的JSP来实现 -->
<%
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");

String name = request.getParameter("name");
User u = new User();
u.setName(name);

//调用业务逻辑层
User user = u.login();
//根据逻辑层的返回结果导向不同的结果页面
if(user!=null){
session.setAttribute("user", user);
response.sendRedirect(path+"/jsps/Suc.jsp");//转向成功的页面
}else{
out.println("很遗憾!登录失败......");
}
%>
</body>
</html>


登陆成功后的页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'Suc.jsp' starting page</title>
</head>

<body>
<h1>欢迎你!</h1>
<%=session.getAttribute("user")%><br/>
<h3>进行其他操作的页面----在这里你可以选择已下操作(当然这里我只是形式一下)</h3>
<ul>我的购物车</ul>
<ul>我的消费记录</ul>
<ul>代付款商品</ul>
<ul>已购买的商品</ul>
<ul>所有的消费记录</ul>
</body>
</html>


效果图:



其他图见上面的第一版本一样的效果!

JavaBean(值对象)

package cn.hncu.ejb;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class User {
private String name;
private String sex;
private Integer age;//以后开发,基本数据类型尽量用包装类来声明---为以后使用框架做铺垫
private Date birthday;//出生年月

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}

//使用jsp:setProperty和jsp:getProperty两个标记(处理的数组都是字符串)时,JavaBean中复杂类型的处理---进行字符串和复杂类型的格式转换
public String getBirthday() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(this.birthday);
}
public void setBirthday(String strBirth) {
//进行复杂类型和字符串类型的转换
Date d = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
d = sdf.parse(strBirth);//解析之后返回一个Date形的值
} catch (ParseException e) {
System.out.println("解析时异常!");
e.printStackTrace();
}
this.birthday = d;
}

@Override
public String toString() {
return "User [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}

public User login(){
User u = new User();
if(this.getName().startsWith("hncu")){
u.setSex("男");
u.setAge(54);
}else{
u = null;
}
return u;
}
}


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'Ope.jsp' starting page</title>
</head>

<body>
<%
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
%>
<!-- 利用请求表单上传的参数来设置bean中的属性  -->
<jsp:setProperty property="name" name="u" param="nm" />
<jsp:setProperty property="sex" name="u" value="性别修改"/>
${u }<br/><br/>

<!-- 自动装配bean: 把表单参数名与bean中属性名一一对应地进行读参且设置属性 -->
<jsp:setProperty name="u2" property="*" />
${u2}
</body>
</html>


效果图:







(3)(有待学习)第二代JSP开发技术(model2):MVC框架=JSP+JaveBean+Servlet技术
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp