一,Servlet开发
用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求。服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应。浏览器收到回应,再把回应的内容显示出来。这种请求—响应模式就是典型的Web应用程序访问过程。
       JavaWeb应用程序中所有的请求—响应都是由Servlet完成的。Servlet是JavaWeb的核心程序,所有的网址最终都交给Servlet处理。Servlet并没有main之类的执行方法。当用户访问服务器的时候,Tomcat是通过调用Servlet的某些方法来完成整个处理过程的。 
 Servlet是什么
   一个Servlet程序就是一个实现了特殊接口的Java类,它由支持Servlet的Web服务器调用和启动运行。一个Servlet程序负责处理它所对应的一个或一组URL地址的访问请求,并接收客户端发出的访问请求信息和产生响应内容。

Servlet程序可以完成普通Java程序所能完成的大多数任务:,
1,获取客户端通过HTML的FORM表单提交的数据和URL后面的参数信息
2,创建对客户端的响应信息内容,

3,访问服务器端的文件系统
4,连接数据库并开发基于数据库的应用,

5,调用其它的Java类
Servlet工作流程
浏览器提交的请求是遵循HTTP协议的文本。这段文本由服务器也就是Tomcat接收并解析,封装成了HttpServletRequest类型的request对象。所有的HTTP头数据都可以通过request相应的方法查询到。Tomcat同时把输出流封装成为HttpServletResponse类型的response对象,通过设置response对象可以控制输出的内容。在请求—响应的这个过程中,Tomcat把request对象、response对象作为参数,调用Servlet的相应方法,例如doPost(request,response)、doGet(request,response)等。

Servlet接口
Servlet是一种实现了javax.servlet.Servlet接口的类。Servlet接口规定了特定的方法来处理特定的请求。Servlet规范是建立在HTTP规范基础上的。HTTP 1.1 规范支持OPTIONS、GET、POST、HEAD、PUT、DELETE、TRACE等7中访问方式,其中最常用的就是GET和POST了。

GET:表示查询信息,URL中可以附带少量的参数信息,但是URL总长度不能超过255个字符,并且参数会显示在浏览器地址栏。
POST:表示提交信息,一般用于提交大数据信息或者文件,提交的内容不受长度限制,并且不会显示在浏览器地址栏中。

Servlet工作流程
利用Servlet完成的Web应用的实际工作流程是通过Tomcat服务器发布服务,客户端与服务器端之间的交互遵循Http协议完成的。具体工作流程如下:

客户端浏览器向服务器端发送请求。
1,服务器端由Tomcat服务器提供的Servlet容器解析接收到的请求。
2,通过Web应用程序的配置文件web.xml,解析到对应执行的Servlet。
3,Servlet完成客户端发送的请求逻辑,并完成向客户端发送的响应内容。
4,由Tomcat服务器提供的Servlet容器向客户端浏览器进行响应。

一,Java Web应用设计模式:

1)采用JSP+JavaBean的技术

JSP独自响应请求并发送处理结果给用户,数据通过JavaBean来处理,是JSP技术发展初期经常采用模式1,适用于一些小型开发项目。

2)采用JSP+JavaBean+Servlet技术(MVC模型)

MVC(Model-View-Controller)模型,适用于中型以上开发项目

“模型-视图-控制器”关系图:

MVC构架设计图:

二,Servlet中的请求转发机制

Web应用中,常由Servlet来充当调度员的角色,把这样的Servlet叫控制器,可以将请求转发给另一个Servlet或JSP页面,由它们对请求作进一步处理,并产生对请求的响应。Servlet中实现请求转发方式:

1)共享一个request:request.getRequestDispacher(“xxx.jsp/xxxservlet”).forword(requet,response);

2)重定向:

Request.sendRedict(“xxx.jsp/xxxservlet””);

三,运用MVC模式开发WEB应用的步骤

1)定义bean来表示数据和封装业务逻辑

a)定义数据Bean来表示需要显示给用户的结果

b)定义业务Bean来封装业务逻辑,BeanDao.

2)使用Servlet处理用户请求

a)根据用户请求,将数据的处理结果写入bean,并将其存于请求或会话的上下文中

b)通过请求转发的形式,将请求转发到合适的页面,servlet不需要创建任何输出,输出由JSP页面完成

2)JSP页面输出结果: 从bean中获取数据输出

总之:

① JSP作界面

② Servlet接受用户请求,并作初步处理,然后将请求进行转发

③业务处理借助Bean

JSP+JavaBean+Servlet技术(MVC模型)的更多相关文章

  1. JSP + JavaBean + Servlet实现MVC设计模式

    1.流程图: 2.代码清单 数据库脚本: DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `userid` ) NOT NULL, `name` ...

  2. Struts与jsp+javabean+servlet区别

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

  3. JSP+JavaBean+Servlet工作原理实例…

    JSP+JavaBean+Servlet工作原理实例讲解 首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念.引用mz3226960提出的MVC的概念,即M-model ...

  4. Servlet+JSP+JavaBean开发模式(MVC)介绍

    好伤心...写登陆注册之前看见一篇很好的博文,没有收藏,然后找不到了. 前几天在知乎上看见一个问题,什么时候感觉最无力. 前两天一直想回答:尝试过google到的所有solve case,结果bug依 ...

  5. JSP+JavaBean+Servlet实现各类列表分页功能

    需求: 每页列表下都有一个分页的功能,显示总数量.当前页/总页数.首页.上一页.下一页.最后一页.GO到第几页 效果动态图: 实现思路: 因为每个列表页都需要,在每个出列表页数据的servlet中都要 ...

  6. 如何开发简单的javaweb项目,jsp+javabean+servlet

    一.相关的软件下载和环境配置 1.下载并配置JDK. 2.下载eclipse. 3.下载并配置apache-tomcat(服务器). 4.下载MySQL(数据库). 5.下载Navicat for M ...

  7. JSP+JavaBean+Servlet+Oracle新增功能中对Date类型的字段的处理

    Oracle库中userinfo表borth字段是Date类型,age年纪字段是int类型.age字段要根据borth来自动计算 先说一下我遇到的问题: insert into的时候遇到日期转换类型错 ...

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

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

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

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

随机推荐

  1. create rootfs.img using loop device

    reference: https://www.thegeekdiary.com/how-to-create-virtual-block-device-loop-device-filesystem-in ...

  2. Hexo博客搭建教程

    1.使用淘宝npm源 $ npm install -g cnpm --registry=https://registry.npm.taobao.org 2.安装hexo cnpm install -g ...

  3. SqlServer中的merge操作(转载)

    SqlServer中的merge操作(转载)   今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有 ...

  4. Flask初级(一)创建及运行flash

    和前面的django差不多,选个类型,定义个目录. 选个模板解释器,定义一个模板文件夹名称. Create就创建成功了. 运行一下.会显示 Hello World! 最好给它换个运行环境,建个虚拟环境 ...

  5. vector中erase用法注意事项

    以前就发现了vector中的erase方法有些诡异(^_^),稍不注意,就会出错.今天又一次遇到了,就索性总结一下,尤其是在循环体中用erase时,由于vector.begin() 和vector.e ...

  6. 玩转X-CTR100 l STM32F4 l BMP280气压计传感器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 扩展BMP ...

  7. DevExpress v17.2新版亮点——Data Access

    用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了Data Access v17.2 的新功能,快来下载试用新版本! 新的API可在 ...

  8. DevExpress v17.2—WPF篇(一)

    用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WPF v17.2 新的Hamburger Menu.Sched ...

  9. 题目1003:A+B

    题目1003:A+B 时间限制:1 秒内存限制:32 兆 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开. 现在请计算A+B的结果,并以正常形式 ...

  10. python编码问题 decode与encode

    参考: http://www.jb51.net/article/17560.htm 如果要在python2的py文件里面写中文,则必须要添加一行声明文件编码的注释,否则python2会默认使用ASCI ...