一,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. operator diag-up setting

  2. learning docker steps(3) ----- docker services 初次体验

    参考:https://docs.docker.com/get-started/part3/#docker-composeyml docker 的 service样例, 我们可以理解成是一个本地负载均衡 ...

  3. ETL设计详解

    ETL是BI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败.ETL也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更 ...

  4. 51nod算法马拉松28-c

    题解: 按照每一个要求,分类讨论,讨论压下去了多少 代码: #include<bits/stdc++.h> using namespace std; ,N=; int n,A,B,C,an ...

  5. sql server的远程连接

    当一台服务器上的数据库需要用到另一台服务器上的数据库时,就需要远程连接 首先创建远程连接 exec sp_addlinkedserver linkname,'','SQLOLEDB',serverIP ...

  6. DevExpress v18.1新版亮点——ASP.NET篇(二)

    用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress ASP.NET v18.1 的新功能,快来下载试用新版本!点 ...

  7. 爬虫从网页中去取的数据中包含&nbsp;空格

    爬虫从网页中爬取的数据中带了一个 这样的空格,使用trim()函数和replace(" ", "")去掉不了,找了一下资料发现,空格有两种一种是从键盘输入的对应 ...

  8. Android中检测字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(一)

    package com.android.filebrowser;   import java.io.*; import java.net.*;   public class FileEncodingD ...

  9. ssh key建立后不能clone问题

    在建立了ssh密钥对之后,要将私钥添加,公钥key添加到gitlab的ssh keys里. 添加成功后,这个时候,你可以clone了! 总结:如果是遇到重复输入密码的情况,可能是ssh-key,的私钥 ...

  10. Spring JdbcTemplate中的回调

    回调 JdbcTemplate类支持的回调类: 1.预编译语句及存储过程创建回调:用于根据JdbcTemplate提供的连接创建相应的语句: 1.1 PreparedStatementCreator ...