Jsp中Servlet+JavaBean的mvc实例详解

 

    MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中,MVC是分层的思想的体现,但是区别于三层设计模式(区别以后再和大家分享)。

  

 

   MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。

mvc逻辑图

 


 

例子

1.开发环境:MyEclipse 8.0 服务器使用其内置的MyEclipse Tomcat 6
2.新建一个web project,取名为login。在其WebRoot目录下新建一个login.html,这个页面可以看做mvc中的view(视图),指的也就是用户界面,mvc将其分离出来可以使网页美工师更加专注于页面的美化,程序员专注于后台程序的设计。login.html主要代码如下,很简单主要做了一个传统登录的页面。

<form action=”loginServlet” method=”post”>
<div>
Name <input type=”text” name=”name”/><br/>
Password <input type=”text” name=”pas”/><br/>
<input type=”submit” value=”Login”/>
<input type=”hidden” value=”login” name=”typeId”/>
</div>
</form>

3.在src目录下新建modle.Java,包名称为login。这个文件可以看做mvc中的modle(模型),模型表示企业数据和业务规则。在MVC的三个部件中模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。在这里我们不牵涉数据库部分,只是简单完成验证功能,当用户输入Name为admin,Password为1234时即认为登录成功。代码如下:

/**
* 2010-4-19
* model.java
* author:Xiangzi
*/
package login;

public class model {

private String name=null;
private String pas=null;

public void setName(String name)
{
this.name=name;
}

public String getName() {
return name;
}

public void setPas(String pas)
{
this.pas=pas;
}

public String getPas() {
return pas;
}

public boolean login()
{
if ((name.trim().equals(“admin”))&&(pas.trim().equals(“1234″))) {
return true;
}
else {
return false;
}
}
}

4.建立servlet文件。步骤:Menu/File-New-Web-Servlet,包名称为login,名称为loginServlet。Servlet是mvc里面的c(控制器),控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器(例如:servlet)本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。在这里我们修改loginServlet.java文件里面的doPost方法,doPost内代码如下:

response.setContentType(“text/html;charset=GB2312″);//设置响应的MIME类型。
java.io.PrintWriter out = response.getWriter();

String type=request.getParameter(“typeId”);
if (type.trim().equals(“login”)) {
String name=request.getParameter(“name”);//获取视图里的name
String pas=request.getParameter(“pas”);//获取视图里的password
model newModel=new model();//调用模型
newModel.setName(name);
newModel.setPas(pas);
if(newModel.login())
{
out.print(“script Lanuage=’<a href=”http://lib.csdn.net/base/18″ class=’replace_word’ title=”JavaScript知识库” target=’_blank’ style=’color:#df3434; font-weight:bold;’>JavaScript</a>’>window.alert(‘登录成功!’)</script>”);
}
else {
out.print(“script Lanuage=’JavaScript’>window.alert(‘登录失败!’)</script>”);
}
}

5.配置web.xml文件.主要代码如下:

<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>loginServlet</servlet-name>
<servlet-class>login.loginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>

6.在浏览器内输入地址就可以看到结果。可以看到使用Jsp+Servlet+JavaBean开发Web Application是很简单的.

时间: 2024-11-05 14:51:50

Jsp中Servlet+JavaBean的mvc实例详解的相关文章

Android 中Lambda表达式的使用实例详解

Android 中Lambda表达式的使用实例详解 Java8 中着实引入了一些非常有特色的功能,如Lambda表达式.streamAPI.接口默认实现等等.Lambda表达式在 Android 中最低兼容到 Android2.3 系统,兼容性还是不错的,Lambda表达式本质上是一种匿名方法,它既没有方法名,也没有访问修饰符和返回值类型,使用它编写的代码将更加简洁易读. 1.Lambda表达式的基本写法 如果想要在 Android 项目中使用 Lambda表达式 或者 Java8 的其他新特性

PHP laravel中的多对多关系实例详解

数据表之间是纵横交叉.相互关联的,laravel的一对一,一对多比较好理解,官网介绍滴很详细了,在此我就不赘述啦,重点我记下多对多的关系 一种常见的关联关系是多对多,即表A的某条记录通过中间表C与表B的多条记录关联,反之亦然.比如一个用户有多种角色,反之一个角色对应多个用户. 为了测试该关联关系,我们沿用官网的用户角色示例: 需要三张数据表:users.roles 和 role_user,role_user 表按照关联模型名的字母顺序命名(这里role_user是中间表),并且包含 user_i

JAVA中的final关键字用法实例详解_java

本文实例讲述了JAVA中的final关键字用法.分享给大家供大家参考,具体如下: 根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是"这是无法改变的."不想改变的理由有两种:一种是效率,另一种是设计.由于两个原因相差很远,所以关键子final可能被误用. 接下来介绍一下使用到final的三中情况:数据,方法,类 final数据 许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的.有时数据的恒定不变是很有用的,例如: 1. 一个编译时恒定不变的常量 2.

JAVA中static方法的用法实例详解_java

本文实例讲述了JAVA中static方法的用法.分享给大家供大家参考,具体如下: static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享.只要这个类被加载,Java虚拟机就能根据类名在运行时数据区或者方法区内找到他们.因此,static对象可以在它的任何对象创建之前访

Android GZip的使用-开发中网络请求的压缩实例详解_Android

Android  GZip: gzip是GNUzip的缩写,它是一个GNU自由软件的文件压缩程序. HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术.一般服务器中都安装有这个功能模块的,服务器端不需做改动. 当浏览器支持gzip 格式的时候, 服务器端会传输gzip格式的数据. 从Http 技术细节上讲,就是 http request 头中 有 "Accept-Encoding", "gzip" ,response 中就有返回头Content-En

Java组件javabean用户登录实例详解_java

本文简单讲述使用javabean实现用户登录,包括用户登录,注册和退出等. 1.关于javabean JavaBean 是一种JAVA语言写成的可重用组件.为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器.JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取.众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 的属性. 2.系统架构2.1登录用例图 2.2页面流程图 2.3系统架构图

C#中构造函数和析构函数用法实例详解_C#教程

本文实例讲述了C#中构造函数和析构函数用法.分享给大家供大家参考,具体如下: 构造函数与析构函数是一个类中看似较为简单的两类函数,但在实际运用过程中总会出现一些意想不到的运行错误.本文将较系统的介绍构造函数与析构函数的原理及在C#中的运用,以及在使用过程中需要注意的若干事项. 一.构造函数与析构函数的原理 作为比C更先进的语言,C#提供了更好的机制来增强程序的安全性.C#编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员的大忙.但是程序通过了编译检查并不表示错误

Android开发中的重力传感器用法实例详解

本文实例讲述了Android开发中的重力传感器用法.分享给大家供大家参考,具体如下: 重力传感器与方向传感器的开发步骤类似,只要理清了期中的x,y,z的值之后就可以根据他们的变化来进行编程了,首先来看一副图 假设当地的重力加速度值为g 当手机正面朝上的时候,z的值为q,反面朝上的时候,z的值为-g 当手机右侧面朝上的时候,x的值为g,右侧面朝上的时候,x的值为-g 当手机上侧面朝上的时候,y的值为g,右侧面朝上的时候,y的值为-g 了解了重力传感器中X,Y,Z的含义之后下面我们就开始学习如何使用

PHP中dat文件读写操作实例详解

以下是一篇关于文件基本读写操作的文章,我曾经就是看了这篇文章后学会文件基本操作的,在这里发出来与大家共享: 复制内容到剪贴板  代码如下 复制代码 $file_name = "data.dat"; // 要读取的文件的绝对路径: homedata.dat $file_pointer = fopen($file_name, "r"); // 打开文件,"r" 是一种模式,或者说我们要进行的操作方法,详见本文后面的介绍 $file_read = fr