主要介绍主流的java web编程技术、设计模式和框架,以及如何利用Eclipese开发Web应用程序。

要点:1、Java Web编程的主要组件技术;

2、MVC设计模式;

3、用Eclipse构建一个基于MVC模式的Java Web的应用程序。

目的:掌握如何用Eclipse构建一个基于MVC模式的Java WEB的应用程序。

一、java web 编程的主要组件技术

Html、jsp、Servlet、Javabean、Jdbc、Xml、Tomcat、MySQL

1.1 MVC设计模式

今天,我们见到的绝大部分应用,都是基于B/S(浏览器/服务器)架构的,其中的服务器就是Web服务器。可见,Web应用是目前广泛使用的应用模式。

Web程序开发方法的发展:

JSP的Model 1

JSP的Model 2

MVC

1  Model 1和Model 2

对于Java的动态Web编程技术而言,则经历了Model 1和Model 2时代。

Model 1: Model 1就是JSP大行其道的时代,在Model 1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。

Model 2: Model 2下JSP不再承担控制器的责任,它仅仅是表现层角色,仅仅用于将结果呈现给用户,JSP页面的请求与Servlet(控制器)交互,而Servlet负责与后台的JavaBean通信。

在Model 2模式下,模型(Model)由JavaBean 充当,视图(View)由JSP页面充当,而控制器(Controller)则由Servlet充当。

2  Model 1和Model 2的比较

对于非常小型的Web站点,如果后期的更新、维护工作不是特别大,可以使用Model 1的模式来开发应用,而不是使用Model 2的模式。

虽然Model 2提供了更好的可扩展性及可维护性,但增加了前期开发成本。从某种程度上讲,Model 2为了降低系统后期维护的复杂度,却导致前期开发的更高复杂度。

3  MVC思想

MVC并不是Java语言所特有的设计思想,也并不是Web应用所特有的思想,它是所有面向对象程序设计语言都应该遵守的规范。

MVC思想将一个应用分成三个基本部分:Model(模型)、View(视图)和Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。

MVC: M(model)是指数据模型,

V(View)是指用户界面,

C(Control)则是控制器。

使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器3者之间的关系和各自的主要功能。

MVC的组成部分

视图(View)代表用户交互界面,对于Web应用来说就是HTML界面。

模型(Model):就是业务流程/状态的处理以及业务规则的制定。

控制(Controller):可以理解为一个分发器,他来决定选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求,控制层并不做任何的数据处理。

MVC带来的好处:

MVC从根本上强制性的将它们分开,最大程度上实现了程序代码与网页的分离;数据和业务规则从表示层分开,所以可以最大化的重用代码。

4  常用的MVC框架

Struts:包括struts1和struts2两个。

JSF: JSF是一个标准 ,目前,JSF是作为JEE 5.0的一个组成部分,与JEE 5.0一起发布

JSF的行为方法在POJO中实现,JSF的Managed Bean无需继承任何特别的类。因此,无需在表单和模型对象之间实现多余的控制器层。JSF中没有控制器对象,控制器行为通过模型对象实现。

JSF的事件框架可以细化到表单中每个字段。JSF依然是基于JSP/Servlet的,仍然是JSP/Servlet架构,因而学习曲线相对简单

二、 用Eclipse构建一个基于MVC模式的Java Web应用程序

按照MVC设计模式,利用JSP、Servlet及JavaBean构建一个简单的登录系统。

(1)在Eclipse中创建一个项目 First

File—》New—》Dynamic Web Project

项目名称填写First  然后单击下一步

在最后一个页面 选中Generate web.xml deployment descriptor

(2)新建JSP

选中First下的WebContent 鼠标右键 New-》JSP File 新建名称为 index.jsp

单击下一步 直接finish

在body里添加源码

<body>
<form action="LoginServlet" method="post">
用户名: <input type="text" name="username" size="15" >
<br><br>
密&nbsp; 码:&nbsp; <input type="password" name="password" size="15" >
<br><br>
<input type="submit" name="submit" value="登录"><br>
</form>
</body>

(3)新建javabean

选中项目First 单击右键 New—》Class 输入Name:User

单击下一步 直接完成,修改代码如下

public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} }

(4)新建servlet
选中项目First 单击右键 New—》Servlet 输入Class Name:LoginServlet

单击下一步 直接完成

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
User u=new User(); String xm=""; String ps="";
xm=request.getParameter("username");
ps=request.getParameter("password");
u.setUsername(xm);
u.setPassword(ps);
HttpSession s=request.getSession(true);
s.setAttribute("username",u.getUsername());
response.sendRedirect("main.jsp"); }

(5)新建main.jsp

选中First下的WebContent 鼠标右键 New-》JSP File 新建名称为main.jsp

单击下一步 直接finish

在body里添加源码

<body>
<h1>
<%=session.getAttribute("username") %>,你成功登录,20秒后自动进入主页面!
</h1> </body>

(6)运行
选中index.jsp右键 Run As—>Run On Server

javabean+servlet+jsp程序_个人辛苦探索的更多相关文章

  1. Javabean+servlet+JSP(html)实例应用

    大家都知道Javabean+servlet+JSP是最简单的MVC模式.的确,在一个小型的项目中,这个模式完全够用. 它优雅并且简洁.加上jQueryui的完美展示效果,让这个模式看起来非常合适.当然 ...

  2. javabean+servlet+jsp实现分页

    前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视) 这里用基础的三层架构+servlet+jsp实现,思路很简单,把所有分 ...

  3. 课程信息管理系统(javabean + Servlet + jsp)

    此项目做的事一个课程管理系统,需要通过web做一个可以实现课程的增删改查的功能. 需要用到数据库,Servlet和jsp等(第一次使用Servlet和数据库连接,所以代码都比较低级,页面也比较粗糙,还 ...

  4. JavaBean+servlet+jsp——>对数据进行增删改查

    1.开始页面(查询数据) <%@page import="com.zdsofe.work.Student"%> <%@page import="java ...

  5. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  6. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  7. Struts与jsp+javabean+servlet区别

    采用Struts框架技术和直接使用jsp+javabean技术开发各有什么优势?各自的缺点又是什么? 在Javaweb开发领域存在2种开发模式, 模式一,jsp+javabean 模式二,jsp+ja ...

  8. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  9. JSP+JavaBean+Servlet技术(MVC模型)

    一,Servlet开发用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种 ...

随机推荐

  1. ThinkPHP函数详解:D方法

    从本篇开始,我们会陆续给大家详细说明下框架内置函数的用法. D方法 D方法应该是用的比较多的方法了,用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持 ...

  2. tar命令的详解

    tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与文件夹 ....參数:-c :建立一个压缩文件的參数指令(create 的意思):-x :解开一个压缩文件的參数指 ...

  3. 阿里云ONS而微软Azure Service Bus体系结构和功能比较

    阿里云ONS而微软Azure Service bus体系结构和功能比较 版权所有所有,转载请注明出处http://blog.csdn.net/yangzhenping.谢谢! 阿里云的开放消息服务: ...

  4. Java 加密 MD5

    版权声明:本文为博主原创文章,未经博主允许不得转载. [md5] md5是一种哈希算法,哈希算法是啥? ... 特点是不能解密. [代码] package com.uikoo9.util.encryp ...

  5. 使用ThinkPHP框架高速开发站点(多图)

    使用ThinkPHP框架高速搭建站点 这一周一直忙于做实验室的站点,基本功能算是完毕了.比較有收获的是大概了解了ThinkPHP框架.写一些东西留作纪念吧.假设对于相同是Web方面新手的你有一丝丝帮助 ...

  6. Cookie中用户登录信息的提示

    public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpSe ...

  7. Thumb

    这个控件,真不好介绍,MSDN上也是草草几句,反正就是可以让用户拖动的玩意儿,但是,你会发现,当你在该控件上拖动时,它没有反响,也就是说这个东西默认不做任何操作的,它是赖在那里什么都不干,除非你去踢上 ...

  8. MySQL约束

    MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息: 常用5种约束: not null: 非空约束,指定某列不为空 uni ...

  9. 20160331javaweb之JSP 标签技术

    jsp的标签技术:在jsp页面中最好不要出现java代码,这时我们可以使用标签技术将java代码替换成标签来表示 1.jsp标签:sun原生提供的标签直接在jsp页面中就可以使用 <jsp:in ...

  10. ARC和MRC实现单例模式

    代码如下,可直接拷贝到头文件中 #define singleton_h(name) +(instancetype)shared##name # if __has_feature(objc_arc) / ...