Servlet入门

一、什么是Servlet

1.Servlet 是一个 Java程序,是在服务器上运行用来处理客户端请求并做出响应的程序。
2.Servlet技术是比JSP技术先提出的,也就是说在以前没有提出JSP技术的时候,服务器端都是通过Servlet来生成客户端的HTML响应。
在这里插入图片描述

二、Servlet的职责

1.控制器:Servlet作为控制器的角色,它负责处理用户发出的请求、处理请求数据,并根据用户请求的情况导航到相应的JSP页面或其它的Servlet继续处理。
2.调用Model(模型类)操作数据库,将数据库操作的结果存储到HttpServletRequest或HttpSession或ServletContext(jsp中的隐式对象是application)中,这样页面导航后数据就可以显示在页面上了。
3.页面导航:根据用户请求的情况做出导航到不同的视图(JSP)。

1.Servlet入门

编码
配置:xml,注解
生命周期
doGet() | doPost()
自定义MVC框架
借鉴springMVC

2.继承HttpServlet

重写doGet(),doPost()

3.Servlet作用:

1.处理用户请求的数据
2.响应用户请求
3.页面导航:
request.getRequestDispatcher(url).forward(request,response)
response.sendRedirect(url)
4.控制业务逻辑处理,控制器
与service类调用—》dao类

4.新建一个类extends HttpServlet,重写doGet() | doPost() 方法, 编写处理用户请求的代码,同时响应用户请求

doGet():用来处理用户的Get方式的请求:

1)<form action="path" method="get">
2)<a href="path?paramName=value& param2=value2">
3)javascript:
		a.location.href="path?paramName=value& param2=value2"
		b.location.replace("path?paramName=value& param2=value2")
		c.jquery:
				$.get('path',{data},callback_function)
				$.ajax({
						url:'path',
						type:‘Get’,
						data:{},
						success:function(res){
						}
						})

jsp:request.:获得请求参数,session,cookies,ContextPath,
doPost():用来处理用户的post方式的请求:

1)<form action="path" method="post">
2)javascript:
		a.jquery:
				$.post('path',{data},callback_function)
				$.ajax({
						url:'path',
						type:‘Post’,
						data:{},
						success:function(res){
						}
						})

5.在web.xml中配置servlet 与 servlet-mapping

<servlet>
    <!-- Servlet的名字 -->
    <servlet-name>LoginUserServlet</servlet-name> <!-- 3 -->
    <!-- 配置Servlet类 -->
    <servlet-class>com.lanqiao.store.controller.LoginUserServlet</servlet-class> <!-- 4, get | post-->
</servlet>


 <!-- Servlet映射:将用户请求(path)最终交由哪个Servlet处理 -->
<servlet-mapping>
    <servlet-name>LoginUserServlet</servlet-name> <!-- 2 -->
    <!-- 请求url的模式,可以支持通配符"*" -->
    <url-pattern>/servlet/login</url-pattern> <!-- 1 -->
</servlet-mapping>

6、什么是Model I(模型一) 和Model II(模型二)

1.Model I:指的就是应用系统的结构采用JSP + JavaBean的技术来进行开发的。使用这种技术(JSP + JavaBean(DAO,Entity))开的系统不便于维护和扩展。所以适合开发一些小型的web应用系统。List.jsp, doXxx.jsp: 调用DAO
i.在Model I中JSP负责两个角(1.显示内容,2.请求处理和页面的导航控制,与DAO交互)。
ii.JavaBean则负责业务操作,例如数据库操作。
iii.通常情况下我们把Model I的JSP叫做View(视图层),JavaBean叫做Model(模型层),简称为:MV,此种应用程序结构称为两层结构的Web应用。
2.Model II: 指的是系统在Model I的基础上进行扩展加入了Servlet作为控制层。JSP + Servlet + JavaBean通常把这种应用程序 结构叫做:MVC(Model, View, Controller)。MVC实际上是一种设计模式(解决问题的方法论)称作:MVC模式。
在这里插入图片描述
i.MVC (Model, View, Controller)是一种设计模式。
1.M:表示Model模型层。由JavaBean实现。代表应用程序状态(如实体数据)和业务逻辑(如用户注册、存款、取款、结账付款等)一个业务逻辑的背后通常涉及多次数据库操作,如下图:一个存款操作的背后涉及了“账户”,“交易日志”,“设备打印”等多次数据库访问。而这些操作都被封装到了一个“存款”的业务方法中完成,在这个业务方法中所有的数据操作要么全部成功要么全部失败。

//数据访问类,特点操作是细粒度(CRUD)
//业务逻辑:一个业务方法,特点粗粒度(调用多个DAO类多个方法的调用)
2.V:表示View视图层。由JSP实现(模板技术:freemaker),因为JSP包含静态HTML和动态内容两部分所为它更适合作展示。
3.C:表示Controller控制层。由Servlet实现。因为Servlet是一个特殊的Java类,它可以访问到HttpServletRequest和HttpServletResponse对象,所以可以用它来处理用户请求(如:处理表提交的数据、调用模型类操作数据库)和响应(如:转发请求或重定向到其它的Servlet或JSP)。
ii.使用MVC模式开发的应用程序称为三层结构。在我们后继学习的Struts框架就是一个MVC框架,也就是说Struts框架对我们要开发的系统的各个层进行了明确的分层。

在这里插入图片描述
以登录功能为例,说明MVC模式:
Model: 执行业务逻辑(操作),对于简单的业务来说的话直接使用DAO类完成。但是对于复杂的业务来说的话,模型就不是一个简单的DAO类能够完成的。通常我们会将复杂的业务功能封装在一个Service类,Service类的一个方法内完成多次DAO的交互。如上图
Model: 负责业务操作。
public void 存款方法() throws BusinessException {
AccountDao.updateAccount(…);
TradeLogDao.insertLog(…);
ATM.数钱();
}
View: 负责视图呈现,由HTML, JSP完成。
Controller:由Servlet完成。
1)处理用户请求
2)与Model交互,调用业务操作类.
3)视图导航(请求转发、重定向到目标视图)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值