Sun公司针对web开发提供了两种模式
Model1: jsp+javabean 只适合小型应用
做一个简单的网页计算器
Model2: servlet+jsp+javabean mvc
一、jsp+javabean设计模式(只适用于小型应用)
这个是sun公司针对web开发的一种模式,只适用于小型的应用,这里简单的介绍一下,以后开发的时候用的不多,经常用MVC设计模式,但是这个知识点还是要知道的,
写一个web版的网页计算器,来掌握这块的知识吧:
此处的重点是:如果从javabean中取出数据。大家要注意一下
1.jsp显示页面
复制代码
<%@page import="cn.itcast.calculator.domain.Calculator"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>web计算器</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body style="text-align: center;">
<%-- 实例化bean --%>
<jsp:useBean id="calculator" class="cn.itcast.calculator.domain.Calculator"></jsp:useBean>
<%-- 获得请求参数为属性赋值 --%>
<jsp:setProperty property="*" name="calculator"/>
<%-- 计算 --%>
<%
Calculator bean = (Calculator) pageContext.getAttribute("calculator");
bean.calculate();
%>
<form action="" method="post">
<table border="1" width="500px">
<caption>简单计算器</caption>
<tr>
<td>第一个数</td>
<td>
<input type="text" name="firstNumber" />
</td>
</tr>
<tr>
<td>第二个数</td>
<td>
<input type="text" name="secondNumber" />
</td>
</tr>
<tr>
<td>运算符</td>
<td>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value=""></option>
<option value="/">/</option>
</select>
</td>
</tr>
<tr>
<td>
<input type="submit" value="计算" />
</td>
<td>
运算结果为:<jsp:getProperty property="result" name="calculator"/>
</td>
</tr>
</table>
</form>
</body>
</html>
复制代码
2.写一个Calculator的javabean
复制代码
package cn.itcast.calculator.domain;
public class Calculator {
private double firstNumber;
private double secondNumber;
private char operator;
private double result;
public double getFirstNumber() {
return firstNumber;
}
public void setFirstNumber(double firstNumber) {
this.firstNumber = firstNumber;
}
public double getSecondNumber() {
return secondNumber;
}
public void setSecondNumber(double secondNumber) {
this.secondNumber = secondNumber;
}
public char getOperator() {
return operator;
}
public void setOperator(char operator) {
this.operator = operator;
}
public double getResult() {
return result;
}
public void setResult(double result) {
this.result = result;
}
// 计算
public void calculate() {
switch(this.operator) {
case '+' :
this.result = this.firstNumber + this.secondNumber;
break;
case '-' :
this.result = this.firstNumber - this.secondNumber;
break;
case '*' :
this.result = this.firstNumber * this.secondNumber;
break;
case '/' : {
if(this.secondNumber==0) {
int i = 1/0;
}
this.result = this.firstNumber / this.secondNumber;
break;
}
}
}
}
复制代码
二、MVC设计模式
1)MVC web开发中的一种设计模式
m:model
v:view
c:controller
servlet+jsp+javabean mvc
使用MVC时需要注意的是:要严格做MVC设计模式的话,就必须要用请求转发,把jsp页面要藏在WEB-INF里面。
要使用请求转发做数据,请求重定向不行,因为如果用请求重定向的话,假如用户收藏到收藏夹里面,那么再打开就访问不到了。
结论:用户要访问必须先访问servlet,坚决杜绝用户访问show.jsp的显示页面,放在webroot下面太暴露,我们经常把它放到web-inf里面