`
jinvasshole
  • 浏览: 777129 次
文章分类
社区版块
存档分类
最新评论

JSP的内置对象及方法

 
阅读更多
JSP的内置对象及方法

1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
1 object getAttribute(String name) 返回指定属性的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名的枚举
3 String getCharacterEncoding() 返回字符编码方式
4 int getContentLength() 返回请求体的长度(以字节数)
5 String getContentType() 得到请求体的MIME类型
6 ServletInputStream getInputStream() 得到请求体中一行的二进制流
7 String getParameter(String name) 返回name指定参数的参数值
8 Enumeration getParameterNames() 返回可用参数名的枚举
9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组
10 String getProtocol() 返回请求用的协议类型及版本号
11 String getScheme() 返回请求用的计划名,如:http.https及ftp等
12 String getServerName() 返回接受请求的服务器主机名
13 int getServerPort() 返回服务器接受此请求所用的端口号
14 BufferedReader getReader() 返回解码过了的请求体
15 String getRemoteAddr() 返回发送此请求的客户端IP地址
16 String getRemoteHost() 返回发送此请求的客户端主机名
17 void setAttribute(String key,Object obj) 设置属性的属性值
18 String getRealPath(String path) 返回一虚拟路径的真实路径

2.response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
1 String getCharacterEncoding() 返回响应用的是何种字符编码
2 ServletOutputStream getOutputStream() 返回响应的一个二进制输出流
3 PrintWriter getWriter() 返回可以向客户端输出字符的一个对象
4 void setContentLength(int len) 设置响应头长度
5 void setContentType(String type) 设置响应的MIME类型
6 sendRedirect(java.lang.String location) 重新定向客户端的请求

3.session对象
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
1 long getCreationTime() 返回SESSION创建时间
2 public String getId() 返回SESSION创建时JSP引擎为它设的惟一ID号
3 long getLastAccessedTime() 返回此SESSION里客户端最近一次请求时间
4 int getMaxInactiveInterval() 返回两次请求间隔多长时间此SESSION被取消(ms)
5 String[] getValueNames() 返回一个包含此SESSION中所有可用属性的数组
6 void invalidate() 取消SESSION,使SESSION不可用
7 boolean isNew() 返回服务器创建的一个SESSION,客户端是否已经加入
8 void removeValue(String name) 删除SESSION中指定的属性
9 void setMaxInactiveInterval() 设置两次请求间隔多长时间此SESSION被取消(ms)

4.out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
1 void clear() 清除缓冲区的内容
2 void clearBuffer() 清除缓冲区的当前内容
3 void flush() 清空流
4 int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为0
5 int getRemaining() 返回缓冲区还剩余多少可用
6 boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常
7 void close() 关闭输出流

5.page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
1 class getClass 返回此Object的类
2 int hashCode() 返回此Object的hash码
3 boolean equals(Object obj) 判断此Object是否与指定的Object对象相等
4 void copy(Object obj) 把此Object拷贝到指定的Object对象中
5 Object clone() 克隆此Object对象
6 String toString() 把此Object对象转换成String类的对象
7 void notify() 唤醒一个等待的线程
8 void notifyAll() 唤醒所有等待的线程
9 void wait(int timeout) 使一个线程处于等待直到timeout结束或被唤醒
10 void wait() 使一个线程处于等待直到被唤醒
11 void enterMonitor() 对Object加锁
12 void exitMonitor() 对Object开锁

6.application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
1 Object getAttribute(String name) 返回给定名的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名的枚举
3 void setAttribute(String name,Object obj) 设定属性的属性值
4 void removeAttribute(String name) 删除一属性及其属性值
5 String getServerInfo() 返回JSP(SERVLET)引擎名及版本号
6 String getRealPath(String path) 返回一虚拟路径的真实路径
7 ServletContext getContext(String uripath) 返回指定WebApplication的application对象
8 int getMajorVersion() 返回服务器支持的Servlet API的最大版本号
9 int getMinorVersion() 返回服务器支持的Servlet API的最大版本号
10 String getMimeType(String file) 返回指定文件的MIME类型
11 URL getResource(String path) 返回指定资源(文件及目录)的URL路径
12 InputStream getResourceAsStream(String path) 返回指定资源的输入流
13 RequestDispatcher getRequestDispatcher(String uripath) 返回指定资源的RequestDispatcher对象
14 Servlet getServlet(String name) 返回指定名的Servlet
15 Enumeration getServlets() 返回所有Servlet的枚举
16 Enumeration getServletNames() 返回所有Servlet名的枚举
17 void log(String msg) 把指定消息写入Servlet的日志文件
18 void log(Exception exception,String msg) 把指定异常的栈轨迹及错误消息写入Servlet的日志文件
19 void log(String msg,Throwable throwable) 把栈轨迹及给出的Throwable异常的说明信息 写入Servlet的日志文件

7.exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
1 String getMessage() 返回描述异常的消息
2 String toString() 返回关于异常的简短描述消息
3 void printStackTrace() 显示异常及其栈轨迹
4 Throwable FillInStackTrace() 重写异常的执行栈轨迹

8.pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。
1 JspWriter getOut() 返回当前客户端响应被使用的JspWriter流(out)
2 HttpSession getSession() 返回当前页中的HttpSession对象(session)
3 Object getPage() 返回当前页的Object对象(page)
4 ServletRequest getRequest() 返回当前页的ServletRequest对象(request)
5 ServletResponse getResponse() 返回当前页的ServletResponse对象(response)
6 Exception getException() 返回当前页的Exception对象(exception)
7 ServletConfig getServletConfig() 返回当前页的ServletConfig对象(config)
8 ServletContext getServletContext() 返回当前页的ServletContext对象(application)
9 void setAttribute(String name,Object attribute) 设置属性及属性值
10 void setAttribute(String name,Object obj,int scope) 在指定范围内设置属性及属性值
11 public Object getAttribute(String name) 取属性的值
12 Object getAttribute(String name,int scope) 在指定范围内取属性的值
13 public Object findAttribute(String name) 寻找一属性,返回起属性值或NULL
14 void removeAttribute(String name) 删除某属性
15 void removeAttribute(String name,int scope) 在指定范围删除某属性
16 int getAttributeScope(String name) 返回某属性的作用范围
17 Enumeration getAttributeNamesInScope(int scope) 返回指定范围内可用的属性名枚举
18 void release() 释放pageContext所占用的资源
19 void forward(String relativeUrlPath) 使当前页面重导到另一页面
20 void include(String relativeUrlPath) 在当前位置包含另一文件

9.config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
1 ServletContext getServletContext() 返回含有服务器相关信息的ServletContext对象
2 String getInitParameter(String name) 返回初始化参数的值
3 Enumeration getInitParameterNames() 返回Servlet初始化所需所有参数的枚举

一 Servlet
1、Servlet、ServletConfig:前者对应一个Servlet类,后者对应的是在web.xml中的配置信息
(1)Servlet:
init(ServletConfig):只再类加载并实例化后会被调用一次。
service(ServletRequest,ServletResponse):会被调用多次
destroy():只有一次
getServletConfig()
getServletInfo()
(2)ServletCionfig
getServletName()
getInitParameter(String):---<servlet><init-param></init-param></servlet>
getInitParameterNames():
getServletContext
注意ServletContext中也有getInitParameter(String),它对应的是:<context-param>中嵌套的元素
这个<context-param>和<servlet>标签是同级别的,初始化的是整个应用程序

2、两个类:
GenericServlet/HttpServlet:
GenericServlet实现Servlet和ServletConfig,HttpServlet继承自GenericServlet,而且它是和HTTP协议相关的。
(1)GenericServlet:具有一个无参的init方法,方便子类的覆盖。
(2)HttpServlet:具有两个service方法,并且有7个do方法。重写的时候一般重写do方法

3、Servlet配置
指的是web.xml中的信息,
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
<init-param></init-param>
</servlet>
//上面的配置对应的可以说就是ServletConfig中的东西
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>

4、WEB应用程序文件夹的结构
--WEB-INF
|
|------------web.xml
|------------lib文件夹 JAR文件
|------------classes 类文件
|------------tags TagFile标签文件
--静态资源与JSP文件

5、请求和响应:
(1)请求ServletRequest->HttpServletRequest
getParameter(String)、
getHeader()、
getParameterValues(String)、用于复选框
getParameterNames、
getRemoteAddr、得到远程地址
getLocalAddr、得到本地地址
getLocale、得到本地化信息
getSession/getCookies
getRequestDispatcher

(2)响应ServletResponse->HttpServletResponse
sendRedirect
sendError
setHeader/addHeader/setIntHeader
getWriter/getOutputStream :这两个方法绝对不可以同时被调用!!!!!
setContentType/setCharacterEncoding

6、请求的转发和响应的重定向之间的区别要搞清楚
(1)转发:
A、三种转发的方法:
RequestDispatcher.forward/include
<jsp:include>
<jsp:forward> 等价于RequestDispatcher.forward();return;
也就是说使用RequestDispatcher.forward()后,下面的代码仍然要执行,但是<jsp:forward>执行后,下面的代码就不执行了。
pageContext.forward/include
B、如何得到RequestDispatcher:
request.getRequestDispatcher
ServletContext.getRequestDispatcher

RequestDispatcher的请求转发、Jsp页面中指令元素include、以及ServletContext中的getResourceAsStream(String path)
(用来读出文件夹中的路径资源)都可以访问WEB-INF文件夹,
比如为了防止用户访问一些受保护的页面(比如控制器Servlet),把它们放到WEB-INF中去,请求转发的时候可以去访问。
有的时候需要读取WEB-INF中的一些配置资源,需要ServletContext中的getResourceAsStream方法。
而且有的网站的各个页面具有相同的头图片和尾图片,这些东东就可以放到WEB-INF文件夹中用page元素的include指令来包含进来。

注意如果使用ServletContext的RequestDispatcher,要从A应用程序转发请求到B,必须设定A的crossContext值为true!

(2)重定向
response.sendRedirect:比如在注册结束后转到下一个页面的时候,一定要使用重定向改变浏览器的URL地址!
请求的转发不可能脱离Tomcat服务器的范围,如果想要脱离本服务器的话,只能通过响应重定向的方式。重定向要生成一个临时的响应,(响应
一旦生成请求就结束了)浏览器接到这个临时的响应后不显示任何东西而是发送请求去找新的地址。


二、JSP
1、模板和元素:
对于JSP来说,它是不可执行的,必须翻译成Servlet才能执行,必须要容器特殊处理的叫做元素,
直接打印到输出流中去的是模板

元素分为以下几种:
1脚本元素
2指令元素
3动作元素

1脚本元素:
(1)脚本片断:翻译后原封不动的放到service方法里面
(2)脚本声明:放在类里面,但是是在service方法外面,
(3)脚本表达式:原封不动的放到out.print里面去,脚本表达式不可以加分号。

内置对象绝对不可以在脚本声明中去用!因为它们的作用是在service方法里面的。

2指令元素:
Page指令:
include指令<%@include file=""%>,包含的这个文件一定是按照纯文本的格式去读取,读取文件的时候就有编码的问题,这时候就是pageEncoding
的设置问题了。
taglib指令

3页面乱码:pageEncoding/contentType
前者设置jsp页面读取的形式,后者设置一个响应的报头,告诉浏览器以什么编码格式去显示
如果没有设置pageEncoding而是只设置了contentType的话,那么pageEncoding要受contentType影响,反之亦然。
也就是两者只设一者的话都会按照一个编码去显示!

无论请求还是响应,递交的时候默认都是按照iso-8859-1去解码的。一定要保证读写和显示时候的编码都是一致的

4 动作元素:
<jsp:useBean>:主要作用:开放一个脚本变量并且向作用域里面存一个属性
<jsp:setProperty>
<jsp:getProperty>
<jsp:forward>
<jsp:include>
<jsp:param>
前六个比较重要!
<jsp:invoke>
<jsp:doBody>
<jsp:plugin>
<jsp:fallback>
<jsp:params>

三、过滤器和监听器
1、Filter/FilterConfig
init(FilterConfig)
doFilter(ServletRequest,ServletResponse,FilterChain)
destroy()

<filter>
<filter-name>
<filter-class>
</filter>

<filter-mapping>
<filter-name>
<url-pattern>|<servlet-name>
</filter-mapping>

url-pattern相同的过滤器处于一个过滤器链上,执行的顺序完全按照web.xml中的先后顺序进行。

2、监听器->ServletContext/HttpSession/ServletRequest
(1)生命周期
ServletContextListener:初始化(从BBS中读取全部讨论区并存储在应用程序的作用域中或是将全部封杀的IP读出来存储)和销毁
HttpSessionListener/HttpSessionActivationListener
ServletRequestListener
(2)属性的增删改
一般是AttributeListener去作的
<listener>
<listener-class>包名.类名</listener-class>
</listener>

四、四个作用域和九个内置对象
1、页面作用域对应的是pageContext,而不是page
2、内置对象:
pageContext/request/session/application
out->是JspWriter的实例,它有缓存,而PrintWriter没有缓存,在页面结束的时候一定会通过响应生成PrintWriter去写出缓存的内容!
如果缓存满了的话,要看:如果<%@page autoFlush="true"%>,则会自动刷新,如果是false,会抛出异常的!response.getWriter()
返回的是PrintWriter,不是JspWriter。
exception->isErrorPage=true的时候才有用
session:两种跟踪机制:一种是通过客户端的cookie存储,另外一种是将sessionId存在服务器端,
config->ServletConfig
page->Object->this
response:

五、EL表达式语言:
${}
1、常量、函数、变量的表达式
2、变量是存储在某一作用域中的同名的属性值
3、函数是在tld文件中声明的引用一个类的公共且静态的方法
4、11个内置对象
(1)作用域:pageScope/requestScope/sessionScope/applicationScope
(2)和页面通信:pageContext
(3)请求参数的:param/paramValues
(4)报头:header/headerValues
(5)Cookies/initParam ---<context-param>
5、点操作符和[]操作符和empty
对javaBean,是调用getter方法,
对map,是调用get(Object)方法,
对作用域,是调用getAttribute(String)
对pageContext,也是调用getter方法,可以得到所有的内置对象
对param,是去取得参数
对header,是去拿报头
对initParam,是去拿初始化参数
[]操作符主要是针对数组


六 自定义标签
1、Tag接口(传统接口系列)

JspTag
(1)Tag : doStartTag(返回值是SKIP_BODY/EVAL_BODY_INCLUDE)/doEndTag(返回SKIP_PAGE或是EVAL_PAGE)
(2)IterationTag->TagSupport
doAfterBody:EVAL_BODY_AGAIN/SKIP_BODY
(3)BodyTag->BodyTagSupport
doInitBody
doAfterBody:EVAL_BODY_BUFFERED->BodyContent:pageContext里面有一个pushBody,用来将体包起来,这时候再用getOut方法得到
的不再是JspWriter了,而是bodyContent了。BodyContent的生成是调用了pushBody方法,这里面又涉及一个getEnclosingWriter(),它
是BodyContent的一个方法,可以得到它里面包的输出流JspWriter,但是要注意要是进行了一次以上的pushBody但是没有进行popBody的话,那么
拿出来的就是里面包的BodyContent了,但是由于BodyContent是JspWriter的子类,所以也是符合方法声明的


2、SimpleTag接口(简单接口系列)
setJspContext()
setParent()
setJspBody(JspFragment) 注意JspFragment是标签体,里面绝对不可以有脚本元素的!注册的时候content元素中要么设置为empty,
要么设置为scriptless,也就是简单标签的标签体是不可以有脚本元素的!
doTag()

JspFragment.invoke(null):直接弄到输出流中去
JspFragment.invoke(StringWriter out):将输出流弄到StringWriter中去,然后调用out.toString可以将体变成字符串的形式

3、Tag File标签文件
.tag
可以放在/WEB-INF/tags里面或者/META-INF/tags里面也可以
至于标签文件的tld可以放在WEB-INF中也可以放在META-INF中去,都是没有问题的
标签文件描述的是标签处理类,jsp描述的是Servlet,二者都是不可运行的,注意标签文件中有<%@tag%>,里面可以设置不少标签的属性
还有<%@attribute %>,<%@taglib%>和<%@include%>也可以用,属性可以是JspFragment

比如:<my:first>
<jsp:attribute>
</jsp:attribute>
<jsp:body>
</jsp:body>
</my:first>

<jsp:invoke name=var>运算结果就放在了var里面
<jsp:doBody> 处理体

七、JSTL
一共5个库,我们说了core、sql、i18n、fn标记库(就是表达式语言的函数库)
我们没有讲xml的标签库

八、国际化与汉字的编码
ResourceBundle
两种形式:
1、ListResourceBundle
2、写一个Properties文件,里面有一个nativetoacsii命令进行,参照前面的笔记转码
基名和扩展名:起名字都是要有标准的
Locale:本地化对象
getBundle方法可以通过传入基名和本地化对象来处理
<fmt:bundle>
<fmt:setBundle>
<fmt:message>
汉字编码:GB2312/GB13000(GBK)/GB18030
Unicode UCS/UTF-8



分享到:
评论

相关推荐

    患者发生输液反应的应急预案及护理流程(医院护理资料).docx

    患者发生输液反应的应急预案及护理流程(医院护理资料).docx

    chromedriver-win64_121.0.6105.0.zip

    chromedriver-win64_121.0.6105.0.zip

    chromedriver-win64_120.0.6099.35.zip

    chromedriver-win64_120.0.6099.35.zip

    php+sql成绩查询系统(系统+论文+答辩PPT).zip

    php+sql成绩查询系统(系统+论文+答辩PPT).zip

    这是一个使用java开发的简单帝国古典象棋游戏.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    医院骨科资料:关节镜患者健康教育.docx

    医院骨科资料:关节镜患者健康教育.docx

    chromedriver-win64_121.0.6139.0.zip

    chromedriver-win64_121.0.6139.0.zip

    Java Swing实现的生命游戏.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    html匀速轮播案例js代码

    js代码

    用C语言开发的基于文件存储的图书馆管理系统.zip

    C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

    (基于C语言版的YoloV3-tiny的口罩检测包含口罩VOC数据集).zip

    C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

    chromedriver-win64_117.0.5857.0.zip

    chromedriver-win64_117.0.5857.0.zip

    HPC集群性能测试工具-Clusbench-2.0.git845e7c8.x86-64.run

    Clusbench 是曙光开发的HPC性能测试工具,目前Clusbench支持主流X86平台(如Intel,AMD,Hygon)linpack基准测试、内存stream测试、dgemm测试、hpcg测试、IB带宽和聚合通信(alltoall)测试,且支持批量单机测试和整体(联机)测试。 自1.5版本起,Clusbench内置了测试需要的MPI并行库、运行时依赖,以及针对各个平台优化的linpack、stream、dgemm、hpcg、alltoall等程序,无需依赖于外部软件包即可完成测试。 当前最新版本为Clusbench-2.0,支持CentOS7.x/8.x、RedHat7.x/8.x、NFS3.x/4.x系统。

    html网页制作案例分享

    HTML个人简介网页案例简介 目的: 向初学者展示如何使用HTML语言创建一个基本的网页,用于展示个人信息。 案例内容: 一个HTML文档,包含以下部分: <!DOCTYPE html>:文档类型声明,标识HTML5文档。 <html>:根元素,包含整个网页内容。 <head>:包含文档的元数据,如字符集声明和文档标题。 <body>:包含网页的主体内容,用户可以直接看到的部分。 标题(<h1> 和 <h2>):用于展示网页的主要标题和子标题。 段落(<p>):包含文本段落。 无序列表(<ul> 和 <li>):列出个人信息,如姓名、年龄和职业。 关键点: HTML的基本结构和语法。 如何使用不同的HTML标签来组织内容。 文档的标题和元数据的重要性。 技术实现: 使用文本编辑器创建一个新的HTML文件。 编写HTML代码,包括文档声明、结构和内容。 保存文件,并使用浏览器打开以查看效果。 学习目标: 理解HTML文档的基本构成。 学习如何使用HTML标签来创建和格式化网页内容。 掌握基本的网页制作技能。

    numpy-1.26.4-cp39-cp39-win-amd64.rar

    numpy-1.26.4-cp39-cp39-win_amd64.whl由于从官网下载文件较慢,所以在此提供下载,本文件对应Python311版本为轮子文件,可通过pip安装

    chromedriver-win64_118.0.5974.0.zip

    chromedriver-win64_118.0.5974.0.zip

    linux下基于c语言实现,采用tcp协议的基于socket套接字通信的在线英语词典系统.zip

    C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

    chromedriver-win64_116.0.5815.0.zip

    chromedriver-win64_116.0.5815.0.zip

    OpenNNA2.0,一个基于C语言(C99)的开源神经网络推理框架.zip

    C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

    一个基于控制台界面的读心术小游戏(帮同学写的 C 语言结课作业)。.zip

    C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得

Global site tag (gtag.js) - Google Analytics