【无标题】servlet+mvc

servlet

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
servlet有以下优势:
1.性能明显更好。
2.Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
3.Servlet 是独立于平台的,因为它们是用 Java 编写的。
4.服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
5.Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。
servlet执行以下主要任务:
1.读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
2.读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
3.处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
4.发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
5.发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。
servlet生命周期:
1.Servlet 初始化后调用 init () 方法。
2.Servlet 调用 service() 方法来处理客户端的请求。
3.Servlet 销毁前调用 destroy() 方法。
最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
init()方法:

public void init() throws ServletException {
  // 初始化代码
}

service()方法:

public void service(ServletRequest request, 
                    ServletResponse response) 
      throws ServletException, IOException{
}

service() 方法由容器调用,service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。
doGet() 方法:

public void doGet(HttpServletRequest request,
                  HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

doPost() 方法:

public void doPost(HttpServletRequest request,
                   HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

destroy() 方法:

public void destroy() {
    // 终止化代码
  }

Servlet 实例:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {
 
  private String message;

  public void init() throws ServletException
  {
      message = "Hello World";
  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
  }
  
  public void destroy(){
  }
}

mvc

mvc模式即Model(模型)-View(视图)-Controller(控制器)模式。这种模式用于应用程序的分层开发。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
View(视图) - 视图代表模型包含的数据的可视化。
Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
实例:
(1)创建模型:

public class Student {
   private String rollNo;
   private String name;
   public String getRollNo() {
      return rollNo;
   }
   public void setRollNo(String rollNo) {
      this.rollNo = rollNo;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
}

(2)创建视图:

public class StudentView {
   public void printStudentDetails(String studentName, String studentRollNo){
      System.out.println("Student: ");
      System.out.println("Name: " + studentName);
      System.out.println("Roll No: " + studentRollNo);
   }
}

(3)创建控制器

public class StudentController {
   private Student model;
   private StudentView view;
 
   public StudentController(Student model, StudentView view){
      this.model = model;
      this.view = view;
   }
 
   public void setStudentName(String name){
      model.setName(name);    
   }
 
   public String getStudentName(){
      return model.getName();    
   }
 
   public void setStudentRollNo(String rollNo){
      model.setRollNo(rollNo);      
   }
 
   public String getStudentRollNo(){
      return model.getRollNo();     
   }
 
   public void updateView(){           
      view.printStudentDetails(model.getName(), model.getRollNo());
   }  
}

(4)使用StudentController方法来演示MVC设计模式的用法:

public class MVCPatternDemo {
   public static void main(String[] args) {
 
      Student model  = retrieveStudentFromDatabase();

      StudentView view = new StudentView();
 
      StudentController controller = new StudentController(model, view);
 
      controller.updateView();
 
      controller.setStudentName("John");
 
      controller.updateView();
   }
 
   private static Student retrieveStudentFromDatabase(){
      Student student = new Student();
      student.setName("Robert");
      student.setRollNo("10");
      return student;
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 的区别是什么? servlet、springmvc、jsp 和 html 都是用于 web 开发的技术,但它们的作用和使用方式不同。servletJava web 开发中的一种技术,用于处理 HTTP 请求和响应,可以通过编写 Java 代码来实现 web 应用的逻辑。SpringMVC 是基于 Spring 框架的 MVC 模式的 web 开发框架,它提供了一系列的组件和工具,可以帮助开发者快速构建 web 应用。JSP 是一种动态网页开发技术,它允许开发者在 HTML 页面中嵌入 Java 代码,可以动态生成 HTML 页面。HTML 是一种标记语言,用于描述网页的结构和内容。它是 web 开发的基础,可以通过 HTML 标签来定义网页的各种元素,如文本、图片、链接等。 ### 回答2: ServletJava提供的一种服务器端技术,它运行在Web服务器上,用于处理客户端发送的请求并生成响应。它是一种基于Java的编程模型,可以通过编写Java类来处理HTTP请求和响应。Servlet能够完成与服务器进行通信、数据处理以及生成动态的HTML页面等任务,具有高效、可扩展等优点。 Spring MVC是一个基于MVC(Model-View-Controller)设计模式的Web框架,它建立在Servlet之上,提供了更高级和更灵活的开发方式。相比于Servlet,Spring MVC更加简洁、易用,提供了更多的功能和特性,例如请求映射、数据绑定、数据校验、页面渲染控制等。Spring MVC通过将请求分发给不同的控制器,将业务逻辑分离出来,使得开发人员能够更加专注于业务逻辑的开发。 JSP(Java Server Pages)是一种动态网页技术,它通过将Java代码嵌入到HTML页面中,实现了在HTML页面上编写Java代码的功能。JSP允许我们将页面和业务逻辑进行分离,提高了开发效率和代码的可维护性。JSP页面在服务器端被解析和编译为Servlet,然后在客户端被发送为HTML页面。它使得开发人员能够更加方便地开发动态网页,并实现与用户的交互。 HTML是一种标记语言,用于描述网页的结构和内容。它用一系列标签和属性来描述网页的各个部分,例如标题、段落、图像、超链接等。HTML可以与CSS(层叠样式表)和JavaScript一起使用,实现网页的样式和交互效果。HTML页面通常是静态的,无法直接处理客户端请求和生成动态内容,但可以通过与其他后端技术(例如Servlet、JSP等)结合使用,实现动态网页的开发。 综上所述,Servlet和Spring MVC都是用于服务器端开发的技术,分别提供了不同级别的抽象和功能,使得开发人员能够更加方便和高效地开发Web应用。而JSP和HTML则是用于描述网页的技术,其中JSP可以实现在HTML页面上编写Java代码的功能,从而实现网页的动态化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值