2017.11.6 JavaWeb-----第七章 JavaWeb常用开发模式与案例
JavaWeb-----第七章 JavaWeb常用开发模式与案例
(1)单纯的JSP页面开发模式
*通过在JSP中的脚本标记,直接在JSP页面中实现各种功能。称为“单纯的JSP页面编程模式”。它就是只用JSP设计Web应用程序。
*存在的问题与缺点
大部分的代码与HTML代码混淆在一起,会给程序的维护和调试带来很多的困难。
(2)JSP页面开发模式案例-----求和运算
例题1:设计WEb程序计算1+2+3+4+5.....100的和值,并在网页上显示。
<%@ page contentType="text/html" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>计算1到100之间的整数和值的JSP程序</title>
</head>
<body bgcolor="00ff00">
<font size="5">这是一个单纯的JSP页面编程示例</font><br>
<%
int i;
int sum=0;
for(i=0;i<=100;i++){
sum+=i;
}
%>
1到100的和值为:<%=sum %>
</body>
</html>
例题2:设计Web程序,计算任意两个整数的累加和值,并在网页上显示结果。
1.设计任意提交的两个整数的JSP页面
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>提交任意两个整数的页面</title>
</head>
<body>
<h3>按下列格式要求,输入两个整数:</h3><br>
<form action="ch07_2_show.jsp" method="post">
开始数据:<input type="text" name="shuju1"><br><br>
结束数据:<input type="text" name="shuju2"><br><br>
<input type="submit" value="提交">
<input type =reset value="取消">
</form>
</body>
</html>
2.设计获取两个数值并计算,在后显示结果的JSP页面
//show.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>计算任意两整数之间的累加和值的JSP程序</title>
</head>
<body>
<%!int sum=0;
int x=0;
int y=0;
%>
<%String xx=request.getParameter("shuju1");
String yy=request.getParameter("shuju2");
x=Integer.parseInt(xx);
y=Integer.parseInt(yy);
while(x<=y){
sum+=x;
x++;
}
%>
<p><%=xx %>加到<%=yy %>的和值是:<%=sum %></p>
<P>现在时间是:<%=new Date() %></P>
</body>
</html>
(3)JSP+JDBC开发案例-----实现基于数据库的登陆验证
例题1:利用JSP+JDBC技术相结合,实现基于数据库的登陆验证,要求:一个用户的信息有用户名和密码,用户信息存放在数据库中。
1.设计提交登录信息的页面
//登陆页面
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>用户登录提交页面</title>
</head>
<body>
<form action="ch07_3_yanzheng.jsp" method="post">
用户名:<input type="text" name="username"><br><br>
密码:<input type="password" name="pass"><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
2.设计需要获取两个登录信息的值,并连接数据库,实现验证的JSP页面
//验证界面
<%@ page language="java" import="java.sql.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆验证界面</title>
</head>
<body>
<%
try{
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
String driverName="com.mysql.jdbc.Driver";
String dbName="user";
String url1="jdbc:mysql:localhost:3306/"+dbName;
String url2="?user=root&password=123456";
String url3="&userUnicode=true&characterEncoding=GB2312";
String url=url1+url2+url3;
Class.forName(driverName);
conn=DriverManager.getConnection(url);
request.setCharacterEncoding("GB2312");
String name=request.getParameter("username");
String pw=request.getParameter("pass");
String sql="select *from user_b where (uname=? and password=?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,name);
pstmt.setString(2,pw);
rs=pstmt.executeQuery();
if(rs.next()){
%><%=name%>:登陆成功!<br><%
//}
else{ %>
<%=name %>:登陆失败!<br><% }
}catch(Exception e){%>
出现异常错误! <%=e.getMessage() %>
<%}finally{
if(rs!=null){rs.close();}
if(pstmt!=null){pstmt.close();}
if(conn!=null){conn.close();}
}%>
</body>
</html>
(4)JSP+JavaBean开发模式
@在开发JavaWeb程序时,将JSP和JavaBean结合形成JSP+JavaBean设计模式,也叫JSP Model-1模式
例题:利用JSP+JavaBean实现求任意两个整数之间的累加和值,并显示输出。
1.先建立一个JavaBean Add2 类
package beans;
public class Add2 {
private int a;
private int b;
public int getA(){return a;}
public void setA(int a){this.a=a;}
public int getB(){return b;}
public void setB(int b){this.b=b;}
public int sum(){
int c;
int s=0;
if(a>b)
{
c=a;
a=b;
b=c;
}
int x=a;
while(x<=b){s+=x;++x;}
return s;
}
}
2.设计提交任意两个整数的JSP的页面
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>提交任意两个整数的页面</title>
</head>
<body>
<h3>按下列格式要求,输入两个整数:</h3><br>
<form action="ch07_4_show.jsp" method="post">
开始数据:<input type="text" name="a"><br><br>
结束数据:<input type="text" name="b"><br><br>
<input type="submit" value="提交">
<input type =reset value="取消">
</form>
</body>
</html>
3.从提交中获取数据,计算结果显示页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>利用JavaBean+JSP求两数和</title>
</head>
<body>
<jsp:useBean id="c" class="beans.Add2" scope="session"/>
<jsp:setProperty name="c" property="*"/>
<p><%=c.getA() %>加到<%=c.getB() %>=<%=c.sum() %></p>
<p>现在的时间是:<%=new Date() %></p>
</body>
</html>
2017.11.6 JavaWeb-----第七章 JavaWeb常用开发模式与案例的更多相关文章
- javaweb基础(21)_两种开发模式
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...
- 2017.2.20 activiti实战--第二章--搭建Activiti开发环境及简单示例(二)简单示例
学习资料:<Activiti实战> 第一章 搭建Activiti开发环境及简单示例 2.5 简单流程图及其执行过程 (1)leave.bpmn 后缀名必须是bpmn.安装了activiti ...
- 第七章 企业项目开发--本地缓存guava cache
1.在实际项目开发中,会使用到很多缓存技术,而且数据库的设计一般也会依赖于有缓存的情况下设计. 常用的缓存分两种:本地缓存和分布式缓存. 常用的本地缓存是guava cache,本章主要介绍guava ...
- 2017.2.20 activiti实战--第二章--搭建Activiti开发环境及简单示例(一)搭建开发环境
学习资料:<Activiti实战> 第一章 认识Activiti 2.1 下载Activiti 官网:http://activiti.org/download.html 进入下载页后,可以 ...
- 第七章 Odoo 12开发之记录集 - 使用模型数据
在上一篇文章中,我们概览了模型创建以及如何从模型中载入和导出数据.现在我们已有数据模型和相关数据,是时候学习如何编程与其进行交互 了.模型的 ORM(Object-Relational Mapping ...
- JavaWEB 常用开发模式MVC+三层结构
MVC开发模式: M: Model -- JavaBean C: Controler -- Servlet V: View --- JSP 不会在word里面画画,所以就直接截了 老 ...
- python第七章:常用模块--小白博客
yagmail模块 python标准库中发送电子邮件的模块比较复杂,因此,有许多开原的库提供了更加易用的接口来发送电子邮件,其中yagmail是一个使用比较广泛的开原项目,yagmail底层依然使用了 ...
- 2017.11.12 web中JDBC 方式访问数据库的技术
JavaWeb------ 第四章 JDBC数据库访问技术 在JavaWeb应用程序中数据库访问是通过Java数据库连接(JavaDateBase Connectivity简称JDBC)数据库的链接一 ...
- 第九章 Odoo 12开发之外部 API - 集成第三方系统
Odoo 服务器端带有外部 API,可供网页客户端和其它客户端应用使用.本文中我们将学习如何在我们的客户端程序中使用 Odoo 的外部 API.为避免引入大家所不熟悉的编程语言,此处我们将使用基于 P ...
随机推荐
- import与export
expoer default 输出的是一个对象 export 输出的是对象的一个元素
- ES6多行字符串+模板字符串
多行字符串 最新的ES6标准新增了一种多行字符串的表示方法,用反引号 ` ... ` 表示: 'use strict'; // 如果浏览器支持模板字符串,将会替换字符串内部的变量: var name ...
- 移动测试之appium+python 入门代码(三)
在做app自动化过程中会踩很多坑,咱们都是用中文的app,所以首先要解决中文输入的问题!本篇通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入问题. 一.定位搜索 1.打开淘宝点击搜索按钮,进入搜索页 ...
- 2019.03.20 读书笔记 as is 以及重写隐式/显示
强转.as is 的用法 强制转换类型有两种:子类转基类,重写隐式(implicit )\显示(explicit) 转换操作符 class myclass { private int value; p ...
- maya2017无法安装卸载激活失败
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- Unity Resources.Load
GameObject bulletPrefab; void Start() { bulletPrefab = Resources.Load("bulletPrefab") a ...
- [转]JavaScriptSerializer中日期序列化
本文转自:http://www.cnblogs.com/songxingzhu/p/3816309.html 直接进入主题: class Student { public int age { get; ...
- pat1101. Quick Sort (25)
1101. Quick Sort (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CAO, Peng There is a ...
- Spring boot-(2) Spring Boot使用
1. 构建系统 (1) 使用maven构建 1) 从Starter Parent继承 在项目中配置继承spring-boot-starter-parent,可以进行如下设置: <!-- Inhe ...
- C++中string erase函数的使用
erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator p ...