• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP使用Servlet作为控制器实现MVC模式实例详解

    本文实例讲述了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测试!");
      }
    }
    
    

    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>
    
    

    访问方式设置:

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

    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);
      }
    }
    
    

    上面的代码基本上展示了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>
    
    

    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"%>
    
    

    7、 测试运行

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

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

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

    8、 Servlet的主要方法

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

    9、 生命周期

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

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

    您可能感兴趣的文章:
    • JSP使用MVC模式完成删除和修改功能实例详解
    • springMVC如何将controller中数据传递到jsp页面
    • springMVC如何将controller中Model数据传递到jsp页面
    • SpringMVC 向jsp页面传递数据库读取到的值方法
    • 浅谈SpringMVC jsp前台获取参数的方式 EL表达式
    • JSP开发中在spring mvc项目中实现登录账号单浏览器登录
    • JSP中springmvc配置validator的注意事项
    • JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
    • jsp 实现的简易mvc模式示例
    上一篇:JSP学习经验小结分享
    下一篇:JSP使用JDBC完成动态验证及采用MVC完成数据查询的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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