手记

web开发的两种设计模式

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里面

4人推荐
随时随地看视频
慕课网APP