• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JSP > JSP使用Servlet作为控制器实现MVC模式实例详解

JSP使用Servlet作为控制器实现MVC模式实例详解

作者:老李-大连 字体:[增加 减小] 来源:互联网 时间:2017-05-11

老李-大连通过本文主要向大家介绍了jsp servlet mvc,servlet/jsp深入详解,jsp和servlet的区别,jsp和servlet的关系,jsp调用servlet实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了JSP使用Servlet作为控制器实现MVC模式的方法。分享给大家供大家参考。具体如下:

一、目标:

① 初步理解MVC模式;
② 掌握Servlet的编写;
③ 使用MVC模式完成登录功能。

二、主要内容:

① 分析JSP+JavaBean模式存在的问题,并介绍JSP+JavaBean+Servlet模式,以及和MVC模式的关系;
② 通过简单实例介绍Servlet的编写、配置和运行;
③ 采用Servlet完成登录功能的控制。

1、 JSP+JavaBean这种模式存在的问题?

JSP的强大之处在与人交互,也就是完成输入输出的功能。但是在JSP+JavaBean这种模式中,JSP不仅仅完成输入输出的功能,还完成系统的控制功能(接收用户请求,调用JavaBean,然后根据调用的结果,选择界面对用户进行响应)。所以在JSP发展的第三个阶段中,把控制功能从JSP中分离出来,使用Servlet来实现,形成JSP+JavaBean+Servlet这种模式,JSP仅仅完成输入和输出,JavaBean完成处理,而Servlet完成控制。

2、 JSP+JavaBean+Servlet

JSP负责输入输出,JavaBean负责实现业务逻辑(功能),Servlet完成控制。这种模式通常也被认为是MVC模式的一种实现。MVC模式把系统的业务逻辑、控制和输入输出进行分离,在开发应用的时候,可以单独考虑某一部分,简化开发。
V,表示视图,与人交户的部分,M,表示模型,完成功能,C,表示控制器。JSP通常充当视图,JavaBean是模型,Servlet作为控制器。

3、 什么是Servlet

Servlet也是一种Web组件,从完成的功能上来说,与JSP是相同的。Servlet是纯Java文件,是特殊的Java类。
Servlet与JavaBean有什么区别呢?都是Java类,但是Serlvet可以接收用户的请求,客户端可以直接访问。但是JavaBean不能被客户端直接访问,必须由JSP或者其他的Java文件(包括Servlet)来调用。

4、 实例:HelloServlet

下面是一个Servlet,完成的功能是输出一句话"Servlet测试!"。

1)文件编写

package servlet;
// Servlet开发所需要的包
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet
{
  public void doGet(HttpServletRequest request,HttpServletResponse response)
throw IOException,ServletException
  {
   response.setContentType("text/html;charset=gb2312");
   PrintWriter out = response.getWriter();
   out.print("Servlet测试!");
  }
}

</div>

2)编译

需要把C:/Program Files/Apache Software Foundation/Tomcat 6.0/lib/servlet-api.jar配置到classpath中,然后编译。

3)配置

在配置文件web.xml中写。包括两部分:声明和访问方式设置。

声明:

<servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class>servlet.HelloServlet</servlet-class>
</serlvet>

</div>

访问方式设置:

<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello</url-pattern>
</servlet-mapping>

</div>

5、 测试

访问:http://127.0.0.1:8080/ch6/hello

6、 如何采用这种模式实现登录功能?

界面界面和响应界面都不需要修改,JavaBean完成处理,也不需要改变,只是使用Servlet来替换原来的login-process.jsp,完成控制功能。

1)参考代码如下:

package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javabean.*;
public class LoginProcess extends HttpServlet
{
  public void doGet(HttpServletRequest request,HttpServletResponse response)
   throws IOException,ServletException
  {
   // 第一步:获取用户的输入信息
   String username = request.getParameter("username");
   String userpass = request.getParameter("userpass");
   // 第二步:调用JavaBean
   User user = new User();
   user.setUsername(username);
   user.setUserpass(userpass);
   boolean b = user.check();
   // 第三步:选择一个界面对用户进行响应
   String forward;
   if(b)
     forward = "success.jsp";
   else
     forward = "failure.jsp";
   RequestDispatcher rd = request.getRequestDispatcher(forward);
   rd.forward(request,response);
  }
}

</div>

上面的代码基本上展示了Servlet作为控制器的基本功能。

2)配置

  <servlet>
   <servlet-name>process</servlet-name>
   <servlet-class>servlet.LoginProcess</servlet-class>
  </servlet>
  <servlet-mapping>
   <servlet-name>process</servlet-name>
   <url-pattern>/process</url-pattern>
  </servlet-mapping>

</div>

3)修改登录界面的action属性

<%@ page contentType="text/html;charset=gb2312"%>
请登录<br>
<form name="form1" method="post" action="process">
  用户ID:<input type="text" name="username"><br>
  口令:<input type="password" name="userpass"><br>
    <input type="submit" value="登录"><input type="reset" value="重置">
</form>
<%@ include file="contact.jsp"%>

</div>

7、 测试运行

访问登录界面,输入信息,然后提交。
这时候会报错,提示请求方式不支持。需要在Servlet中增加如下方法:

public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
   doGet(request,response);
}

</div>

因为JSP页面中的请求方式为post,所以Servlet中需要提供doPost方法,方法的定义和doGet相同,这里方法的实现只需要调用doGet方法即可。

8、 Servlet的主要方法

init方法,用于初始化;
服务类方法:doGet方法和doPost方法
destroy方法,释放资源

9、 生命周期

服务器接收到请求之后,会把请求信息封装成HttpServletRequest对象和HttpServletResponse对象。
第一次访问servlet的时候,加载类,创建对象,初始化(init方法),调用服务类方法(如果是get请求,调用doGet方法,如果是post请求,调用doPost方法)。
后续访问,直接调用服务器类方法。
卸载Servlet的时候,或者关闭服务器的时候,调用destroy方法释放资源。

希望本文所述对大家的JSP程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • JSP使用Servlet作为控制器实现MVC模式实例详解

相关文章

  • 2017-05-11jsp中定义和使用方法示例介绍
  • 2017-05-11jsp传值本地无乱码测试机出现乱码问题解决
  • 2017-05-11jsp页面中表达式语言中的$符号不起作用的解决方法
  • 2017-05-11jsp中两个框中内容互换可以添加也可以移除
  • 2017-05-11JSP数据分页导出下载显示进度条样式
  • 2017-05-11jsp实现点击help打开chm文件
  • 2017-05-11JSP response对象实现文件下载的两种方式
  • 2017-05-11Java中四种XML解析技术
  • 2017-05-11JSP由浅入深(8)—— JSP Tags
  • 2017-05-11利用JSP建立Web站点

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 初学Java的备忘录
    • J2SE中的序默认序列化
    • JSP使用Servlet过滤器进行身份验证的方法
    • JSP中使用JDBC连接MySQL数据库的详细步骤
    • JSP教程(六)-怎么在JSP中跳转到别一页面
    • jsp 获取客户端的浏览器和操作系统信息
    • 利用jsp+Extjs实现动态显示文件上传进度
    • jsp 自定义标签实例
    • 通过JSP的预编译消除性能瓶颈
    • Java数据库存取技术

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有