0
点赞
收藏
分享

微信扫一扫

第五周预习——Servlet+mvc

兵部尚输 2022-04-29 阅读 44
mvcjava

第四次作业的练习:
https://gitee.com/cai-still/bulemsun_homework2022/blob/1e6f37cd2a927dca19ea5c84848e2b4fafcfc448/jsphomework/%E7%AE%80%E6%98%93%E8%AE%A1%E7%AE%97%E5%99%A8/count1.jsp
写的有很多瑕疵:
1.密码输入的时候密码是可以看到的(不是的是不是浏览器的问题)
2.计算器只能进行整数的运算,还不能进行小数的运算
下面是Servlet+mvc的预习

一、Servlet

(内容参考https://www.cnblogs.com/whgk/p/6399262.html)

1.1servlet是什么

Servlet是Server Applet的简称,而Server Applet翻译过来是服务器小程序,就是运行在服务端的小程序,由sun公司提供的一门用于开发动态Web资源的技术。(就是一个小程序,运行在服务器上,用来处理服务器接受到的请求并发送响应)
浏览器通过网址来访问服务器:
在这里插入图片描述

1.2tomcat和servlet的关系

Tomacat是Web应用服务器,是一个Servlet/JSP容器,(既然是容器,就在tomcat框架里面),作为Servlet容器,负责处理客户的请求,把请求传送给Servlet,然后把Servlet的响应传送回给客户。
在这里插入图片描述
可以看出:Servlet是Tomcat服务器上的小程序

1.3手动编写servlet

为什么需要servlet?——实现动态网页
web服务器不能提供动态即时页面,不能往数据库保存数据,如果需要一个动态的内容,则需要web服务器上另外一辅助程序帮助(web服务器会调用这个辅助程序实现动态内容的展现)。而servlet就是辅助应用程序。

  • 创建一个MyServlet继承HttpServlet,重写doFet和doPost
  • 在web.xml中配置MyServlet
    (下述代码有些许问题,会在课上好好听出错原因,并会在课后改正)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>first</title>
</head>
<body>
<form action="Servlet01" name="login" method="get">
    <table>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password"></td>
        </tr>
        <tr>
            <td><input type="submit" value="确认登录"></td>
        </tr>
    </table>
</form>
</body>
</html>
package servletwork;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("Servlet01")
public class Servlet01 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doPost");
        request.setCharacterEncoding("utf-8");
        System.out.println("正在处理post()请求");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doGet");
        request.setCharacterEncoding("utf-8");
        System.out.println("正在处理get()请求");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username);
        System.out.println(password);
    }
}

1.4详解创建servlet的原理

1.servlet的生命周期是什么?
服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf) 
该servlet对象去处理所有客户端请求,在service(ServletRequest req,ServletResponse res)方法中执行
最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。
在这里插入图片描述

2.为什么创建的servlet是继承自httpServlet,而不是直接实现Servlet接口?
3.servlet的生命周期中,可以看出,执行的是service方法,为什么我们就只需要写doGet和doPost方法呢?
详解见:https://www.cnblogs.com/whgk/p/6399262.html
比较抽象,没有读太懂

二、MVC

2.1

MVC(Model View Controller)
M是指业务模型
V是指用户界面
C则是控制器
使用MVC的可以将M和V实现代码分离,从而使同一个程序可以使用不同的表现形式。
使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
最典型的MVC就是JSP + servlet + javabean的模式。
所以上述Servlet在mvc中担任的作用是Controller控制器,对数据进行操控作用。

举报

相关推荐

servlet+mvc

第五周总结

第五周学习总结

开学第五周总结

acm第五周总结

程序设计第五周

第五次周测

0 条评论