当前位置:网站首页>Servlet and JSP final review examination site sorting 42 questions and 42 answers
Servlet and JSP final review examination site sorting 42 questions and 42 answers
2022-06-27 02:55:00 【Charlesix59】
JSP Examination site 42 ask 42 answer
JSP Servlet Introduce
How to create Sevlet Class and create Servlet Class in three ways
Realization Servlet Interface , Inherit GenericServlet class , Inherit HTTPServlet
How to sign up Servlet(web.xml And annotation methods )
xml The way
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>net.biancheng.www.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
Annotation method
@WebServlet("/MyServlet")
stay Servlet Get request parameters ( How to obtain a single value of a parameter and multiple values of a parameter )
public String getParameter(String paramName); // Get a parameter
public String[] getParameterVValues(String paramName); // Get multiple parameters
Servlet How it works
When Web The server received a HTTP When asked , It will judge the content of the request first —— If it's static web data ,Web The server will handle it by itself , And then generate response information ; If dynamic data is involved ,Web The server will forward the request to Servlet Containers . here Servlet The container will find the corresponding Servlet Instance to handle , The results will be sent back Web The server , Again by Web The server returns the client .
Servlet Life cycle approach 、 The function of each method 、 Number of calls, etc
GET and POST Differences in requests , about GET request , To rewrite doGet() Method , about POST request , To rewrite doPost() Method
GET | POST | |
---|---|---|
Back button / Refresh | harmless | The data will be resubmitted ( The browser should inform the user that the data will be resubmitted ). |
Bookmarks | Can be bookmarked | Can't be bookmarked |
cache | Can be cached | Can't cache |
The encoding type | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. Use multiple encoding for binary data . |
history | Parameters remain in browser history . | Parameters are not saved in browser history . |
Restrictions on data length | Yes . When sending data ,GET Method direction URL Add data ;URL The length of is limited (URL The maximum length of is 2048 Characters ). | unlimited . |
Restrictions on data types | Only ASCII character . | There is no limit to . Binary data is also allowed . |
Security | And POST comparison ,GET It's not safe , Because the data sent is URL Part of . Never use... When sending passwords or other sensitive information GET ! | POST Than GET More secure , Because parameters are not saved in browser history or web In the server log . |
visibility | The data is in URL China is visible to all . | The data will not be shown in URL in . |
Servlet API And thread model
ServletConfig Objects and ServletContext Use and comparison of objects
Use ServletContext Objects represent WEB Applications
- In a WEB In the application , There can only be one ServletContext object
- Every WEB Applications , All have their own counterparts ServeltContext object
- stay WEB When the container starts , For every one of them WEB The application creates a separate ServletContext object
- ServletContext It's the interface , The implementation class of this interface is Tomcat Provided by container
Web The container will provide Servlet Create a corresponding ServletConfig object ,ServletConfig It stands for Servlet The object that initializes the parameter .
obtain ServletConfig:
ServletConfigconfig=this.getServletConfig();
API
Method Return value describe getInitParameter String obtain WEB Initialization parameters for the application
Define and get context parameters and Servlet Is the initialization parameter of (web.xml How to define ,Servlet How to get )
obtain ServletContext
1. adopt ServletConfig Interface
// adopt ServletConfig Object acquisition
ServletConfigconfig=this.getServletConfig();
ServletContextcontext2=config.getServletContext();
2. By inheritance GenericServlet obtain
// obtain ServletContext object
ServletContextcontext=this.getServletContext();
Get initialization parameters
Definition :
<!-- To configure WEB Initialization parameters for the application -->
<context-param>
<param-name>bdit</param-name>
<param-value>java</param-value>
</context-param>
<context-param>
<param-name>version</param-name>
<param-value>V1.0</param-value>
</context-param>
obtain :
// obtain ServletContext object
ServletContextcontext=this.getServletContext();
// obtain WEB Initialization parameters for the application
Stringbdit=context.getInitParameter("bdit");
Stringversion=context.getInitParameter("version");
System.out.println(bdit);
System.out.println(version);
How to use the single thread model
Realization SingleThreadModel Interface
Manage sessions and handle errors
Four conversational techniques
- Hide form fields
- URL rewrite
- Cookie
- Session
Submit data using hidden fields
<input name="id" value="123" type="hidden"/>
How to use URL Rewrite the implementation to append parameters
url The advantage of rewriting is :
- To shorten the url, Hide the actual path to improve security
- Easy for users to remember and type .
- Easy to be included by search engines
Use steps
1. download jar urlrewritefilter
2. To configure web.xml
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<!--<init-param> <param-name>confReloadCheckInterval</param-name> <param-value>60</param-value> </init-param> <init-param> <param-name>confPath</param-name> <param-value>/WEB-INF/urlrewrite.xml</param-value> </init-param>-->
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
3. To configure urlrewrite.xml
<urlrewrite>
<rule>
<note>.../book/1234 instead of .../book.jsp?id=1234</note>
<from>/book/([0-9]+)$</from>
<to>/book.jsp?id=$1</to>
</rule>
</urlrewrite>
Realization Cookie: establish 、 Send and store 、 Delete and how to get Cookie
establish
public Cookie(String Name,String value)
send out
resp.addCookie(Cookie cookie);
Delete
Cookie cookie[] = req.getCookies();
obtain
cookie.setMaxAge(0);
Use Session Object to implement session management : How to get a session object 、 Add attribute 、 stay servlet and jsp Page get session properties .
Get objects
req,getSession();
get attribute
public Object getAttribute(String name)
add to
public void setAttribute(String name, Object value)
How to end a session
public void invalidate()
How to configure session timeout , The timeout is negative 、0、 What does a positive value mean , What are the units .
public int getMaxInactiveInterval()
// This method returns Servlet The container remains when accessed by the client session Maximum time interval between sessions opening , In seconds .
public void setMaxInactiveInterval(int interval)
// The method in Servlet Indicates the container session Before the session is invalid , Specify the time between client requests , In seconds .
negative : Never fail
0: Lapse immediately
Comes at a time :……
How to configure error pages for error codes and exception types
<error-page>
<exception-type>java.lang.Throwable</exception-type >
<location>/ErrorHandler</location>
</error-page>
How to send a custom error status code : call sendError() Method
public void sendError(int status);
public void sendError(int status,String message);
Common status codes ( Three position numeric code and constant name ):200、400、404、410、500 etc.
Code | news | describe |
---|---|---|
100 | Continue | Only part of the request has been received by the server , But as long as it's not rejected , The client should continue the request . |
101 | Switching Protocols | Server switching protocol . |
200 | OK | The request is successful . |
201 | Created | The request is complete , And create a new resource . |
202 | Accepted | The request was accepted for processing , But the process is incomplete . |
203 | Non-authoritative Information | |
204 | No Content | |
205 | Reset Content | |
206 | Partial Content | |
300 | Multiple Choices | Link list . Users can choose a link , Enter this position . Up to five addresses . |
301 | Moved Permanently | The requested page has been transferred to a new one URL. |
302 | Found | The requested page has been temporarily transferred to a new one URL. |
303 | See Other | The requested page can be on a different page URL Next found . |
304 | Not Modified | |
305 | Use Proxy | |
306 | Unused | Use this code in previous versions . It is no longer used , But the code remains . |
307 | Temporary Redirect | The requested page has been temporarily transferred to a new one URL. |
400 | Bad Request | The server does not understand the request . |
401 | Unauthorized | The requested page requires a user name and password . |
402 | Payment Required | You cannot use this code yet . |
403 | Forbidden | Disable access to the requested page . |
404 | Not Found | The server could not find the requested page .. |
405 | Method Not Allowed | The method specified in the request is not allowed . |
406 | Not Acceptable | The server only generates a response that is not accepted by the client . |
407 | Proxy Authentication Required | Before the request is delivered , You must use proxy authentication . |
408 | Request Timeout | The request takes longer than the server can wait , Overtime . |
409 | Conflict | The request could not be completed because of a conflict . |
410 | Gone | The requested page is no longer available . |
411 | Length Required | “Content-Length” Undefined . The server cannot process the client sent without band Content-Length Request information for . |
412 | Precondition Failed | The prerequisites given in the request are evaluated by the server as false. |
413 | Request Entity Too Large | The server does not accept the request , Because the request entity is too large . |
414 | Request-url Too Long | The server does not accept the request , because URL Too long . When you convert a “post” The request is a... With long query information “get” Occurs when a request is made . |
415 | Unsupported Media Type | The server does not accept the request , Because the media type is not supported . |
417 | Expectation Failed | |
500 | Internal Server Error | An unfinished request . The server encountered an unexpected situation . |
501 | Not Implemented | An unfinished request . The server does not support the required functionality . |
502 | Bad Gateway | An unfinished request . The server received an invalid response from the upstream server . |
503 | Service Unavailable | An unfinished request . Server temporarily overloaded or crashed . |
504 | Gateway Timeout | gateway timeout . |
505 | HTTP Version Not Supported | Server does not support "HTTP agreement " edition . |
Servlet Communication between 、 Filters and monitors
Understanding filters
servlet A filter is a method of intercepting requests and corresponding objects between a client and a server . Filters can be modified Web The header and content of the request sent by the client , And forward it to the target servlet.
advantage :
- Request identification
- Request to intercept
- Validate users
- Type conversion
- Resource communication
Implement filters : establish 、 Register and use filters , And the legality of the filter url Pattern
void init(FilterConfig config);// Used to complete Filter The initialization .
void destory();// be used for Filter Before destruction , Complete the recycling of certain resources .
void doFilter(ServletRequest request,ServletResponse response,FilterChain chain);// Realize filtering function
Deploy :
filter
<filter> <display-name></display-name> <!-- 0 or 1 individual --> <description></description> <!-- 0 or 1 individual --> <icon> <!-- 0 or 1 individual --> <small-icon></small-icon> <!-- 0 or 1 individual --> <large-icon></large-icon> <!-- 0 or 1 individual --> </icon> <filter-name></filter-name> <!-- 1 individual --> <filter-class></filter-class> <!-- 1 individual --> <init-param> <!-- 0 Or more --> <description></description> <!-- 0 or 1 individual --> <param-name></param-name> <!-- 1 individual --> <param-value></param-value> <!-- 1 individual --> </init-param> </filter>
filterMapping
<filter-mapping> <!-- 1 Or more --> <filter-name></filter-name> <!-- 1 individual --> <url-pattern></url-pattern> <!-- <url-pattern> and <servlet-name> Choose any one --> <servlet-name></servlet-name> <dispatcher></dispatcher> <!-- 0 Or more --> </filter-mapping>
The characteristics and differences between request forwarding and response redirection , And how to implement redirection and request forwarding
Request forwarding (RequestDispatcher): After the server receives the request , Jump from one resource to another .
Response redirection (Redirect): The client sends a request to the server , Then the server sends the redirected status code to the client , At the same time, the client re requests the specified address from the server .
Request forwarding RequestDispatcher | Response redirection Redirect |
---|---|
The browser address bar does not change , It will not become the destination address | The browser address bar has changed , Become the destination address |
Request forwarding is the behavior of the server , The whole forwarding process is completed in the server | Redirection is the behavior of the browser , By responding to objects HttpServletResponse To execute |
The whole process is a request , One response | The whole process is two requests , Two responses |
All resources are shared Request Data in domain | Do not share Request Data in domain |
It can be forwarded to WEB-INF Under the table of contents | Cannot access WEB-INF Directory of resources |
You cannot access resources outside the project | You can access resources outside the project |
Response redirection 、forward In forwarding and include Forwarding features and differences ,sendRedirect() and forward() as well as include() Method path writing .
- RequestDispatcher
- forward: Do not include the contents of the original page , The same request , Jump to the new 、 Separate pages , The address remains the same
- include: Contains the contents of the original page , The same request , Or the original page , It includes something new , The address remains the same
- Redirect
- redirect: Do not include the contents of the original page , Different requests , Jump to the new 、 Separate pages , Address change
ServletContextListener: Implementing this interface creates a context listener , Listen for the creation of context objects ( Or initialize ) And destroy , That is, the start and stop of the program .
in web.xml
<listener>
<listener-class>ServletContextTest.ServletContextLTest</listener-class>
</listener>
java
public class ServletContextLTest implements ServletContextListener{
// Implement the destruction function
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("this is last destroyeed");
}
// Implement the initialization function , When an event occurs, it triggers
public void contextInitialized(ServletContextEvent sce) {
System.out.println("======listener test is beginning=========");
}
}
JSP Introduce
JSP working principle : The first request is converted to Servlet, And compile , Subsequent requests will not be converted and compiled .
jspInit();//servlet Call... On initialization
jspService();// Called when a request is received
jspDestroy();// Remove... From the service servlet Previous call
JSP Implicit objects : What implicit objects are there , And how the four domain objects add and get attributes .
SP The implicit object is JSP The container provides for each page Java object , Developers can use them directly without explicitly declaring .JSP Implicit objects are also called predefined variables .
JSP The nine implicit objects supported :
object | describe |
---|---|
request | HttpServletRequest An instance of an interface .request Object provides a series of methods to get HTTP Header information ,cookies,HTTP Methods, etc. . |
response | HttpServletResponse An instance of an interface .response Object also defines the process HTTP Interface of head module . Through this object , Developers can add new cookies, Time stamp ,HTTP Status codes, etc . |
out | JspWriter Class , Used to output the results to the web page . |
session | HttpSession Class . |
application | ServletContext Class , Related to the application context . |
config | ServletConfig Class . |
pageContext | PageContext Class , Provide right JSP Access to all objects and namespaces on the page . |
page | Be similar to Java Class this keyword . |
Exception | Exception Class object , It means something is wrong JSP The corresponding exception object in the page . |
Four domain objects :
Class name | domain name | function |
---|---|---|
ServletContext | context Domain | Save... On the entire server , All users can use . Invalid after restarting the server JSP Built-in objects |
HttpSession | session Domain | Once again, the session is valid . Server jump 、 Client jumps are valid . Closing and reopening the web page is invalid |
HttpServletRequet | request Domain | Valid only in one request , Valid after server jump . Invalid client hop |
PageContext | page Domain | Save properties in only one page . No effect after jump . |
application.setAttribute("application","application");
session.setAttribute("session","session");
request.setAttribute("request","request");
pageContext.setAttribute("pageContext","pageContext");
application.getAttribute("application");
session.getAttribute("session");
request.getAttribute("request");
pageContext.getAttribute("pageContext");
JSP Script elements : expression 、Scriptlet( Code segment ) And the statement
<%!
int a=0;
String s="w31q2";
// Statement : Define variables and methods
%>
<%= expression %>
<%-- expression : Insert values directly into the output --%>
<%
// direct writing Java Code
%>
Custom tags
How to create a custom tag , Including empty tags and tags with attributes
public class ClassName extends BodyTagSupport{
int doAfterBody()
int doEndTag()
void doInitBody()
int doStartTag()
BodyContent getBodyContent()
JspWriter getPreviousOut()
void release()
void setBodyContent(BodyContent b)
}
TLD How to describe tag library and tag and tag attributes in the file
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!—XML And its character set -->
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<!— Document type definition -->
<taglib>
<!— This tag indicates that we are beginning to describe a tag library -->
<tlibversion>1.0</tlibversion>
<!— The version of the tag library -->
<jspversion>1.1</jspversion>
<!— What is used JSP Version of -->
<shortname>tagclass</shortname>
<!— Default name -->
<tag>
<name>login</name>
<!— The name of the tag -->
<tagclass>
tagclass.login.login
<!— Deal with this Tag The name of the corresponding class of -->
</tagclass>
<info>
<!— Description of this marker -->
</info>
<attribute>
<!— Start defining tag attributes -->
<name>height</name>
<!— Name of property -->
<required>true</required>
<!— Indicates whether this attribute is required -->
<rtexprvalue>true</rtexprvalue>
<!— Indicates whether this attribute can be used JSP The result output of the program segment -->
</attribute>
<attribute>
<name>width</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
stay JSP Pages introduce tag libraries and use tags
<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
<%@ taglib uri="/tlds/taglib.tld" prefix="tagclass" %>
<html>
<head>
<title>login</title>
</head>
<body>
<tagclass:login width="200" height= "100" >
</tagclass:login>
</body>
</html>
doStartTag()、doAfterBody() Methods and doEndTag() Return value of method
How to use markup files / Label files create custom tags , How to use a custom tag after creating it
In the catalog :’Web The server \WEB-INF\tags‘ Create and store xxx.tag Of tag file
wel.tag
<%@ tag language="java" pageEncoding="UTF-8"%>
<p> This is a Tag file , Responsible for calculation 1~100 The sum of odd numbers in :</p>
<%-- Write properties here --%>
<%@attribute name="message" required="true" %>
<h3>{message}<h3>
.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!--
Use <taglib> The instruction tag introduces the Web Tag library under service directory , That's the only way ,JSP Pages can be used Tag The tag invokes the corresponding Tag file .<taglib> The format of the instruction is as follows :
<%@ taglib tagdir=" Custom tag library location " prefix=" Prefix ">
-->
<%@taglib tagdir="/WEB-INF/tags" prefix="my" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body bgcolor="cyan">
<h3> Here is the call Tag The effect of the document :</h3>
<my:/>
</body>
</html>
<jsp:doBody> The function of action
doBody
Action elements can only be used in tag file
Use in , It is used to call the contents of the tag body of a tag
doBody
Action elements can also have attributes . you You can use these attributes to specify a variable to receive the contents of the label body , If you do not use these instructions , that **doBody
The action element will write the contents of the tag body to JSP
Page JspWriter
On **.
attribute | describe |
---|---|
var | The variable value used to save the contents of the label body , The contents of the label body will be marked with java.lang.String Type saved to this var In variables .var and varReader Only one property can appear |
varReader | The variable value used to save the contents of the label body , The contents of the label body will be marked with java.io.Reader Type saved to this varReader In variables .var and varReader Only one property can appear |
scope | Scope to which the variable is saved |
Design patterns and JDBC API Introduce
understand Dao Design patterns
Dao Patterns combine object persistence with database access logic or persistence mechanisms API Separate . This design pattern allows you to modify the database access code at any time without modifying the application code
understand MVC Design patterns : Full name 、 Each component and its role
The model layer (Model): An object model abstracted from the real world , It is the reaction of applied logic ; It encapsulates data and operations on data , It is the place where data processing is actually carried out ( The model layer interacts with the database )
View layer (View): It is the interface between application and user , It is responsible for displaying the application to the user and Displays the status of the model .
controller (Controller): The controller is responsible for the interaction between the view and the model , Controls the response to user input 、 Response mode and process ; It's mainly responsible for two aspects of movement , One is to distribute the user's request to the corresponding model , Second, model changes should be reflected in the view in a timely manner .
Develop scriptless JSP page
Use EL Expression to get request parameters
${request.param}
Use EL Expression acquisition Cookie Value
${cookie.param.value}
Use EL Expression to get context parameters
${context.param}
EL How expressions handle null values
General situation : As “”
Arithmetic expressions : As 0
Logical expression : As false
Usage function EL Expression to get the attribute in the domain object
EL The expression will be based on id Go to User Class to find this id Of get Method , At this time, it will automatically id Capitalize and add get Prefix , Once you find a way to match it ,El The expression will think that this is the attribute to be accessed , And return the value of the property .
JSTL Core tag library :c:set, c:if, c:when, c:choose, c:otherwise, c:forEach Tag usage and attributes .
c:set
<c:set
var="<string>"
value="<string>"
target="<string>"
property="<string>"
scope="<string>"/>
<c:set> Tags have the following properties :
attribute | describe | Is it necessary? | The default value is |
---|---|---|---|
value | Value to store | no | The content of the subject |
target | The object to which the property to modify belongs | no | nothing |
property | Properties to modify | no | nothing |
var | Variables that store information | no | nothing |
scope | var The scope of the property | no | Page |
c:if
<c:if test="<boolean>" var="<string>" scope="<string>">
...
</c:if>
<c:if> Tags have the following properties :
attribute | describe | Is it necessary? | The default value is |
---|---|---|---|
test | Conditions | yes | nothing |
var | Variables used to store conditional results | no | nothing |
scope | var The scope of the property | no | page |
c:when && c:choose $$ c:otherwish
<c:choose>
<c:when test="<boolean>">
...
</c:when>
<c:when test="<boolean>">
...
</c:when>
...
...
<c:otherwise>
...
</c:otherwise>
</c:choose>
<c:when> The attributes of the tag are as follows :
attribute | describe | Is it necessary? | The default value is |
---|---|---|---|
test | Conditions | yes | nothing |
c:forEach
<c:forEach
items="<object>"
begin="<int>"
end="<int>"
step="<int>"
var="<string>"
varStatus="<string>">
<c:forEach> Tags have the following properties :
attribute | describe | Is it necessary? | The default value is |
---|---|---|---|
items | Information to be recycled | no | nothing |
begin | The starting element (0= First element ,1= The second element ) | no | 0 |
end | The last element (0= First element ,1= The second element ) | no | Last element |
step | Step length of each iteration | no | 1 |
var | Represents the variable name of the current entry | no | nothing |
varStatus | The name of the variable that represents the state of the loop | no | nothing |
JSTL Formatting common tags for tag libraries :formatNumber
<fmt:formatNumber
value="<string>"
type="<string>"
pattern="<string>"
currencyCode="<string>"
currencySymbol="<string>"
groupingUsed="<string>"
maxIntegerDigits="<string>"
minIntegerDigits="<string>"
maxFractionDigits="<string>"
minFractionDigits="<string>"
var="<string>"
scope="<string>"/>
fmt:formatNumber Tags have the following properties :
attribute | describe | Is it necessary? | The default value is |
---|---|---|---|
value | Number to display | yes | nothing |
type | NUMBER,CURRENCY, or PERCENT type | no | Number |
pattern | Specify a custom format to use with output | no | nothing |
currencyCode | Currency code ( When type="currency" when ) | no | Depending on the default area |
currencySymbol | Currency symbols ( When type="currency" when ) | no | Depending on the default area |
groupingUsed | Whether to group numbers (TRUE or FALSE) | no | true |
maxIntegerDigits | The largest number of integers | no | nothing |
minIntegerDigits | The smallest number of integers | no | nothing |
maxFractionDigits | The largest number of digits after the decimal point | no | nothing |
minFractionDigits | The smallest number of digits after the decimal point | no | nothing |
var | Variables that store formatted numbers | no | Print to page |
scope | var The scope of the property | no | page |
边栏推荐
- QIngScan使用
- Summer planning for the long river
- Pat grade a 1018 public bike management
- Flink学习3:数据处理模式(流批处理)
- Precautions for using sneakemake
- C language -- Design of employee information management system
- Pat class a 1024 palindromic number
- Learn Tai Chi maker mqtt (IX) esp8266 subscribe to and publish mqtt messages at the same time
- How to solve the problem of low applet utilization
- SQLite reader plug-in tests SQLite syntax
猜你喜欢
Uni-app 之uParse 富文本解析 完美解析富文本!
pytorch 22 8种Dropout方法的简介 及 基于Dropout用4行代码快速实现DropBlock
Record the method of reading excel provided by unity and the solution to some pits encountered
I earned 3W yuan a month from my sideline: the industry you despise really makes money!
pytorch_ grad_ Cam -- visual Library of class activation mapping (CAM) under pytorch
Super détaillé, 20 000 caractères détaillés, mangez à travers es!
学习太极创客 — MQTT(七)MQTT 主题进阶
Hot discussion: what are you doing for a meaningless job with a monthly salary of 18000?
Is the division of each capability domain of Dama, dcmm and other data management frameworks reasonable? Is there internal logic?
Summer planning for the long river
随机推荐
TP5 Spreadsheet Excle 表格导出
Logarithm
TopoLVM: 基于LVM的Kubernetes本地持久化方案,容量感知,动态创建PV,轻松使用本地磁盘
Super détaillé, 20 000 caractères détaillés, mangez à travers es!
Shell script series (1) getting started
Docker deploy redis cluster
Flink學習2:應用場景
ConstraintLayout(约束布局)开发指南
ESP8266
Getting started with Scala_ Immutable list and variable list
Parameter estimation -- Chapter 7 study report of probability theory and mathematical statistics (point estimation)
Pat grade a 1019 general palindromic number
lodash get js代码实现
PAT甲级 1021 Deepest Root
P5.js death planet
PAT甲级 1025 PAT Ranking
Flink学习4:flink技术栈
Pat grade a 1020 tree Traversals
Mmdetection uses yolox to train its own coco data set
Summer planning for the long river