当前位置: 首页 > news >正文

B033-Servlet交互 JSP

目录

      • Servlet
        • Servlet的三大职责
        • 跳转:请求转发和重定向
        • 请求转发
        • 重定向
        • 汇总
        • 请求转发与重定向的区别
        • 用请求转发和重定向完善登录
      • JSP
        • 第一个JSP
          • 概述
          • 注释
          • 设置创建JSP文件默认字符编码集
        • JSP的java代码书写
        • JSP的原理
        • 三大指令
        • 九大内置对象
          • 改造动态web工程进行示例
          • 内置对象名称来源?
          • 名单列表
        • 四大作用域
          • 概述
          • 案例测试
          • 登录完善

Servlet

Servlet的三大职责

1.接受参数 --> req.getParameter (非必须)
2.处理业务 --> 拿到数据后去做一些事情(非必须)
3.跳转(必须)–> 操作完的一个结果 两句代码

跳转:请求转发和重定向

在这里插入图片描述

请求转发

案例演示:动态web项目

AServlet

@WebServlet("/go/a")
public class AServlet extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("AServlet");String name = req.getParameter("name");System.out.println("A-name: "+name);req.setAttribute("password", "123456");// 请求转发req.getRequestDispatcher("/go/b").forward(req, resp);}
}

BServlet

@WebServlet("/go/b")
public class BServlet extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("BServlet");String name = req.getParameter("name");System.out.println("B-name: "+name);String password = (String) req.getAttribute("password");System.out.println("B-password: "+password);}
}

浏览器访问:http://localhost/go/a?name=zhangsan

控制台:

AServlet
A-name: zhangsan
BServlet
B-name: zhangsan
B-password: 123456

req.getRequestDispatcher(“路径”).forward(request, response); ,请求里的东西,forward可以理解为携带

带值跳转,可以访问WEB-INF中资源,地址栏不改变
发送一次请求,最后一个response起作用,不可以跨域[跨网站]访问

重定向

案例演示:动态web项目

CServlet

@WebServlet("/go/c")
public class CServlet extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("CServlet");String name = req.getParameter("name");System.out.println("C-name: "+name);resp.sendRedirect("/go/d");}
}

DServlet

@WebServlet("/go/d")
public class DServlet extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("DServlet");String name = req.getParameter("name");System.out.println("D-name: "+name);}
}

浏览器访问:http://localhost/go/c?name=zhangsan

控制台:

CServlet
C-name: zhangsan
DServlet
D-name: null

resp.sendRedirect(“路径”) ,响应里的东西,可以有避免重复扣款和访问外部网站之类的作用

无法带值,不能访问WEB-INF下内容,地址栏改变
两次请求,起作用的依然是最后一个,可以跨域访问

汇总

在这里插入图片描述

请求转发与重定向的区别

请求转发的特点:可以携带参数,只用一次请求,可以访问WEB-INF
重定向的特点:可以避免重复扣款场景风险,可以访问外部网站,不能访问WEB-INF

请求转发过程:浏览器 - 内部代码 - WEB-INF
重定向过程:浏览器 - 内部代码 - 浏览器 - URL

动态web项目示例:
EServlet

@WebServlet("/go/e")
public class EServlet extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("EServlet");System.out.println("E----扣款1000");//		req.getRequestDispatcher("/go/f").forward(req, resp);
//		resp.sendRedirect("/go/f");
//		resp.sendRedirect("https://www.fu365.com/");//		req.getRequestDispatcher("/WEB-INF/haha.html").forward(req, resp);
//		resp.sendRedirect("/WEB-INF/haha.html");}
}

FServlet

@WebServlet("/go/f")
public class FServlet extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("FServlet");}
}

WEB-INF下新建haha.html
浏览器访问:http://localhost/go/e

用请求转发和重定向完善登录

webapp下WEB-INF外新建login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="/loginTest" method="post">账号:<input type="text" name="name"><br>密码:<input type="password" name="password"><input type="submit" value="post"></form>
</body>
</html>

loginTest

@WebServlet("/loginTest")
public class LoginServletTest extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=utf-8");String name = req.getParameter("name");String password = req.getParameter("password");if ( name.equals("zhangsan") && password.equals("123456") ) {resp.sendRedirect("main.html");		//这里在WEB-INF外重定向可以访问} else {req.setAttribute("msg", "登录失败");// 需要访问另外一个servlet,把参数传进页面打印出来req.getRequestDispatcher("/AAAServlet").forward(req, resp);}}
}

main.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><h1>登录成功</h1>
</body>
</html>

AAAServlet

@WebServlet("/AAAServlet")
public class AAAServlet  extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Object attribute = req.getAttribute("msg");System.out.println(attribute);PrintWriter writer = resp.getWriter();writer.print("<!DOCTYPE html>");writer.print("<html>");writer.print("<head>");writer.print("<meta charset=\"UTF-8\">");writer.print("<title>Insert title here</title>");writer.print("</head>");writer.print("<body>");writer.print(attribute);writer.print("   <form action=\"/loginTest\" method=\"post\">");writer.print("     账号:<input type=\"text\" name=\"username\"><br>");writer.print("     密码:<input type=\"password\" name=\"password\"><br>");writer.print("     <input type=\"submit\" value=\"post\">");writer.print("   </form>");writer.print("</body>");writer.print("</html>");}
}

JSP

第一个JSP
概述

servlet:是用来写java代码的,也可以用来做页面展示(把html代码一行一行打印出去),但是不擅长做页面展示。
html:用来做页面展示,静态网页,没办法拿到Java代码,不能展示数据。
jsp:看起来像html,但是它里面可以写java代码(动态网页)。

注释

webapp下新建_01hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><!-- 不安全的注释,能在控制台看到 --><%-- 安全的注释,不能再控制台看到 --%><h1>我是第一个JSP</h1>
</body>
</html>
设置创建JSP文件默认字符编码集

JSP文件内右键 - Preferences - utf-8

JSP的java代码书写
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head><body><!-- jsp写java代码的第一种方式,打印到后端控制台 --><%for(int i = 0;i<5;i++){System.out.println("i: "+i);}int b =520;%><!-- jsp写java代码的第二种方式,显示在页面上 --><%=b %><!-- jsp写java代码的第三种方式,涉及JSP的底层原理 --><%!String ss ="abc";// System.out.println("abc: "+ss);%></body>
</html>
JSP的原理

jsp需要tomcat运行才能正常展示内容
在这里插入图片描述
访问JSP - tomcat的web.xml - 两个servlet类(把JSP转化为servlet/java文件,把html代码打印出去)

tips:tomcat的web.xml是全局的,项目中的web.xml是局部的

三大指令

1.page :当前页面的一些配置,jsp生成java文件时会引用这些配置

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>

2.taglib:不讲 (下一节来说 )

3.include:引用一个文件,常用于导航栏
在这里插入图片描述
_03include.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@include file="head.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><div>螺旋丸</div>
</body>
</html>

_04include.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><div>千年杀</div><%@include file="head.jsp" %>
</body>
</html>

head.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><div style="background-color:red;text-align:center;font-size:50px">火影忍者</div>
九大内置对象
改造动态web工程进行示例

改造LoginServletTest,登录失败后跳转到login.jsp

@WebServlet("/loginTest")
public class LoginServletTest extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=utf-8");String name = req.getParameter("name");String password = req.getParameter("password");if ( name.equals("zhangsan") && password.equals("123456") ) {resp.sendRedirect("main.html");		//这里在WEB-INF外重定向可以访问} else {req.setAttribute("msg", "登录失败");// 需要访问另外一个servlet,把参数传进页面打印出来
//			req.getRequestDispatcher("/AAAServlet").forward(req, resp);req.getRequestDispatcher("login.jsp").forward(req, resp);}}
}

webapp下新增login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><%=request.getAttribute("msg") %><form action="/loginTest" method="post">账号:<input type="text" name="name"><br>密码:<input type="password" name="password"><input type="submit" value="post"></form>
</body>
</html>
内置对象名称来源?

来自tomcat根据jsp生成的java文件,在那里面定义了
在这里插入图片描述

名单列表
HttpServletRequest    request  		请求对象    
HttpServletResponse   response 		响应对象
ServletConfig         config      	配置对象
ServletContext      application  
Throwable          	 exception   	异常( 你当前页面是错误页时才有 isErrorPage="true" )
JspWriter         		out    		输出流对象
Object           		page   		相当于this 是当前页的意思
PageContext         pageContext  	没好大用处 
HttpSession           session  		会话对象(重要)
四大作用域
概述
HttpServletRequest  request    一次请求
HttpSession       session      一次会话	同一个浏览器访问tomcat就是一次会话
PageContext    pageContext    	当前页面	作用不大
ServletContext   application     整个会话tomcat没有关闭就不会消失,在不同的浏览器都能拿到

在这里插入图片描述

案例测试

webapp下新增_05page.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><%pageContext.setAttribute("iampageContext","我是当前页对象");request.setAttribute("iamrequest", "我是请求对象");session.setAttribute("iamsession", "我是会话对象");application.setAttribute("iamapplication", "我是应用对象");%><%=pageContext.getAttribute("iampageContext")%><%=request.getAttribute("iamrequest")%><%=session.getAttribute("iamsession")%>	<%=application.getAttribute("iamapplication")%>
</body>
</html>

webapp下新增_06page.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><%=pageContext.getAttribute("iampageContext")%><%=request.getAttribute("iamrequest")%><%=session.getAttribute("iamsession")%>	<%=application.getAttribute("iamapplication")%>
</body>
</html>

启动tomcat,浏览器访问http://localhost/_05page.jsp,我是当前页对象 我是请求对象 我是会话对象 我是应用对象

浏览器访问http://localhost/_06page.jsp,null null 我是会话对象 我是应用对象

换一个浏览器访问http://localhost/_06page.jsp,null null null 我是应用对象

重启原浏览器访问http://localhost/_06page.jsp,null null null 我是应用对象

重启tomcat访问http://localhost/_06page.jsp,null null null null

修改_05page.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><%pageContext.setAttribute("iampageContext","我是当前页对象");request.setAttribute("iamrequest", "我是请求对象");session.setAttribute("iamsession", "我是会话对象");application.setAttribute("iamapplication", "我是应用对象");%><%request.getRequestDispatcher("_06page.jsp").forward(request, response);%>
</body>
</html>

启动tomcat,浏览器访问http://localhost/_05page.jsp,null 我是请求对象 我是会话对象 我是应用对象

修改_05page.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><%pageContext.setAttribute("iampageContext","我是当前页对象");request.setAttribute("iamrequest", "我是请求对象");session.setAttribute("iamsession", "我是会话对象");application.setAttribute("iamapplication", "我是应用对象");%><%//request.getRequestDispatcher("_06page.jsp").forward(request, response);response.sendRedirect("_06page.jsp");%>
</body>
</html>

启动tomcat,浏览器访问http://localhost/_05page.jsp,null null 我是会话对象 我是应用对象

修改_06page.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><%=pageContext.getAttribute("iampageContext")%><%=request.getAttribute("iamrequest")%><%=session.getAttribute("iamsession")%>	<%=application.getAttribute("iamapplication")%><%request.getRequestDispatcher("_05page.jsp").forward(request, response);%>
</body>
</html>

启动tomcat,浏览器访问http://localhost/_05page.jsp,报错:该网页无法正常运作,localhost将您重定向的次数过多。

登录完善

改造login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" isErrorPage="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><%if(request.getAttribute("msg")!=null){ %><%=request.getAttribute("msg") %><%} %><form action="/loginTest" method="post">账号:<input type="text" name="name"><br>密码:<input type="password" name="password"><input type="submit" value="post"></form>
</body>
</html>

LoginServletTest设置数据到session作用域

@WebServlet("/loginTest")
public class LoginServletTest extends HttpServlet{@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {ServletContext servletContext = req.getServletContext();HttpSession session = req.getSession();req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=utf-8");String name = req.getParameter("name");String password = req.getParameter("password");if ( name.equals("zhangsan") && password.equals("123456") ) {session.setAttribute("name", "zhangsan");resp.sendRedirect("main.jsp");		//这里在WEB-INF外重定向可以访问} else {req.setAttribute("msg", "登录失败");// 需要访问另外一个servlet,把参数传进页面打印出来
//			req.getRequestDispatcher("/AAAServlet").forward(req, resp);req.getRequestDispatcher("login.jsp").forward(req, resp);}}
}

新建main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
恭喜你登录成功<%=session.getAttribute("name")%>
</body>
</html>

相关文章:

B033-Servlet交互 JSP

目录 ServletServlet的三大职责跳转&#xff1a;请求转发和重定向请求转发重定向汇总请求转发与重定向的区别用请求转发和重定向完善登录 JSP第一个JSP概述注释设置创建JSP文件默认字符编码集 JSP的java代码书写JSP的原理三大指令九大内置对象改造动态web工程进行示例内置对象名…...

Less 安装教程

文章目录 前言LESS的系统要求安装LESS例子输出Less编译css工具后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;Sass和Less &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板…...

Java研学-多线程

一 名词解析 1 线程 : 控制指定APP(进程)执行的最基本单元(最小单位) 2 进程 : 硬件设备上的每一个应用程序 3 单线程 : 一个进程中只有一个线程执行,实际上基本没有这种情况 4 多线程 : 一个进程中至少有两个或两个以上的线程在执行 二 创建方式 1 共有三种:Thread类. R…...

【日常总结】如何禁止浏览器 http自动跳转成https

一、场景 二、问题 三、解决方案 3.1 chrome 浏览器 3.2 edge 浏览器&#xff1a; 3.3 Safari 浏览器 3.4 Firefox 浏览器 3.5 Microsoft Edge 一、场景 公司网站 http:// 谷歌浏览器中自动转换成 https:// 导致无法访问 二、问题 nginx配置ssl 443接口&#xff0c; ht…...

文本转语音:微软语音合成标记语言 (SSML) 文本结构和事件

​ SSML 的语音服务实现基于万维网联合会的语音合成标记语言版本 1.0。 ​ 语音服务支持的元素可能与 W3C 标准不同。 每个 SSML 文档是使用 SSML 元素&#xff08;或标记&#xff09;创建的。 这些元素用于调整语音、风格、音节、韵律、音量等。 下面是 SSML 文档的基本结构…...

计算机网络之物理层(数据通信有关)

一、概述 1.1物理层引入的目的 屏蔽掉传输介质的多样性&#xff0c;导致数据传输方式的不同&#xff1b;物理层的引入使得高层看到的数据都是统一的0,1构成的比特流 1.2.物理层如何实现屏蔽 物理层靠定义的不同的通信协议&#xff08;一般称通信规程&#xff09; 这些协议…...

安卓开发之HTTP API服务接口设计(基于okhttp3请求)

安卓中的请求 OkHttp3 是一个开源的 Java/Android HTTP 客户端库,由 Square 公司开发。它提供了简洁和高效 的 API ,用于进行 HTTP 请求、处理响应以及与服务器进行通信。 以下是 OkHttp3 的一些主要特点和功能: 简单易用: OkHttp3 提供了简洁的 API ,使得发送 HTTP 请求变…...

我的第一次SACC之旅

今年有很多第一次&#xff0c;第一次作为“游客”参加DTCC&#xff08;中国数据库大会&#xff09;&#xff0c;第一次作为讲师参与ACDU中国行&#xff08;成都站&#xff09;&#xff0c;第一次参加OB年度发布会&#xff08;包含DBA老友会&#xff09;&#xff0c;而这次是第一…...

Codeforces Round 908 (Div. 2)

Codeforces Round 908 (Div. 2) 文章目录 Codeforces Round 908 (Div. 2)ABCD A 获取对战的最后一个即为胜者 #include <bits/stdc.h>using namespace std;void solve() {int n;cin >> n;string s;cin >> s;cout << s[n-1] << endl; }int main…...

Java实现-数据结构 2.时间和空间复杂度

.如何衡量一个算法的好坏&#xff1a;时间复杂度和空间复杂度 算法效率分为时间效率和空间效率&#xff0c;时间效率称为时间复杂度&#xff0c;空间效率称为空间复杂度 时间复杂度 算法的时间复杂度是一个数学函数&#xff0c;它描述了算法的运行时间&#xff0c;一个算法执…...

Docker exec命令

docker exec &#xff1a;在运行的容器中执行命令。 语法&#xff1a; docker exec [OPTIONS] CONTAINER COMMAND [ARG...]OPTIONS说明&#xff1a; -d&#xff1a;分离模式&#xff1a; 在后台运行 -i&#xff1a;即使没有附加也保持STDIN打开 -t&#xff1a;分配一个伪终…...

可燃气体监测仪助力燃气管网安全监测,效果一览

城市地下管线是指城市范围内供应水、排放水、燃气等各类管线及其附属设施&#xff0c;它们是保障城市正常运转的重要基础设施且影响着城市生命线。其中燃气引发的事故近些年不断增加&#xff0c;由于燃气管线深埋地下环境复杂&#xff0c;所以仅仅依赖人工巡查难以全面有效地防…...

Kafka(二)在WSL搭建Schema Registry

目录 1 Avro与Schema Registry2 搭建Schema Registry2.1 下载Confluent并解压2.2 设置环境变量2.3 修改配置2.4 启动服务 3 API列表 1 Avro与Schema Registry Apache Avro 是一种高效的数据序列化系统&#xff0c;用于在不同的应用程序和平台之间传输和存储数据。它提供了一种…...

webrtc AEC 线性滤波 PBFDAF(均匀分块频域自适应滤波)介绍

计算一个脉冲响应和输入信号的卷积&#xff0c;除了使用原始的时域卷积以外&#xff0c;还有如下方法&#xff1a; FFT卷积的方法&#xff1a;对输入信号&#xff08;长度M&#xff09;和脉冲响应&#xff08;长度N&#xff09;分别补零到K&#xff08;K>MN-1)&#xff0c;…...

开源vs闭源,处在大模型洪流中,向何处去?

文章目录 一、开源和闭源的优劣势比较1.1 开源优势1.2 闭源的优势 二、开源和闭源对大模型技术发展的影响2.1 数据共享2.2 算法创新2.3 业务拓展2.4 安全性和隐私2.5 社会责任和伦理 三、开源与闭源的商业模式比较3.1 盈利模式3.2 市场竞争3.3 用户生态3.4 创新速度 四&#xf…...

web前端之vue和echarts的堆叠柱状图顶部显示总数、鼠标悬浮工具提示、设置图例的显示与隐藏、label、legend、tooltip

MENU 效果图htmlJavaScripstyle解析 效果图 html <template><div><div><div id"idStackedColumnChart" style"width: 100%; height: 680px"></div></div></div> </template>JavaScrip export default {…...

Excel表中合并两个Sheet的方法?

按AltF11&#xff0c;调出Visual Basic 界面。 在左侧窗口中&#xff0c;右键选择“插入”—“模块”&#xff1a; 将如下代码粘贴进去&#xff0c;点击运行按钮&#xff0c;完成数据表合并。 Sub MergeAllSheetsInThisWorkbook() On Error Resume Next Application.ScreenU…...

1个10进制数转为2进制和转为8进制, 各位上数字后2进制的值与8进制的值相同的值有 1 8 9 64 问第23个值是多少?

1个10进制数转为2进制和转为8进制&#xff0c; 各位上数字后2进制的值与8进制的值相同的值有 1 8 9 64 问第23个值是多少&#xff1f; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include<cmath&g…...

27、Nuxt.js项目整合ElementUI组件库

参考element-ui官网安装组件库 项目中新建插件引入element-ui plugins\element-ui.js import Vue from vue; import ElementUI from element-ui;Vue.use(ElementUI);nuxt.config.js plugins: ["/plugins/element-ui.js"],build: {// 将位于 node_modules 目录下的…...

设计问卷调查问题的9大技巧!技巧1:明确目标与问题

我们在设计问卷调查时要考虑很多因素&#xff0c;其中问卷问题是需要关注的重要因素之一。有效的问题能够帮助我们获取到有用的信息&#xff0c;让问卷结论更准确。怎么设计问卷调查的问题呢&#xff1f;本文就为大家提供几个设计问题时的神仙技巧&#xff01; Tip1&#xff1…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...