蓝旭预习博客4:MVC、Servlet与Jar包

目录

Servlet

1.概述

2.如何写一个简单的Servlet

 cookie

1.概述

2.使用cookie

session 

1.概述

2.示例

HTTP报文 

 1.概述

2.演示

Tomcat 

MVC模式与JarMVC

1.MVC

2.Jar

1.概述

2.使用


Servlet

1.概述

Servlet即server+applet,指运行在服务器端的小程序,是sun公司提供的一门用于开发动态web资源的技术,通常我们也把实现了servlet接口的java程序也称为Servlet;

2.如何写一个简单的Servlet

有以下几步:

1.创建JavaEE/Jakarta EE项目 ;

2.定义一个类,实现Servlet接口;

3.实现接口中的抽象方法;

4.配置Servlet;

在web.xml中配置

  <!--配置Servlet-->

  <servlet>

     <servlet-name>demo1</servlet-name>

     <servlet-class>com.example.demo.ServletDemo1</servlet-class>

  </servlet>

  <servlet-mapping>

     <servlet-name>demo1</servlet-name>

     <url-pattern>/demo1</url-pattern>

  </servlet-mapping>

代码如下:

package com.example.demo;

import jakarta.servlet.*;

import java.io.IOException;

public class ServletDemo1 implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    //提供服务的方法
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Hello Servlet");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    <!--配置Servlet-->
    <servlet>
        <servlet-name>demo1</servlet-name>
        <servlet-class>com.example.demo.ServletDemo1</servlet-class>
    </servlet>

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


</web-app>

 cookie

1.概述

       Cookie 是一种由服务器发送到用户浏览器并保存在本地的小段数据,每次浏览器发送请求到服务器时,都会将这些 Cookie 数据发送回服务器。这样,服务器就可以通过 Cookie 来识别用户,跟踪用户的会话状态,或者存储一些用户的偏好设置。

在 Web 开发中,Cookie 通常用于实现用户登录状态的保持,购物车功能的实现,或者用于记录用户的访问习惯等。

2.使用cookie

以下是cookie中常用属性:

Name:这个是cookie的名字
Value:这个是cooke的值
Path:这个定义了Web站点上可以访问该Cookie的目录
Expires:这个值表示cookie的过期时间,也就是有效值,cookie在这个值之前都有效。
Size:这个表示cookie的大小

下面是一个Java Servlet示例:

import javax.servlet.*;  
import javax.servlet.http.*;  
import java.io.IOException;  
import java.io.PrintWriter;  
  
public class CookieServlet extends HttpServlet {  
  
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        // 设置响应内容类型  
        response.setContentType("text/html");  
          
        // 获取PrintWriter对象,用于向客户端输出内容  
        PrintWriter out = response.getWriter();  
          
        // 设置Cookie  
        Cookie cookie = new Cookie("username", "John Doe");  
        // 设置Cookie的过期时间  
        cookie.setMaxAge(60 * 60 * 24 * 365); // 一年  
        // 将Cookie添加到响应中  
        response.addCookie(cookie);  
          
        out.println("<html>");  
        out.println("<head>");  
        out.println("<title>Cookie Example</title>");  
        out.println("</head>");  
        out.println("<body>");  
          
        // 获取Cookie  
        Cookie[] cookies = request.getCookies();  
        if (cookies != null) {  
            for (Cookie c : cookies) {  
                if (c.getName().equals("username")) {  
                    out.println("<p>Welcome back, " + c.getValue() + "!</p>");  
                }  
            }  
        } else {  
            out.println("<p>No cookies found.</p>");  
        }  
          
        out.println("</body>");  
        out.println("</html>");  
    }  
}

session 

1.概述

      Session(会话)在Web开发中,指的是用户与网站之间的一系列交互过程。在服务器端,Session通常用于存储与特定用户相关的数据,这些数据在用户的多个请求之间保持有效,直到会话结束(如用户关闭浏览器窗口、超时等)。通过Session,服务器能够识别用户并在多个请求之间维护用户的状态。

      在Java Web开发中,Session通常是通过HttpSession接口来实现的,该接口是Java Servlet API的一部分。HttpSession对象允许开发者存储和检索与用户会话相关的属性。

2.示例

下面是一个简单的代码示例,演示如何在Servlet中使用Session来存储和获取用户数据:

import javax.servlet.*;  
import javax.servlet.http.*;  
import java.io.IOException;  
import java.io.PrintWriter;  
  
public class SessionExampleServlet extends HttpServlet {  
  
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
        // 设置响应内容类型  
        response.setContentType("text/html");  
          
        // 获取PrintWriter对象,用于向客户端输出内容  
        PrintWriter out = response.getWriter();  
          
        // 获取HttpSession对象  
        HttpSession session = request.getSession();  
          
        // 检查session中是否已经有属性"username"  
        if (session.getAttribute("username") == null) {  
            // 如果没有,则设置一个属性值  
            session.setAttribute("username", "John Doe");  
            out.println("<p>Welcome, you are a new user. Your username is set to John Doe.</p>");  
        } else {  
            // 如果已经有,则获取并显示该属性值  
            String username = (String) session.getAttribute("username");  
            out.println("<p>Welcome back, " + username + "!</p>");  
        }  
          
        // 设置session的超时时间(以秒为单位),例如设置为30分钟  
        session.setMaxInactiveInterval(30 * 60);  
          
        // 其他处理...  
          
        out.close();  
    }  
}

       Session的管理和持久化通常由Tomcat自动处理,我们通常不需要关心Session在服务器上的具体存储方式。 

HTTP报文 

 1.概述

      HTTP报文是超文本传输协议(HTTP)在客户端和服务器之间传输数据时所使用的格式。HTTP报文主要由请求报文和响应报文两部分组成,它们各自包含了一些固定的字段和可选的字段,用于描述请求或响应的详细信息。

     请求报文通常包含请求行、请求头部和请求体(可选)三个部分。请求行包括请求方法(如GET、POST)、请求资源的URL和HTTP协议版本。请求头部包含了关于请求的各种元数据,如User-Agent(用户代理)、Accept-Language(接受的语言)等。请求体则是请求中实际要发送的数据,通常用于POST请求。

       响应报文则包含状态行、响应头部和响应体三个部分。状态行包括HTTP协议版本、状态码和状态消息,用于描述请求的处理结果。响应头部与请求头部类似,也包含了一些元数据。响应体则是服务器返回给客户端的实际数据。

2.演示

在Java中,我们可以使用Java的网络API(如java.net.HttpURLConnectionjava.net.http.HttpClient)来发送HTTP请求并接收响应,从而处理HTTP报文。下面是一个使用HttpURLConnection发送GET请求的简单示例:

import java.io.BufferedReader;  
import java.io.InputStreamReader;  
import java.net.HttpURLConnection;  
import java.net.URL;  
  
public class HttpExample {  
    public static void main(String[] args) {  
        try {  
            // 创建URL对象  
            URL url = new URL("http://example.com");  
              
            // 打开连接  
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();  
            connection.setRequestMethod("GET"); // 设置请求方法为GET  
              
            // 获取响应码  
            int responseCode = connection.getResponseCode();  
            System.out.println("Response Code : " + responseCode);  
              
            // 如果响应码为200,表示请求成功  
            if (responseCode == 200) {  
                // 获取响应体内容  
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));  
                String inputLine;  
                StringBuffer response = new StringBuffer();  
                  
                while ((inputLine = in.readLine()) != null) {  
                    response.append(inputLine);  
                }  
                in.close();  
                  
                // 输出响应内容  
                System.out.println(response.toString());  
            } else {  
                System.out.println("GET request not worked");  
            }  
              
            // 关闭连接  
            connection.disconnect();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

Tomcat 

       Tomcat是Apache软件基金会(Apache Software Foundation)下的一个核心项目,也是一款非常流行的开源Servlet容器和Web服务器。它实现了Java Servlet规范和JavaServer Pages (JSP) 规范,可以运行Servlet和JSP Web应用。Tomcat以其易用性、稳定性和强大的性能,成为了众多Web开发者和企业的首选Web服务器。

MVC模式与JarMVC

1.MVC

MVC,全称Model-View-Controller,是一种广泛使用的软件设计模式,尤其在Web应用开发和桌面应用开发中。MVC的核心思想是将应用程序的业务逻辑、用户界面和数据模型进行分离,从而实现代码的可重用性、灵活性和可维护性。

在MVC模式中:

Model(模型)代表数据和业务逻辑,它负责处理应用程序的数据部分,包括数据的存储、检索以及业务规则的实现。

View(视图)则负责呈现用户界面,它展示了模型中的数据,并将用户的输入传递给控制器。

Controller(控制器)是模型和视图之间的协调者,它接收用户的输入,调用相应的模型来处理这些输入,并更新视图以反映这些变化。

MVC模式通过明确划分应用程序的不同职责,使得代码结构更加清晰,提高了开发效率。同时,由于各个部分之间的独立性,MVC模式也使得应用程序更加易于维护和扩展。因此,MVC模式在软件开发领域得到了广泛应用,是构建高质量应用程序的重要工具之一。

2.Jar

1.概述

JAR,全称Java Archive,是一种用于聚合Java类文件、相关元数据和资源(如文本、图片等)的软件包文件格式。它以ZIP格式构建,并以“.jar”作为文件扩展名。JAR文件在Java平台应用软件或库的开发中扮演着重要角色,它可以将大量的Java类和相关资源整合到一个单独的文件中,从而简化了代码的传输、分发和部署过程。

JAR文件不仅可以用来管理和分发Java库文件,还可以将一组相关的Java类打包成一个模块,方便代码的管理和维护。此外,JAR包还可以用来管理和分发不同版本的软件,以及防止类文件冲突,提高软件的安全性和可靠性。

在Java开发中,JAR文件的使用非常广泛。开发者可以将常用的库文件打包成JAR包,并在其他项目中使用。同时,通过JAR包,开发者可以更容易地管理代码版本,确保项目中所使用的库文件版本一致,减少因版本不一致而引发的问题。

2.使用

生成jar文件方法 (在命令行中使用):使用 jar 命令创建:

  • jar cf test.jar test不显示压缩过程将当前路径下的test路径下的全部内容生成一个test.jar文件,如果已经存在则被覆盖。
  • jar cvf test.jar test显示压缩过程;
  • jar cvfM test.jar test不生成清单文件;
  • jar cvfm test.jar manifest.mf test自定义清单文件信息,m指定读取用户清单信息。清单文件是普通文本文件。
  • jar cvfm test.jar a.txt test将清单文件中的key-value对提取到META-INF/MANIFEST.MF文件中。
  • jar tf test.jar查看jar包内容;
  • jar tf test.jar > a.txt如果jar包中的文件路径和文件非常多,用上一个命令就无法查看所有,所以用重定向将显示结果保存到文件中。
  • jar tvf test.jar查看详细内容;
  • jar xf test.jar解压,将jar文件解压到当前目录下;
  • jar xvf test.jar解压,显示解压过程的信息;
  • jar uf test.jar Hello.class更新test.jar中的Hello.jar文件,如果存在则覆盖,否则添加;
  • jar uvf test.jar Hello.class更新时显示详细信息;

  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值