Java Web 开发 从入门到实战(课后习题)

第1章 Web 前端基础

1.在以下标记中,用于改置页面标题的是()。

A. </strong><br> B. <caption><br> C. <head><br> D. <html></p> <p>注:caption是表格名称(标题)</p> <p>2. 若设计网页的背景图形为bg.png,在以下标记中正确的是()。</p> <p>A. <strong><body background="bg.png"></strong><br> B. <body ground="bg.png"><br> C. <body image="bg.png"><br> D. < body bgcolor="bg.png"></p> <p>3. 下列关于 HTML 文件的说法正确的是()。</p> <p>A. HTML 标记都必须配对使用<br> B. 在<title>和</itle>标记之间的是头信息<br> C. HTML 标记是区分大小写的,<B>跟<b>表示的意思是不一样的<br> D. <strong><!-- -->标记是注释标记</strong></p> <p>注:HTML标签是无关大小写的,<B>跟<b>表示的意思是一样的</p> <p>4. 下列()表示的不是按钮。</p> <p>A. type="submit"         B. type="reset"<br> C. <strong>type="myButton"      </strong>   D. type="button</p> <p>5. 若产生一个4行30列的多行文本域,在以下方法中,正确的是()。</p> <p>A. <input type="text" rows="4" cols="30" name="txtintrol"><br> B. <textarea rows="4" cols="30" name="txtintro"><br> C. <strong><textarea rows="4" cols="30" name="txtintro"></textarea></strong><br> D. <textarea rows="30" cols="4" name="txtintro"*</textarea></p> <p>6. 下列属性中用于设置文本框显示宽度的属性是()。<br> A. <strong>size</strong><br> B. maxlength<br> C. value<br> D. length</p> <p>7. 下面对表单的说法错误的是()。</p> <p>A. 表单在Web页面中用来给访问者填写信息,从而能采集客户端信息,使页面具有交互信息的功能<br> B. <strong>当用户填写完信息后单击普通按钮做提交(submit)操作</strong><br> C. 一个表单用<form></form>标签来创建<br> D. action 属性的值是指处理程序的程序名(包括网络路径、网址或相对路径)</p> <p>8. 下面说法中错误的是()。</p> <p>A. <strong>在HTML语言中,<input>标记具有重要的地位。它能够将浏览器中的控件加载到HTML 文档中,该标记既有开始标记,又有结束标记</strong><br> B. <input type="text”>是设定一个单行的文本输入区域<br> C. size 属性指定控件宽度,表示该文本输入框所能显示的最大字符数<br> D. maxlength 属性表示该文本输入框允许用户输入的最大字符数</p> <p>9. 下面对于按钮的说法中正确的是()。</p> <p>A. <strong>按钮可分为普通按钮、提交按钮和重置按钮</strong><br> B. <input type="button”>表示这是一个提交到服务器的按钮<br> C. <input type="reset">表示这是一个普通按钮<br> D. name 属性用来指定按钮页面显示的名称</p> <p>10. 下面说法中错误的是()。</p> <p>A. <input type="checkbox " checked>中的checked 属性用来设置该复选框默认是否被选中<br> B. <strong><input type="hidden”>表示一个隐藏区域,用户可以在其中输入某些要传选的信息</strong><br> C. <input type="password”>表示这是一个密码区域,当用户输入密码时区域内第会显示“*”号<br> D. <input type="radio">表示这是一个单选按钮</p> <p>注:<input type="hidden”>表示一个隐藏区域,用户无法在其中输入信息。</p> <p>11. 下列说法中错误的是()。</p> <p>A. <select></select>标记对用来创建一个菜单下拉列表框<br> B. <strong>下拉列表框中的 multiple 属性不用赋值,直接加入到标记中即可使用,加入此属性后列表框就可以多选</strong><br> C. <option>标记用来指定列表框中的一个选项<br> D. 不可以设定输入多行的文本区的大小</p> <p>12. 下面对于样式表的说法中错误的是(</p> <p>A. CSS 就是 Cascading Style Sheets,中文翻译为“层叠样式表”,简称样式表<br> B. <strong>将CSS 指定的格式加入到 HTML 中的方法有两种</strong><br> C. 外部链接CSS 时需要在HTML文件里加一个超链接,连接到外部的CSs如<br> D. 内定义 CSS 时需要在 HTIML 文件内的<head>/bead标记对之同加一段CSS的描述内容</p> <p>注:CSS将指定的格式加入到HTML中的方法就一种,即在HTML文件内的<head>标签进行定义。</p> <p>13. 下面对于样式表的说法中错误的是()。</p> <p>A.CSS 的定义由3个部分构成,即选择符(selector)、属性(properties)和属性的取值(value)<br> B.<strong>选择符可以是多种形式,一般是要定义样式的HTML标记,用户可以通过此方法定义它的属性和值,属性和值要用逗号隔开</strong><br> C. CSS 可以定义字体属性<br> D. CSS 可以定义颜色和背景属性</p> <p>注:选择符不需要用逗号隔开属性和值。</p> <p>14.下列说法中错误的是()。</p> <p>A. p  {font-family:"sans serif"} 定义段落字体 sans serif<br> B. <strong>p{text-align:"center;color:red"}定义段落居中排列,并且段落中的文字为红色</strong><br> C. background-image 属性用来设置背景图片<br> D. background-color 属性用来设置背景颜色</p> <p>注:在CSS中,多个属性应该使用分号而不是逗号进行分隔。</p> <p>15.()对象表示浏览器的窗口,可用来检索关于该窗口状态的信息。</p> <p>A. document<br> B. <strong>window</strong><br> C. location<br> D. history</p> <p>16.() 对象表示给定浏览器窗口中的 HTML 文档,用来检索关于文档的信息。</p> <p>A. <strong>document</strong><br> B. window<br> C. screen<br> D. history</p> <p>17.()方法要求窗口显示刚刚访问的前一个页面。</p> <p>A. <strong>back()</strong><br> B. go()<br> C. display()<br> D. view()</p> <p>18. 有关变量的命名规则,下列说法中错误的是()。</p> <p>A. 以字母、下画线(_)或美元符号($)开头<br> B. 首字符之外的字符可以是下画线、美元符号,或任何的字母、数字<br> C. <strong>不能有空格,不区分大小写</strong><br> D. 不能使用 JavaScript 中的关键字或保留字命名</p> <p>19. 单击按钮触发的事件是()。<br> A. <strong>onClick</strong><br> B. onFocus<br> C. onChange<br> D. onLoad</p> <p>20. 页面加载时产生的事件是()。</p> <p>A. onClick<br> B. onFocus<br> C. onChange<br> D. <strong>onLoad</strong></p> <p>21.用HTML编写网页版个人简历,具体要求如下:<br> (1)页面内容以 DIV+CSS形式体现。<br> (2)信息内容包括个人基础信息、近期照片、学习经历、兴趣爱好、求职意间。</p> <pre><code class="language-html"><!DOCTYPE html> <meta charset="UTF-8"> <html> <head> <style> .resume { width: 60%; margin: auto; background-color: #f2f2f2; padding: 20px; font-family: Arial, sans-serif; } .section { margin-bottom: 20px; } .section h2 { color: #333; } .section p { color: #666; } </style> </head> <body> <div class="resume"> <div class="section"> <h2>个人基础信息</h2> <p>姓名:张三</p> <p>年龄:25</p> <p>性别:男</p> <p>电话:123456789</p> <p>邮箱:zhangsan@example.com</p> </div> <div class="section"> <h2>近期照片</h2> <img src="photo.jpg" alt="近期照片"> </div> <div class="section"> <h2>学习经历</h2> <p>2015-2019:北京大学,计算机科学与技术专业</p> <p>2019-至今:清华大学,人工智能专业</p> </div> <div class="section"> <h2>兴趣爱好</h2> <p>阅读</p> <p>旅行</p> <p>编程</p> </div> <div class="section"> <h2>求职意向</h2> <p>期望职位:人工智能工程师</p> <p>期望薪资:面议</p> <p>期望地点:北京</p> </div> </div> </body> </html> </code></pre> <h2>第2章 Java Web 开发环境的构建</h2> <p>1.安装 Tomcat 服务器所在的计算机需要事先安装JDK 吗?</p> <blockquote> <p>安装Tomcat服务器所在的计算机需要事先安装JDK(Java开发工具包)。因为Tomcat是用Java语言编写的,它需要Java运行环境来正常工作。因此,在安装Tomcat之前,必须确保计算机上已经安装了JDK。</p> </blockquote> <p>2. Tomcat 服务器的默认端口号是什么?如果想修改该端口号,应该修改哪个文件?</p> <blockquote> <p>Tomcat服务器的默认端口号是8080。如果想修改该端口号,应该修改Tomcat的配置文件server.xml。在该文件中,可以找到对应的端口配置并进行修改。</p> </blockquote> <p>3. First.jsp 和 first.jsp 是否为相同的JSP文件名?</p> <blockquote> <p>在Web程序中,First.jsp和first.jsp被视为相同的JSP文件名。</p> </blockquote> <p>4. JSP 引擎是怎样处理JSP 页面中的HTML 标记的?</p> <blockquote> <p>JSP引擎会将JSP页面中的HTML标记直接输出到响应的页面中。当客户端请求JSP页面时,JSP引擎会解析JSP页面,将其中的HTML标记直接发送给客户端,使得客户端可以渲染页面。同时,JSP引擎也会处理其中的JSP元素和脚本代码,并生成相应的Java Servlet代码来处理请求和生成响应。</p> </blockquote> <p>5. 当用户请求JSP 页面时,JSP 引擎将会执行该页面的字节码文件响应客户的请求,执行字节码文件的结果是()。</p> <p>A.发送一个JSP 源文件到客户端<br> B. 发送一个 Java 文件到客户端<br> C. <strong>发送一个 HTML 页面到客户端</strong><br> D. 什么都不做</p> <h2>第3章 JSP语法</h2> <p>1.JSP 页面由哪几种主要元素组成?</p> <blockquote> <p>HTML页面标签:这是用来构建页面结构的HTML代码。<br> 指令:指令是用来定义整个页面的相关信息,例如页面的字符集编码等。指令格式为<%@指令名 属性名=”值”%>。<br> 表达式:表达式是用于在JSP页面中进行数据绑定和计算的,例如获取请求参数、数据库查询结果等。表达式的格式为 <%=表达式%>。<br> 代码片段:代码片段是在JSP页面中嵌入的Java代码,可以用来处理复杂的业务逻辑。代码片段的格式为 <%java代码%>。<br> 声明:声明是定义类成员的地方,其格式为 <%! 类成员 %>。<br> 注释:注释是用来解释代码或者提供其他信息的一种方式,其格式为 <%-- jsp注释内容 --%>。<br> 动作:动作是JSP页面中执行特定任务的标签,如包含其他文件、导入Java包等。动作的格式为 <jsp:动作名></jsp:动作名>。</p> </blockquote> <p>2. 如果有3个用户访问一个JSP 页面,则该页面中的Java 程序片将被执行几次?</p> <blockquote> <p>如果有3个用户访问一个JSP页面,该页面中的Java程序片段将会被执行3次,分别为每个用户的访问执行一次。每次访问都会触发JSP引擎执行相应的Java程序片段来生成动态内容。</p> </blockquote> <p>3."<%!"和"%>"之间的声明的变量与 "<%"和"%>"之间的声明的变量有何不同?</p> <blockquote> <p>"<%!" 和 "%>" 之间的声明用于定义全局变量和方法,它们会被插入到生成的servlet类的成员变量或方法中,因此这些变量和方法在整个JSP页面中都是可见的。</p> <p>而 "<%" 和 "%>" 之间的声明用于写入Java代码片段,这些代码片段会被插入到生成的servlet类的service()方法中。因此,这些变量和方法只在当前的代码片段内部可见。</p> </blockquote> <p>4. 动作标记 include 和指令标记 include 的区别是什么?</p> <blockquote> <p>1. <jsp:include> 是一个动作标记,它在运行时动态包含其他文件的内容,可以包含静态或动态资源,包含的内容将在运行时被处理和执行。 <%@ include %> 是一个指令标记,它在翻译阶段静态地包含其他文件的内容,包含的内容将在翻译阶段被插入到JSP页面中。</p> <p>2. <jsp:include> 可以包含动态的内容,例如其他JSP页面或Servlet的输出。 <%@ include %> 只能包含静态的内容,例如HTML片段或文本文件。 因此,主要区别在于包含的时间点和包含内容的类型。</p> </blockquote> <p>5.在一个JSP 页面中是否允许使用 page指令为 contentType 属性设置多个值?是否许使用 page 指令为 import 属性设置多个值?</p> <blockquote> <p>在一个JSP页面中,page指令的contentType属性只能设置一个值。这个值用于指定生成的Servlet响应的内容类型。 同样地,page指令的import属性也只能设置一个值。这个值用于导入Java类或包,以便在JSP页面中使用这些类。 因此,page指令的contentType属性和import属性都只能设置单个值。</p> </blockquote> <p>6. 用户可以在以下()标记之间插入 Java 程序片。</p> <p>A.<strong>“<%”和“%>”</strong><br> B.“<%”和“/>”<br> D.“<%”和“!>”<br> C. “</”和“%>”</p> <p>7.JSP 的page 指令的language属性的默认值是()。<br> A. <strong>Java</strong><br> В. С<br> C. CH<br> D. SQL</p> <p>8. 用户可以在以下()标记之间插入变量与方法声明。</p> <p>A. “<%”和“%>”<br> B.<strong>“<%!”和“%>”</strong><br> C.“</”和“%>”<br> D.“<%”和“ >”</p> <p>9.下列变量声明在()范围内有效。</p> <pre><code class="language-html"><%! Date dateTime; int countNum; %></code></pre> <p>A. 从定义开始处有效,客户之间不共享<br> B. 在整个页面内有效,客户之间不共享<br> C. <strong>在整个页面内有效,被多个客户共享</strong><br> D. 从定义开始处有效,被多个客户共享</p> <p>10、在“ ”和 ”标记之同声明的Java方法称为页面的成员方法,其()有效。</p> <p>A. 从定义处之后<br> B. 在整个页面内<br> C. <strong>从定义处之前</strong><br> D. 不确定</p> <p>11.在“<%=”和“%>”标记之间放置()可以直接输出其值。</p> <p>A.变量<br> B. <strong>Java 表达式</strong><br> C.字符串<br> D. 数字</p> <p>12. include 指令用于在JSP 页面中静态插入一个文件,所插入文件可以是JSP 页画、HTML 网页、文本文件或一段Java 代码,但必须保证插入后形成的文件是()。</p> <p>A.一个完整的HTML 文件<br> C.一个完整的TXT文件<br> B.<strong>一个完整的JSP文件</strong><br> D.一个完整的 Java 源文件</p> <p>13. 组成“<%=”标记的各字符之间()。</p> <p>A. 可以有空格<br> B.<strong>不可以有空格</strong><br> C. 必须有空格<br> D. 不确定</p> <h2>第4章 JSP内置对象</h2> <p>1. 下面()操作不能关闭session对象。</p> <p>A. <strong>用户刷新当前界面调用</strong><br> B. 用户关闭浏览器<br> C. session 达到设置的最长“发呆”时间<br> D. session 对象的 invalidate()方法</p> <p>2. 有如下程序片段:</p> <pre><code class="language-html"><form> <input type = "text" name = "id"> <input type = "submit" value ="提交"> </form></code></pre> <p>下面()语句可以获取用户输入的信息。</p> <p>A. <strong>request.getParameter("id");</strong><br> B. request.getAttribute("submit");<br> C. session.getParameter(key, "id");<br> D. session.getAttribute(key, "id");</p> <p>3. 下面的()内置对象是对客户的请求做出响应,向客户端发送数据的。</p> <p>A. request<br> B. session<br> C. <strong>response</strong><br> D. application</p> <p>4. 可以使用()方法实现客户的重定向。</p> <p>A. response.setStatus;<br> B. response.setHeader;<br> C. response.setContentType;<br> D. <strong>response.sendRedirect;</strong></p> <p>5. 下面不属于JSP 内置对象的是()。</p> <p>A. out 对象<br> B. response 对象<br> C. application 对象<br> D. <strong>cookie 对象</strong></p> <p>6. 下面对象中作用域最大的是(</p> <p>A. page<br> B. request<br> C. <strong>application</strong><br> D. session</p> <p>7. 在JSP 中保存用户会话信息使用()对象。</p> <p>A. page<br> B. request<br> C. application<br> D. <strong>session</strong></p> <p>8. 如果选择一个对象保存聊天室信息,则选择()。</p> <p>A. page<br> B. request<br> C. <strong>application</strong><br> D. session</p> <p>注:在聊天室应用中,如果要保存聊天室信息,应该选择C. application 对象。因为 application 对象是全局的,可以在整个应用程序中共享数据,适合用于保存聊天室信息这样的全局数据。</p> <p>9. 什么对象是JSP 的内置对象?常见的内置对象有哪些?</p> <p><span class="link-card-box"><span class="link-title">具体内容写过一遍了不再赘述</span><span class="link-link"><img class="link-link-icon" src="http://img.e-com-net.com/image/info8/20cf6475f3a748749177a8d323f1e65c.jpg" alt="icon-default.png?t=N7T8" width="0" height="0">https://blog.csdn.net/qiqi_liuliu/article/details/135483501</span></span>10.request、session 和 application 对象的作用域是什么?它们之间有什么区别?</p> <blockquote> <p>与上一题一样,直接点超链接里头看</p> </blockquote> <p>11. 一个用户在不同 web 服务中的 session 对象相同吗?一个用户在同一 Web 服务的不同子目录中的 session 对象相同吗?</p> <blockquote> <p>        不同的Web服务中,即使是同一个用户,其session对象也是不同的。每个Web服务都有自己独立的session管理机制,因此无法共享session对象。</p> <p>        在同一个Web服务的不同子目录中,session对象是相同的。这是因为session对象是与用户的会话相关联的,而不是与特定的子目录相关联的。因此,无论用户访问Web服务的哪个子目录,其session对象都是相同的。</p> </blockquote> <p>12. session 对象的生命周期依赖于哪些因素?</p> <blockquote> <ol> <li> <p><strong>会话期间</strong>:Session对象的生命周期与用户的会话期间相关联。当用户在浏览器中打开一个会话并与Web服务器进行交互时,会话开始;当用户关闭浏览器或会话超时时,会话结束。</p> </li> <li> <p><strong>会话超时设置</strong>:Web服务器通常会设置session的超时时间,超过这个时间没有活动的会话将被销毁。这个超时时间可以在服务器的配置中进行设置。</p> </li> <li> <p><strong>手动失效</strong>:Session对象也可以被程序员手动失效,通过调用session.invalidate()方法来销毁session对象。</p> </li> </ol> </blockquote> <p>13. 简述 forward 动作标记与 response.sendRedirect()两种跳转的区别。</p> <blockquote> <ol> <li> <p><strong>执行位置</strong>:</p> <ul> <li>forward动作标记是在服务器端执行的,由服务器内部进行页面跳转,客户端浏览器不知道页面的真实路径。</li> <li>response.sendRedirect()是在客户端执行的,服务器会向客户端发送一个重定向的响应,客户端浏览器会再次发送请求到新的URL。</li> </ul></li> <li> <p><strong>URL变化</strong>:</p> <ul> <li>forward动作标记不会改变浏览器的URL,因为是服务器内部进行的页面跳转。</li> <li>response.sendRedirect()会改变浏览器的URL,因为是客户端重新发送请求到新的URL。</li> </ul></li> <li> <p><strong>数据共享</strong>:</p> <ul> <li>forward动作标记可以在跳转的过程中共享request域中的数据。</li> <li>response.sendRedirect()不能直接在跳转的过程中共享数据,需要通过URL参数或者session来传递数据。</li> </ul></li> </ol> </blockquote> <h2>第5章 JSP 与 JavaBean</h2> <p>1. 下面方式中正确使用JavaBean 的是()。</p> <p>A. <strong><jsp:useBean id-"address" class="tom. AddressBean" scope="page"/></strong><br> B. <jsp:useBean name="address" class="tom. AddressBean" scope="page"/><br> C. <jsp:useBean bean="address" class="tom. AddressBean" scope="page" /><br> D. <isp:useBean beanName="address" class="AddressBean" scope="page" /></p> <p>2. JavaBean 中方法的访问属性必须是()。<br> A. private<br> B. <strong>public</strong><br> C. protected<br> D. friendly</p> <p>3.在JSP 中调用 JavaBean 时不会用到的标记是()。</p> <p>A. <strong><javabean></strong><br> B. <jsp:useBean><br> C. <jsp:setProperty><br> D. <jsp:getProperty></p> <p>4. JavaBean 的作用域可以是() page, session fil application.</p> <p>A. <strong>request</strong><br> B. response<br> C. out<br> D. 以上都不对</p> <p>5. 在 testjsp 文件中有如下一行代码:</p> <pre><code class="language-html"><jsp:useBean class="tom. jiafei.Test" id-"user" scope="___"/></code></pre> <p>要使user 对象一直存在于会话中,直到终止或被删除为止,在下画线处应填入()。</p> <p>A. page<br> B. request<br> C. <strong>session</strong><br> D. application</p> <p>6. 在JSP 中使用<jsp:useBean>动作可以将 JavaBean 引入JSP 页面,对JavaBean 的访问范围不能是()。</p> <p>A. page<br> B. request<br> C. <strong>response</strong><br> D. application</p> <p>7. 下面语句与<jsp:getProperty name="aBean" property="jsp"/>等价的是()。</p> <p>A. <%=jsp()%><br> B. <strong><out.print(aBean.getJsp);%></strong><br> C. <%=aBean.setJsp()%><br> D. <%aBean.setJsp();%></p> <p>8.以下是有关jsp:setProperty 和 jsp:getProperty 标记的描述,正确的是()。</p> <p>A. Ssp:setProperty> 和<jsp:getProperty>标记都必须在<jsp:useBean>的开始标记和结束标记之间<br> B.<strong>这两个标记的 name 属性值必须与sjsp:useBean>标记的id 属性值相对应</strong><br> C.这两个标记的 name 属性值可以与<jsp:useBean>标记的 id 属性值不同<br> D. 以上均不对</p> <p>9. 在JSP 中使用<jsp:getProperty>标记时不会出现的属性是()。</p> <p>A. name<br> B. property<br> C. <strong>value</strong><br> D. 以上皆不会出现<br>  </p> <h2>第6章 Java Servlet 基础</h2> <p>1.servlet对象是在服务器端被创建的,还是在用户端被创建的?</p> <blockquote> <p>        Servlet对象是在服务器端被创建的。</p> <p>        当客户端发送一个HTTP请求时,服务器端的Servlet容器会创建一个新的Servlet实例来处理这个请求,然后返回响应给客户端。因此,Servlet对象的创建和管理完全是在服务器端进行的。</p> </blockquote> <p>2. 什么是转发?什么是重定问?它们有什么区别?</p> <blockquote> <p>转发(forward)是指在服务器端将请求转发到另一个资源(Servlet、JSP等)进行处理,然后将处理结果返回给客户端。在转发过程中,客户端浏览器并不知道页面的真实路径,整个过程对客户端来说是透明的。转发是通过RequestDispatcher对象实现的。</p> <p>重定向(redirect)是指在服务器端返回一个特殊的响应给客户端,告诉客户端去请求另一个URL。客户端浏览器会收到这个响应后,会再次发送一个新的请求到这个新的URL。在重定向过程中,客户端浏览器会改变URL,因此客户端可以看到新的URL。重定向是通过发送特殊的HTTP响应码(如302)和Location头来实现的。</p> </blockquote> <blockquote> <p><strong>区别</strong>:</p> <ol> <li><strong>位置</strong>:转发是在服务器内部进行的,对客户端来说是透明的;重定向是通过客户端浏览器重新发送请求到新的URL实现的。</li> <li><strong>URL变化</strong>:转发不会改变浏览器的URL;重定向会改变浏览器的URL。</li> <li><strong>数据共享</strong>:转发可以在跳转的过程中共享request域中的数据;重定向不能直接在跳转的过程中共享数据,需要通过URL参数或者session来传递数据。</li> </ol> </blockquote> <p>3.简述 Servlet 的生命周期与运行原理。</p> <blockquote> <p><strong>Servlet的生命周期</strong>:</p> <ol> <li><strong>初始化阶段</strong>:当Servlet容器接收到对Servlet的第一个请求时,会创建Servlet实例并调用其init()方法进行初始化。在init()方法中,Servlet可以进行一些初始化操作,比如读取配置文件、建立数据库连接等。</li> <li><strong>请求处理阶段</strong>:一旦Servlet被初始化,它就可以处理来自客户端的请求。每次接收到请求时,Servlet容器会调用Servlet的service()方法来处理请求,并生成响应。在service()方法中,Servlet可以根据请求的类型(GET、POST等)来进行相应的处理。</li> <li><strong>销毁阶段</strong>:当Servlet容器决定将Servlet实例销毁时(比如服务器关闭或者应用程序重新部署),会调用Servlet的destroy()方法来执行一些清理操作,比如关闭数据库连接、释放资源等。</li> </ol> </blockquote> <blockquote> <p>Servlet的运行原理: Servlet容器(比如Tomcat)负责管理Servlet的生命周期和调用。</p> <p>        当客户端发送请求时,Servlet容器会根据URL中的映射关系找到对应的Servlet,并创建一个线程来处理这个请求。</p> <p>        Servlet容器会根据需要创建新的Servlet实例,或者重用已经存在的Servlet实例。</p> <p>        在处理完请求后,Servlet容器会将生成的响应返回给客户端,并根据需要保持或销毁Servlet实例。 </p> </blockquote> <p>4.Servlet 对象初始化时是调用 init 方法还是 service 方法?</p> <blockquote> <p>Servlet对象初始化时是调用 init 方法。init 方法是在Servlet对象初始化阶段被调用,用于进行一些初始化操作,比如读取配置文件、建立数据库连接等。一旦Servlet对象初始化完成,就可以通过调用 service 方法来处理客户端请求。</p> </blockquote> <p>5. 下列选项中,()不是 Servlet 中使用的方法。</p> <p>A. doGet<br> B. doPost<br> C. service<br> D. <strong>close</strong></p> <p>6. 下列选项中,对 Servlet 描述错误的是()。</p> <p>A. Servlet 是一个特的 Java 类,它必须直接或间接实现 Servlet 接口<br> B. Servlet 接口定义了 Servlet 的生命周期方法<br> C. <strong>当多个客户请求一个 Servlet 时,服务器为每一个客户启动一个进程</strong><br> D. Servlet 客户线程调用service 方法响应客户的请求</p> <p>7. 下列 Servlet 的方法中,()方法载入时被执行,且只执行一次,负责对 Servlet<br> 生行初始化。</p> <p>A. service()<br> B. <strong>init()</strong><br> C. doPost()<br> D. destroy()</p> <p>8. 下列 Servlet 的方法中,()方法用来为请求服务,在 Servlet 生命周期中,Servet<br> 被请求一次它就会被调用一次。</p> <p>A. <strong>service()</strong><br> B. init()<br> C. doPost()<br> D. destroy()</p> <p><br> 9. 下列方法中,()方法当服务器关闭时被调用,用来释放 Servet 所占的资源。</p> <p>A. service()<br> B. init()<br> C. doPost()<br> D.<strong> destroy()</strong></p> <p>10. 阅读下面代码片段:</p> <pre><code class="language-html">JavaBeanClass bean=new JavaBeanClass (parameter) ; HttpSession session=request. getSession (true) ; session. setAttribute ("keyword", bean) ;</code></pre> <p>关于该段代码创建的bean,下列叙述正确的是()。</p> <p>A. request 周期的 bean<br> B. application 周期的bean<br> C. <strong>session 周期的 bean</strong><br> D. Page 周期的 bean</p> <p>11. 阅读下面代码片段:</p> <pre><code class="language-html">RequestDispatcher dispatcher=request. getRequestDispatcher ("a. jsp"); dispatcher. forward (request, response) ;</code></pre> <p>关于该段代码的作用,下列叙述正确的是()。</p> <p>A. 页面重定向到a.jsp 页面<br> B. <strong>将请求转发到 a.jsp 页面</strong><br> C. 从a.jsp定向到当前页面<br> D. 从a.jsp转发到当前页面</p> <h2>第7章 会话跟踪技术</h2> <p>1. 会话跟踪技术有哪些?</p> <blockquote> <ol> <li> <p><strong>Cookie</strong>:在客户端存储小段文本数据,随后每次请求都会将这些数据发送给服务器。可以用于跟踪用户会话和存储会话相关的数据。</p> </li> <li> <p><strong>Session</strong>:在服务器端存储用户会话数据,每个用户都有一个唯一的会话标识。通常使用Cookie来传递会话标识,然后在服务器端存储会话数据。</p> </li> <li> <p><strong>URL 重写</strong>:将会话标识信息附加到URL中,以便在用户请求时传递会话信息。这种方法在URL中添加参数来标识会话。</p> </li> <li> <p><strong>隐藏表单字段</strong>:在HTML表单中添加隐藏字段来存储会话信息,以便在用户提交表单时传递会话数据。</p> </li> <li> <p><strong>URL 重定向</strong>:在重定向响应中将会话信息作为URL参数传递给客户端,以便在客户端进行页面跳转时传递会话数据。</p> </li> </ol> </blockquote> <p>2. 在工程实践中为什么要进行会话跟踪?</p> <blockquote> <ol> <li> <p><strong>用户身份识别</strong>:会话跟踪可以用于识别用户身份,保持用户登录状态,以便在多个页面之间保持用户的身份信息和权限。</p> </li> <li> <p><strong>购物车和订单处理</strong>:在电子商务网站中,会话跟踪可以用于跟踪用户的购物车内容和订单信息,以便在用户浏览和购买商品时保持购物车状态和订单信息。</p> </li> <li> <p><strong>个性化体验</strong>:通过会话跟踪,网站可以根据用户的偏好和历史行为提供个性化的推荐和内容,提高用户体验和满意度。</p> </li> <li> <p><strong>数据传递</strong>:会话跟踪可以用于在用户请求之间传递数据,比如在多个页面之间共享用户的输入信息或者状态数据。</p> </li> <li> <p><strong>安全性</strong>:会话跟踪可以用于实现安全性需求,比如防止跨站请求伪造(CSRF)攻击,保护用户会话数据的安全性。</p> </li> <li> <p><strong>性能优化</strong>:通过会话跟踪,网站可以对用户的访问行为进行分析和优化,提高网站的性能和用户体验。</p> </li> </ol> </blockquote> <p>3. 浏览器禁用 Cookie 后,如何进行会话跟踪?</p> <blockquote> <p>当浏览器禁用了Cookie后,可以使用其他会话跟踪技术来实现会话跟踪。</p> </blockquote> <h2>第8章 过滤器和监听器</h2> <p>1. 简述过滤器的运行原理。</p> <blockquote> <ol> <li> <p><strong>拦截请求</strong>:当客户端发送HTTP请求时,过滤器可以拦截这些请求。过滤器可以在请求到达Servlet之前对请求进行处理,比如校验、修改、记录日志等。</p> </li> <li> <p><strong>过滤器链</strong>:如果存在多个过滤器,它们会形成一个过滤器链。每个过滤器都有机会对请求进行处理,然后将请求传递给下一个过滤器,或者直接传递给Servlet进行处理。</p> </li> <li> <p><strong>处理请求</strong>:当请求通过所有过滤器后,最终会到达Servlet,由Servlet来处理请求并生成响应。</p> </li> <li> <p><strong>拦截响应</strong>:在Servlet生成响应后,响应会经过过滤器链中的过滤器。过滤器可以在响应发送到客户端之前对响应进行处理,比如压缩、加密、添加响应头等。</p> </li> <li> <p><strong>过滤器链执行顺序</strong>:过滤器的执行顺序由它们在web.xml中的配置顺序决定。先配置的过滤器先执行,后配置的过滤器后执行。</p> </li> </ol> </blockquote> <p>2. Filter 接口中有哪些方法?它们分别具有什么功能?</p> <blockquote> <ol> <li> <p><strong>void init(FilterConfig filterConfig)</strong></p> <ul> <li>该方法在过滤器被初始化时调用,用于进行一些初始化操作。</li> <li>参数filterConfig包含了过滤器的配置信息,可以通过该参数获取初始化参数、Servlet上下文等信息。</li> </ul></li> <li> <p><strong>void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)</strong></p> <ul> <li>该方法用于实际拦截请求和响应,对它们进行处理,并将请求传递给下一个过滤器或目标Servlet。</li> <li>参数request表示客户端的请求,参数response表示要返回给客户端的响应,参数chain表示过滤器链,通过调用chain.doFilter(request, response)可以将请求传递给下一个过滤器或目标Servlet。</li> </ul></li> <li> <p><strong>void destroy()</strong></p> <ul> <li>该方法在过滤器被销毁时调用,用于进行一些清理操作。</li> <li>在该方法中可以释放资源、关闭连接等清理工作。</li> </ul></li> </ol> </blockquote> <p>3. 过滤器可以实现哪些常用功能?</p> <blockquote> <ol> <li> <p><strong>日志记录</strong>:记录请求和响应的信息,用于分析和监控应用程序的运行情况。</p> </li> <li> <p><strong>权限验证</strong>:对请求进行身份验证和权限检查,以确保用户有权访问特定的资源或执行特定的操作。</p> </li> <li> <p><strong>数据压缩</strong>:对响应数据进行压缩,以减少传输数据量,提高网站性能。</p> </li> <li> <p><strong>字符编码转换</strong>:在请求和响应中进行字符编码的转换,确保数据的正确传输和显示。</p> </li> <li> <p><strong>请求过滤</strong>:对请求进行过滤和处理,比如防止恶意请求、拦截特定的请求等。</p> </li> <li> <p><strong>响应处理</strong>:对响应进行处理,比如添加响应头、重定向等。</p> </li> <li> <p><strong>性能监控</strong>:监控请求的处理时间、资源消耗等性能指标,用于性能优化和故障排查。</p> </li> <li> <p><strong>安全防护</strong>:实施安全策略,比如防止跨站脚本攻击(XSS)、防止跨站请求伪造(CSRF)等。</p> </li> <li> <p><strong>缓存控制</strong>:控制缓存策略,比如设置缓存过期时间、强制刷新缓存等。</p> </li> <li> <p><strong>请求转发和重定向</strong>:根据特定条件对请求进行转发或重定向到其他资源。</p> </li> </ol> </blockquote> <p>4. 简述监听器的分类。</p> <blockquote> <ol> <li> <p><strong>ServletContext 监听器</strong>:用于监听Web应用程序的生命周期事件,比如Web应用程序的启动和关闭。常用的监听器接口是<code>ServletContextListener</code>,它包括<code>contextInitialized</code>和<code>contextDestroyed</code>方法,分别在Web应用程序启动和关闭时被调用。</p> </li> <li> <p><strong>HttpSession 监听器</strong>:用于监听HTTP会话(Session)的生命周期事件,比如会话的创建、销毁、属性的添加和移除。常用的监听器接口是<code>HttpSessionListener</code>和<code>HttpSessionAttributeListener</code>,分别用于监听会话的创建和销毁,以及会话属性的变化。</p> </li> <li> <p><strong>ServletRequest 监听器</strong>:用于监听HTTP请求的生命周期事件,比如请求的到达、离开、属性的添加和移除。常用的监听器接口是<code>ServletRequestListener</code>和<code>ServletRequestAttributeListener</code>,分别用于监听请求的到达和离开,以及请求属性的变化。</p> </li> <li> <p><strong>监听器的上下文初始化和销毁</strong>:用于监听Web应用程序的上下文初始化和销毁事件。常用的监听器接口是<code>ServletContextListener</code>,通过实现<code>contextInitialized</code>和<code>contextDestroyed</code>方法来监听上下文的初始化和销毁。</p> </li> </ol> </blockquote> <p>5. 哪种监听器不需要部署?</p> <blockquote> <p>在JavaEE中,ServletContext监听器不需要显式部署。当Web应用程序启动时,容器会自动检测并调用实现了ServletContextListener接口的监听器,无需在web.xml文件中进行特殊配置。这使得ServletContext监听器成为一种非常便捷的方式来执行应用程序初始化和清理逻辑。</p> </blockquote> <h2>第9章 EL和JSTL</h2> <p>1.在Web 应用程序中有以下程序代码段,执行后转发到某个JSP页面:</p> <pre><code class="language-html">ArrayList<String> dogNames = new ArrayList<String> (); dogNames.add("goodDog" ); request.setAttribute ("dogs", dogNames);</code></pre> <p>下列选项中,()可以正确地使用EL 取得数组中的值。<br> A. ${ dogs.0}<br> B. <strong>${ dogs [0]}</strong><br> C. ${ dogs. [0]}<br> D. ${ dogs "0"}</p> <p>2. JSTL 标签()可以实现Java 程序中的if语句功能。</p> <p>A. <c:set><br> B. <c:out><br> C. <c: forEach><br> D. <strong><c:if></strong></p> <p>3.()不是EL 的隐含对象。</p> <p>A. <strong>request</strong><br> B. pageScope<br> C. sessionScope<br> D. applicationScope</p> <p>4. JSTL 标签()可以实现Java 程序中的for 语句功能。</p> <p>A. <c:set><br> B. <c:out><br> C. <strong><c: forEach></strong><br> D. <c:if></p> <p>5.与<jsp:include>功能类似的JSTL 标签是()。</p> <p>A. <c:url><br> B. <c:redirect><br> C. <c:include ><br> D. <strong><c:import></strong></p> <h2>第10章 文件的上传与下载</h2> <p>1.基于表单的文件上传需要注意什么?</p> <blockquote> <ol> <li> <p><strong>表单的enctype属性</strong>:确保表单的<code>enctype</code>属性被设置为<code>multipart/form-data</code>,以支持文件上传。这样表单数据和文件数据都能被发送到服务器。</p> </li> <li> <p><strong>文件大小限制</strong>:需要在服务器端和客户端都进行文件大小的限制。在服务器端,需要配置Web服务器和应用服务器的文件上传大小限制。在客户端,可以使用HTML5的<code><input type="file"></code>元素的<code>accept</code>和<code>size</code>属性进行文件类型和大小的限制。</p> </li> <li> <p><strong>文件类型限制</strong>:需要对文件类型进行限制,以确保只接受特定类型的文件。这可以通过客户端和服务器端的校验来实现。</p> </li> <li> <p><strong>文件名的安全性</strong>:需要对上传的文件名进行安全性校验,以防止恶意文件名导致的安全漏洞。</p> </li> <li> <p><strong>文件存储路径</strong>:需要指定文件上传后的存储路径,并确保该路径对应的文件夹有足够的权限进行文件写入。</p> </li> <li> <p><strong>处理上传文件</strong>:在服务器端,需要编写处理文件上传的代码,对上传的文件进行处理和存储。</p> </li> <li> <p><strong>异常处理</strong>:需要对文件上传过程中可能出现的异常进行处理,比如文件过大、文件类型不符、存储路径无权限等情况。</p> </li> <li> <p><strong>安全性考虑</strong>:需要考虑文件上传过程中的安全性问题,比如防止跨站脚本攻击(XSS)、拒绝服务攻击(DoS)等。</p> </li> </ol> </blockquote> <p>2.文件下载的实现方法有哪些?它们的优缺点是什么?</p> <blockquote> <ol> <li> <p><strong>直接链接下载</strong>:在网页上提供文件下载的超链接,用户点击链接即可下载文件。这是最简单的实现方法,但无法进行权限控制和统计下载量。</p> </li> <li> <p><strong>通过后端服务器提供下载接口</strong>:通过后端服务器提供一个接口,用户访问该接口并传入文件标识,后端服务器返回文件内容。这种方式可以实现权限控制和下载统计,但需要后端服务器进行额外的处理。</p> </li> <li> <p><strong>使用HTML5的download属性</strong>:在HTML5中,可以使用<code><a></code>标签的<code>download</code>属性来指定文件的下载名称,使得用户点击链接时可以直接下载文件。这种方法简单方便,但不适用于较老的浏览器。</p> </li> <li> <p><strong>使用JavaScript进行下载</strong>:通过JavaScript动态生成下载链接,并模拟用户点击该链接来触发文件下载。这种方法可以在不刷新页面的情况下进行文件下载,但需要考虑浏览器兼容性和安全性。</p> </li> <li> <p><strong>使用第三方库</strong>:可以使用第三方库如jQuery File Download等来简化文件下载的实现,提供更多的功能和兼容性支持。</p> </li> </ol> </blockquote> <blockquote> <p>这些方法各有优缺点:</p> <ul> <li> <p><strong>直接链接下载</strong>:简单方便,但无法进行权限控制和下载统计。</p> </li> <li> <p><strong>通过后端服务器提供下载接口</strong>:可以实现权限控制和下载统计,但需要后端服务器进行额外的处理。</p> </li> <li> <p><strong>使用HTML5的download属性</strong>:简单方便,但不适用于较老的浏览器。</p> </li> <li> <p><strong>使用JavaScript进行下载</strong>:可以在不刷新页面的情况下进行文件下载,但需要考虑浏览器兼容性和安全性。</p> </li> <li> <p><strong>使用第三方库</strong>:提供更多的功能和兼容性支持,但引入了额外的依赖。</p> </li> </ul> </blockquote> <h2>第11章 JDBC 数据库访问</h2> <p>1. JDBC能完成哪些工作?</p> <blockquote> <ol> <li> <p><strong>建立数据库连接</strong>:JDBC提供了<code>DriverManager</code>类和<code>DataSource</code>接口来建立与数据库的连接,可以连接各种不同类型的数据库。</p> </li> <li> <p><strong>执行SQL语句</strong>:通过JDBC可以执行数据库操作的SQL语句,包括查询、插入、更新和删除等操作。</p> </li> <li> <p><strong>处理查询结果</strong>:JDBC能够获取和处理SQL查询的结果集,将查询结果转化为Java对象或数据结构进行进一步处理。</p> </li> <li> <p><strong>事务管理</strong>:JDBC支持事务管理,可以通过<code>Connection</code>对象进行事务的提交、回滚和设置事务的隔离级别等操作。</p> </li> <li> <p><strong>元数据访问</strong>:JDBC可以获取数据库的元数据信息,包括表结构、索引、触发器等信息。</p> </li> <li> <p><strong>异常处理</strong>:JDBC提供了异常处理机制,能够捕获和处理数据库操作中可能出现的异常。</p> </li> <li> <p><strong>批处理操作</strong>:JDBC支持批处理操作,可以一次性执行多个SQL语句,提高数据库操作的效率。</p> </li> </ol> </blockquote> <p>2.使用纯Java 数据库驱动程序访问数据库时,有哪些步骤?</p> <p><span class="link-card-box"><span class="link-title">详情见此</span><span class="link-link"><img class="link-link-icon" src="http://img.e-com-net.com/image/info8/20cf6475f3a748749177a8d323f1e65c.jpg" alt="icon-default.png?t=N7T8" width="0" height="0">https://blog.csdn.net/qiqi_liuliu/article/details/131611766?spm=1001.2014.3001.5502</span></span>3. JDBC 连接数据库的常用方式有哪些?</p> <blockquote> <ol> <li> <p><strong>使用DriverManager</strong>:通过<code>DriverManager</code>类来获取数据库连接,使用数据库厂商提供的JDBC驱动程序来连接数据库。</p> </li> <li> <p><strong>使用DataSource</strong>:通过<code>DataSource</code>接口来获取数据库连接,这种方式通常用于连接池的管理,可以提高数据库连接的复用性和性能。</p> </li> <li> <p><strong>使用连接池</strong>:使用第三方连接池库,如Apache Commons DBCP、C3P0、HikariCP等,通过配置连接池参数来管理数据库连接,提高连接的复用性和性能。</p> </li> <li> <p><strong>使用框架</strong>:使用一些ORM(对象关系映射)框架,如Hibernate、MyBatis等,这些框架提供了自己的数据库连接管理机制。</p> </li> </ol> </blockquote> <p>4. 下列选项中,()不是JDBC 的工作任务。</p> <p>A. 与数据库建立连接<br> B. 操作数据库,处理数据库返回的结果<br> C. <strong>在网页中生成表格</strong><br> D. 向数据库管理系统发送SQL 语句</p> <p>5. 在JDBC中,()接口不能被 Connection 创建。</p> <p>A. Statement<br> B. PreparedStatement<br> C. CallableStatement<br> D. <strong>RowsetStatement</strong></p> <p>6. 查询结果集 ResultSet 对象是以统一的行列形式组织数据的,执行“ResultSet rs=stmt.executeQuery (“'select bid,name,author,publish,price from book”);”语句,得到的结果集rs 的列数为()。</p> <p>A. 4<br> B. <strong>5</strong><br> С. 6<br> D. 不确定</p> <p>7. 给出了如下的查询条件字符串 “String condition="insert book values(?,?,?,?,?)";”,()接口适合执行该 SQL 查询。</p> <p>A. Statement<br> C. CallableStatement<br> B. <strong>PreparedStatement</strong><br> D. 不确定</p> <h2>第12章 Ajax、JSON以及jQuery 技术</h2> <p>1. XMLHttpRequest 对象有()个返回状态值。</p> <p>A. 3<br> B. 4<br> С. <strong>5</strong><br> D. 6</p> <p>2. 对象 XMLHttpRequest 的属性 readyState值()表示异步访问服务器通信已经完成。</p> <p>A. 1<br> B. 2<br> С. 3<br> D. <strong>4</strong></p> <h2>第13章 电子商务平台的设计与实现</h2> <p>无</p> <h2>第14章 Struts 2 框架基础</h2> <p>1. result 的类型 redirectAction 表示()。</p> <p>A. 处理 action 链,跳转到下一个 action<br> B. 转发到一个 JSP<br> C. <strong>重定向到一个 action</strong><br> D. 重定向到一个 JSP</p> <p>2. result 的类型 redirect 表示()。</p> <p>A. 处理 action 链,跳转到下一个 action<br> B. 转发到一个 JSP<br> C. <strong>重定向到一个 action 或一个JSP</strong><br> D. 重定向到一个 JSP</p> <p>3. Struts 2 的默认配置文件是()。</p> <p>A. xeb.xml<br> B. <strong>struts.xml</strong><br> C. user.ml<br> D. server.xml</p> <p>4. 某 action 的配置如下:</p> <pre><code class="language-html"><action name="hello" class="action.HelloAction"> <result name="error">/error.jsp</result> </ action></code></pre> <p>当执行该action 时会调用对应类中的()方法。</p> <p>A. <strong>execute()</strong><br> B. doPost()<br> C. doGet()<br> D. service()</p> <p>5. 在 Struts2的 Web 应用 hello 中 struts.xml的配置如下:</p> <pre><code class="language-html"><package name="user" extends="struts-default" namespace="/my"> <action name="hello" class="action.HelloAction"> <result>/ success.jsp</result> </action> </package></code></pre> <p>需要访问该 action 时,输入的 URL 地址是(</p> <p>A. http://localhost:8080/hello/user/hello.action<br> B. http:/localhost:8080/hello/my/hello.jsp<br> C. <strong>http://localhost:8080/hello/my/hello.action</strong><br> D. http://localhost:8080/hello/user/hello.jsp</p> <p>6. result 的类型 dispatcher 表示()。</p> <p>A. 处理 action 链,跳转到下一个 action<br> B. <strong>转发到一个 JSP</strong><br> C. 重定向到一个 action<br> D. 重定向到一个 JSP</p> <p>7. 某 action 的配置如下:</p> <pre><code class="language-html">​​​​​​​<action name="hello" class="action.HelloAction"> <result>/main.jsp</result> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> <result name="input">/login.jsp</result> </action></code></pre> <p>调用该 action 后返回值是"success”,则显示的页面是()。</p> <p>A. main.jsp<br> B. <strong>success.jsp</strong><br> C. error.jsp<br> D. login.jsp</p> <p>8. 某 action 的配置如下:</p> <pre><code class="language-html"><action name="hello"> <result >/success.jsp</result> </action></code></pre> <p>访问该 action 时会调用()类。<br> A.  Action<br> B.  ActionSupport<br> C. <strong>HelloAction</strong><br> D. UserAction</p> <p>9. 某action 的配置如下:</p> <pre><code class="language-html"><action name="hello" class="action.HelloAction" method="update"> <result>/success.jsp</result> </action></code></pre> <p>访问该 action 时会执行 HelloAction 类中的()方法。</p> <p>A. execute<br> B. delete<br> C. select<br> D. <strong>update</strong></p> <p>10. 在 Struts 2的 Action 类中访问 Servlet API 有哪几种方法?其中与 HttpServlet 耦合的方法是哪几种?</p> <blockquote> <ol> <li> <p><strong>实现 ServletRequestAware 接口</strong>:通过实现 ServletRequestAware 接口,可以在Action类中获取HttpServletRequest对象。</p> </li> <li> <p><strong>实现 ServletResponseAware 接口</strong>:通过实现 ServletResponseAware 接口,可以在Action类中获取HttpServletResponse对象。</p> </li> <li> <p><strong>实现 ServletContextAware 接口</strong>:通过实现 ServletContextAware 接口,可以在Action类中获取ServletContext对象。</p> </li> <li> <p><strong>使用ServletActionContext类</strong>:ServletActionContext类提供了一些静态方法,可以方便地获取HttpServletRequest、HttpServletResponse等对象。</p> </li> </ol> <p>与HttpServlet耦合的方法通常是指直接依赖于HttpServlet的方法,这些方法通常是通过实现特定的接口或者继承特定的类来实现的。在Struts 2中,与HttpServlet耦合的方法包括:</p> <ul> <li>实现<code>ServletRequestAware</code>接口</li> <li>实现<code>ServletResponseAware</code>接口</li> <li>使用<code>ServletActionContext</code>类</li> </ul> </blockquote> <p>11. 结果类型redirect 与 redirectAction 的区别是什么?</p> <blockquote> <ol> <li> <p><strong>result类型redirect</strong>:</p> <ul> <li>当一个action执行完毕后,如果result类型为redirect,它会发送一个HTTP重定向到指定的URL。这意味着浏览器会收到一个302状态码,并重新请求指定的URL。</li> <li>适用于需要将用户重定向到另一个页面,例如在表单提交后重定向到一个结果页面。</li> </ul></li> <li> <p><strong>redirectAction</strong>:</p> <ul> <li><code>redirectAction</code>是一个特殊的result类型,它允许在执行完当前action后,重定向到另一个action。</li> <li>适用于需要在action执行后立即重定向到另一个action,而不经过任何JSP页面的情况。</li> </ul></li> </ol> </blockquote> <p>12. 在 Action 中接收请求参数有哪几种方式?你认为哪种方式比较方便?</p> <blockquote> <ol> <li> <p><strong>使用属性</strong>:在Action类中定义与请求参数同名的属性,并提供对应的setter方法,Struts 2会自动将请求参数的值注入到属性中。</p> </li> <li> <p><strong>实现 ParameterAware 接口</strong>:通过实现ParameterAware接口,可以在Action类中获取请求参数的Map。</p> </li> <li> <p><strong>使用属性驱动</strong>:通过在Action类中定义属性,并提供对应的setter方法,Struts 2会自动将请求参数的值注入到属性中,这种方式通常称为属性驱动。</p> </li> <li> <p><strong>使用模型驱动</strong>:通过实现ModelDriven接口,可以在Action类中使用一个模型对象来接收请求参数。</p> </li> <li> <p><strong>使用Servlet API</strong>:通过在Action类中获取HttpServletRequest对象,可以直接从请求中获取参数。</p> </li> </ol> </blockquote> <h2>第15章 Spring MVC 框架基础</h2> <p>1. 在开发 Spring MVC 应用时,如何部署 DispatcherServlet?又如何创建 Spring MVC的配置文件?</p> <blockquote> <p>部署DispatcherServlet:</p> <p>在web.xml中配置DispatcherServlet:</p> <pre><code class="language-html"><servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-mvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></code></pre> <p>创建Spring MVC的配置文件:</p> <p>2. 创建Spring MVC的配置文件(spring-mvc-servlet.xml),用于配置Spring MVC相关的内容,例如控制器、视图解析器、拦截器等。</p> <pre><code class="language-html"><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 配置控制器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 其他配置,如拦截器等 --> </beans></code></pre> </blockquote> <p>2. 简述 Spring MVC 的工作流程。</p> <blockquote> <ol> <li> <p><strong>客户端发送请求</strong>:客户端(如浏览器)发送HTTP请求到服务器。</p> </li> <li> <p><strong>DispatcherServlet接收请求</strong>:请求首先被DispatcherServlet接收,DispatcherServlet是Spring MVC中的核心控制器,它作为前端控制器负责统一请求的分发和处理。</p> </li> <li> <p><strong>HandlerMapping选择处理器</strong>:DispatcherServlet通过HandlerMapping来确定请求对应的处理器(Controller),HandlerMapping会根据请求的URL或其他条件来选择合适的处理器。</p> </li> <li> <p><strong>处理器执行</strong>:被选定的处理器(Controller)执行请求处理逻辑,处理器会根据请求的参数和业务逻辑来处理请求,并生成相应的数据模型(Model)。</p> </li> <li> <p><strong>ModelAndView创建</strong>:处理器将处理结果封装到ModelAndView对象中,该对象包含了视图名称和模型数据。</p> </li> <li> <p><strong>ViewResolver解析视图</strong>:DispatcherServlet使用ViewResolver来将逻辑视图名称解析为具体的视图对象。</p> </li> <li> <p><strong>视图渲染</strong>:视图对象负责将模型数据渲染为最终的输出,通常是HTML、JSON等格式的响应。</p> </li> <li> <p><strong>响应返回客户端</strong>:渲染后的视图结果会作为HTTP响应返回给客户端,客户端可以看到最终的处理结果。</p> </li> </ol> </blockquote> <p>3. 举例说明数据绑定的优点。</p> <blockquote> <ol> <li> <p><strong>简化开发</strong>:数据绑定可以减少开发人员编写的代码量。通过自动绑定用户输入到数据模型,开发人员无需手动编写大量的数据接收和验证逻辑。</p> </li> <li> <p><strong>减少重复代码</strong>:数据绑定可以减少重复的代码,例如在不同的表单中使用相同的数据模型,避免了重复编写数据接收和处理的代码。</p> </li> <li> <p><strong>提高代码可读性</strong>:使用数据绑定可以使代码更加清晰和易于理解。通过直接绑定到数据模型,可以清楚地了解数据的来源和如何被使用。</p> </li> <li> <p><strong>减少错误</strong>:手动处理用户输入数据可能会导致错误,例如类型转换错误、空指针异常等。数据绑定可以减少这些潜在的错误,提高应用程序的稳定性。</p> </li> <li> <p><strong>提高用户体验</strong>:数据绑定可以使用户在填写表单时更加便捷,减少了用户输入的复杂性,提高了用户体验。</p> </li> </ol> </blockquote> <p>4. Spring MVC 有哪些表单标签?其中,可以绑定集合数据的标签有哪些?</p> <blockquote> <ol> <li> <p><strong>表单标签</strong>:</p> <ul> <li><code><form:form></code>:用于创建表单,并将表单数据绑定到控制器的命令对象。</li> <li><code><form:input></code>:用于创建文本输入框。</li> <li><code><form:textarea></code>:用于创建文本域。</li> <li><code><form:password></code>:用于创建密码输入框。</li> <li><code><form:checkbox></code>:用于创建复选框。</li> <li><code><form:select></code>:用于创建下拉列表。</li> <li><code><form:radiobutton></code>:用于创建单选按钮。</li> <li><code><form:hidden></code>:用于创建隐藏字段。</li> </ul></li> <li> <p><strong>可以绑定集合数据的标签</strong>:</p> <ul> <li><code><form:select></code>:可以绑定一个集合或Map类型的数据到下拉列表。</li> <li><code><form:radiobuttons></code>:可以绑定一个集合或Map类型的数据到单选按钮组。</li> <li><code><form:checkboxes></code>:可以绑定一个集合或Map类型的数据到复选框组。</li> </ul></li> </ol> </blockquote> <p>5.@ModelAttribute 可实现哪些功能?</p> <blockquote> <ol> <li> <p><strong>数据预处理</strong>:<code>@ModelAttribute</code> 注解可以用于在请求处理方法执行之前,对数据进行预处理或初始化。通过在方法上标记 <code>@ModelAttribute</code> 注解,可以在每次请求到达处理方法之前执行该方法,从而准备数据供处理方法使用。</p> </li> <li> <p><strong>数据绑定</strong>:<code>@ModelAttribute</code> 注解可以用于将数据绑定到模型中。当一个请求处理方法返回一个对象时,Spring MVC会自动将该对象添加到模型中,如果在方法参数上使用 <code>@ModelAttribute</code> 注解,也可以将数据绑定到指定的对象中。</p> </li> <li> <p><strong>表单数据绑定</strong>:<code>@ModelAttribute</code> 注解可以用于将表单数据绑定到对象中。当处理包含表单数据的请求时,可以使用 <code>@ModelAttribute</code> 注解将表单数据直接绑定到对象的属性中,简化数据绑定的过程。</p> </li> <li> <p><strong>全局数据传递</strong>:<code>@ModelAttribute</code> 注解可以用于在多个请求处理方法中共享数据。通过在控制器类中定义一个带有 <code>@ModelAttribute</code> 注解的方法,可以在该控制器中的所有请求处理方法中共享该方法返回的数据。</p> </li> <li> <p><strong>初始化表单数据</strong>:<code>@ModelAttribute</code> 注解可以用于在表单页面初始化时提供数据。通过在控制器中定义一个带有 <code>@ModelAttribute</code> 注解的方法,可以在表单页面初始化时将数据传递给表单。</p> </li> </ol> </blockquote> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1747156178435063808"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Web,Web,期末复习,学习)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1885001174722080768.htm" title="Go语言学习笔记——gin实现验证码" target="_blank">Go语言学习笔记——gin实现验证码</a> <span class="text-muted">PPPsych</span> <a class="tag" taget="_blank" href="/search/Go%E7%B2%BE%E8%BF%9B/1.htm">Go精进</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/gin/1.htm">gin</a> <div>文章目录Golang验证码知识结构下载包导包配置session创建中间件生成图片生成验证码验证前端页面测试Golang验证码知识结构ginsession中间件表单处理路由下载包gogetgithub.com/dchest/captcha导包import("bytes""net/http""time""github.com/dchest/captcha""github.com/gin-contrib</div> </li> <li><a href="/article/1884999786982076416.htm" title="gin框架学习笔记" target="_blank">gin框架学习笔记</a> <span class="text-muted">蛮吉(lambda)</span> <a class="tag" taget="_blank" href="/search/go/1.htm">go</a><a class="tag" taget="_blank" href="/search/gin/1.htm">gin</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a> <div>gin框架学习笔记官网reviewgin是用go编写的web框架,由于httprputer(基于radix树路由)速度快了40倍,支持中间件,路由组处理,json等多方式验证,内置了json/xml/html等渲染,是一个易于使用的go框架如果是用常量,比如http.statusOkimpport“net/http”gin使用默认的encoding/json作为默认的json包,但是可以通过其他标</div> </li> <li><a href="/article/1884996256393129984.htm" title="Gin-Vue-Admin:构建高效全栈应用的利器" target="_blank">Gin-Vue-Admin:构建高效全栈应用的利器</a> <span class="text-muted">赵鹰伟Meadow</span> <div>Gin-Vue-Admin:构建高效全栈应用的利器gin-vue-adminflipped-aurora/gin-vue-admin:是一个基于Gin和Vue.js的后台管理系统。适合用于需要构建Web后台管理界面的项目。特点是可以提供前后端分离的系统架构,支持快速开发和丰富的功能集成。项目地址:https://gitcode.com/gh_mirrors/gi/gin-vue-admin在现代软</div> </li> <li><a href="/article/1884991470243475456.htm" title="留学生scratch计算机haskell函数ocaml编程ruby语言prolog作业VB" target="_blank">留学生scratch计算机haskell函数ocaml编程ruby语言prolog作业VB</a> <span class="text-muted">matlabgoodboy</span> <a class="tag" taget="_blank" href="/search/ruby/1.htm">ruby</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>您列出了一系列编程语言和技术,这些可能是您在留学期间需要学习或完成作业的内容。以下是对每个项目的简要说明和它们可能涉及的领域或用途:Scratch:Scratch是一种图形化编程语言,专为儿童和初学者设计,用于教授编程基础概念。它通过拖拽代码块来创建程序,非常适合学习算法、逻辑和基本的编程概念。计算机(科学):这是一个广泛的领域,涉及计算机硬件、软件、算法、数据结构、网络安全等多个方面。留学生可能</div> </li> <li><a href="/article/1884991218002227200.htm" title="Python复习总结——期末复习知识点总结大全" target="_blank">Python复习总结——期末复习知识点总结大全</a> <span class="text-muted">HhhDreamof_</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Python复习总结——期末复习知识点总结大全第1章程序设计基本方法1.1计算机的概念1.2程序设计语言1.3Python语言概述1.4Python语言开发环境1.5程序的基本编写方法1.6Python语言的版本更迭第2章Python程序实例解析2.1实例1:温度转换2.2Python程序语法元素分析2.3实例2:Python蟒蛇绘制2.4turtle语法元素分析第3章基本数据类型3.1数字类型3</div> </li> <li><a href="/article/1884988190834618368.htm" title="前馈神经网络——最基本的神经网络架构" target="_blank">前馈神经网络——最基本的神经网络架构</a> <span class="text-muted">纠结哥_Shrek</span> <a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>前馈神经网络(FeedforwardNeuralNetwork,FNN)是一种基本的人工神经网络类型,其结构简单,广泛应用于各种机器学习任务。它由多个层次组成,包括输入层、隐藏层和输出层。FNN中的每一层与下一层的神经元之间是完全连接的,但不同层之间的神经元不相互连接。FNN以其数据流动方式来命名——前馈,意味着信息从输入层开始,经过一系列的隐藏层,最终输出结果,不存在任何循环或反馈连接。与递归神</div> </li> <li><a href="/article/1884988064468627456.htm" title="pytorch深度Q网络" target="_blank">pytorch深度Q网络</a> <span class="text-muted">纠结哥_Shrek</span> <a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>DQN引入了深度神经网络来近似Q函数,解决了传统Q-learning在处理高维状态空间时的瓶颈,尤其是在像Atari游戏这样的复杂环境中。DQN的核心思想是使用神经网络Q(s,a;θ)Q(s,a;\theta)Q(s,a;θ)来近似Q值函数,其中θ\thetaθ是神经网络的参数。DQN的关键创新包括:经验回放(ExperienceReplay):在强化学习中,当前的学习可能会依赖于最近的经验,容易</div> </li> <li><a href="/article/1884986676888006656.htm" title="如何解决Webview和H5缓存问题,确保每次加载最新版本的资源" target="_blank">如何解决Webview和H5缓存问题,确保每次加载最新版本的资源</a> <span class="text-muted">qq_39279448</span> <a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a> <div>WebView用于加载H5页面是常见的做法,它能够加载远程的HTML、CSS、JavaScript资源,并且让Web应用嵌入到原生App中。然而,WebView的缓存机制有时会导致用户看到的是旧版本的页面或资源,尤其是在H5发版后,iOS端用户可能仍然加载到缓存的旧页面,造成了不一致的体验。本篇文章将详细分析这个问题的根本原因,并介绍一些有效的缓存处理策略,确保每次加载的都是最新的资源。一、Web</div> </li> <li><a href="/article/1884986296280084480.htm" title="AI光速发展的时代,普通人怎么才能上车?" target="_blank">AI光速发展的时代,普通人怎么才能上车?</a> <span class="text-muted">头脑旋风</span> <a class="tag" taget="_blank" href="/search/AI%E5%8F%98%E7%8E%B0%E4%B9%8B%E8%B7%AF/1.htm">AI变现之路</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>文章开始之前希望大家支持一下我独立开发的微信小程序“头脑旋风”,或微信扫描我的头像进入,谢谢支持~在人工智能快速发展的今天,普通人上车并非易事,但通过系统化的策略和持续的努力,是可以实现个人成长和职业转型的。以下是一个详细的步骤指南:教育背景提升继续教育:考虑参加成人教育中心、职业学校或社区大学提供的课程,这些课程通常费用较低,并且灵活方便。在线学习平台:利用Coursera、edX、Udacit</div> </li> <li><a href="/article/1884985287923265536.htm" title="【机器学习】如何在Jupyter Notebook中安装库以及简单使用Jupyter实现单变量线性回归的模型f" target="_blank">【机器学习】如何在Jupyter Notebook中安装库以及简单使用Jupyter实现单变量线性回归的模型f</a> <span class="text-muted">Lossya</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/jupyter/1.htm">jupyter</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92/1.htm">线性回归</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>引言JupyterNotebook中有一些魔法指令,需要安装第三方库文章目录引言一、安装方法方法一:使用`pip`或`conda`命令方法二:在命令行(终端或命令提示符)中安装二、使用JupyterNotebook实现单变量线性回归的模型fw,bf_{w,b}fw,b2.1工具2.2问题陈述2.3创建`x_train`和`y_train`变量2.4训练示例的数量`m`2.5训练示例`x_i,y_i</div> </li> <li><a href="/article/1884983272790880256.htm" title="SQLAlchemy ORM在Python Web开发中的核心作用探究" target="_blank">SQLAlchemy ORM在Python Web开发中的核心作用探究</a> <span class="text-muted">不一样的信息安全</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%9D%82%E7%83%A9/1.htm">网络杂烩</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>摘要在PythonWeb开发领域,SQLAlchemyORM扮演着至关重要的角色。作为一种对象关系映射工具,它能够将Python类与数据库表相映射,实现数据行与Python对象之间的转换。开发者可以使用面向对象的方法操作数据库,无需直接编写SQL语句,从而大幅提升开发效率并降低出错概率。SQLAlchemyORM提供了一套强大而灵活的数据库操作方法,助力开发者快速构建和维护复杂的数据模型。关键词S</div> </li> <li><a href="/article/1884981001722064896.htm" title="学习python你必须弄懂的 Python、Pycharm、Anaconda 三者之间的关系" target="_blank">学习python你必须弄懂的 Python、Pycharm、Anaconda 三者之间的关系</a> <span class="text-muted">经纬数智</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/conda/1.htm">conda</a> <div>Python作为深度学习和人工智能学习的热门语言,学习一门语言,除了学会其简单的语法之外还需要对其进行运行和实现,才能实现和发挥其功能和作用。下面来介绍运行Python代码常用到的工具总结。一.Python、Pycharm、Anaconda关系介绍1.PythonPython是一种跨平台的计算机程序语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(</div> </li> <li><a href="/article/1884979363296899072.htm" title="Nginx配置反向代理" target="_blank">Nginx配置反向代理</a> <span class="text-muted">我是小 白</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/1.htm">代理模式</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a> <div>背景:现实生产环境中,部署的环境经常是离线的,通常要经过跳板机才能到生产机器上,且生产机器不带web界面,导致需要进行测试web的时候无法测试,这时候就很需要一个nginx代理机器环境:a为windows或带web的linux,充当客户端,b为跳板机,c为生产机器在线/离线安装nginx在线安装#安装所需环境[root@nginxdata]#yuminstall-yopenssl-develpcr</div> </li> <li><a href="/article/1884979110522974208.htm" title="Python语法学习" target="_blank">Python语法学习</a> <span class="text-muted">weixin_44256848</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>Python标识符Python中的标识符是区分大小写的。以下划线开头的标识符是有特殊意义的。以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用fromxxximport*而导入。以双下划线开头的__foo代表类的私有成员,以双下划线开头和结尾的__foo__代表Python里特殊方法专用的标识,如__init__()代表类的构造函数。Python可以同一行显示多条</div> </li> <li><a href="/article/1884975575353847808.htm" title="C、C++、Java到Python,编程入门学习什么语言好?" target="_blank">C、C++、Java到Python,编程入门学习什么语言好?</a> <span class="text-muted">明天会比今天更好</span> <a class="tag" taget="_blank" href="/search/C%2FC%2B%2B/1.htm">C/C++</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/1.htm">编程入门</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a> <div>最近,TIOBE更新了7月的编程语言榜单,常年霸榜的C、Java和Python依然蝉联前三位。万万没想到的是,R语言居然冲到了第八位,创下了史上最佳记录。而且后续随着业内对数据统计和挖掘需求的上涨,R语言热度颇有些势不可挡的架势。然而作为程序员吃饭的工具,编程语言之间也形成了某种鄙视链,各大论坛里弥漫着剑拔弩张的气氛,众口难调。也难怪有很多初学者会有疑惑,为什么会有这么多编程语言,我到底应该学什么</div> </li> <li><a href="/article/1884973811640627200.htm" title="STM32学习-CPU概念理解记录" target="_blank">STM32学习-CPU概念理解记录</a> <span class="text-muted">⁽˙ ³˙⁾</span> <a class="tag" taget="_blank" href="/search/stm32/1.htm">stm32</a> <div>此页仅做记录之用以下图中为个人对stm32一些基础概念GPIO,寄存器与寄存器组之间关系的梳理,可能有部分错误记录于06/08/2021更新一下:一个端口(GPIOx)只有16根引脚,最常用的引脚使用方式是:1.打开端口时钟(ClockGPIOx)2.CRL+CRH配置端口3.BRR|BSRR给对应针脚置0|1以开启关闭针脚BRR的高16多余,BRR与BSRR对比如下:图引自:https://bl</div> </li> <li><a href="/article/1884970531917197312.htm" title="Python常用函数总结(77个)超全面超详细_python函数大全及详解" target="_blank">Python常用函数总结(77个)超全面超详细_python函数大全及详解</a> <span class="text-muted">小怡在干什么</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章主要介绍了python77种常用的基础函数,方便后期使用。学习python的朋友可以收藏文末领取Python全套最新学习资源Python常用函数总结print()函数:打印字符串raw_input()函数:从用户键盘捕获字符len()函数:计算字符长度format(12.3654,‘6.2f’/‘0.3%’)函数:实现格式化输出type()函数:查询对象的类型int()函数、float()函数</div> </li> <li><a href="/article/1884970404947226624.htm" title="【25美赛A题-F题全题目解析】2025年美国大学生数学建模竞赛(MCM/ICM)解题思路|完整代码论文集合" target="_blank">【25美赛A题-F题全题目解析】2025年美国大学生数学建模竞赛(MCM/ICM)解题思路|完整代码论文集合</a> <span class="text-muted">Tina表姐</span> <a class="tag" taget="_blank" href="/search/25%E7%BE%8E%E8%B5%9B/1.htm">25美赛</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/1.htm">数学建模</a> <div>我是Tina表姐,毕业于中国人民大学,对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在,我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合,专为本次赛题设计,旨在帮助您深入理解数学建模的每一个环节。赛中将带来25美赛A题-F题全题目完整内容2025美赛比赛时间报名截止:2025年1月24日凌晨04:00之前</div> </li> <li><a href="/article/1884967253171040256.htm" title="如何使用 Nginx 配置反向代理?" target="_blank">如何使用 Nginx 配置反向代理?</a> <span class="text-muted">IT专家-大狗</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>Nginx是一款高性能的开源Web服务器和反向代理服务器,广泛应用于负载均衡、缓存和静态文件服务。配置Nginx进行反向代理可以有效提高服务器性能,同时保护后端服务。本文将带您了解如何使用Nginx配置反向代理,并结合实际场景,使用Chrome浏览器进行调试和验证。什么是反向代理?反向代理是一种服务器设置,客户端的请求会首先经过代理服务器,再由代理服务器将请求转发至后端服务器。反向代理的主要功能包</div> </li> <li><a href="/article/1884963344465588224.htm" title="CUDA编程(一):GPU计算与CUDA编程简介" target="_blank">CUDA编程(一):GPU计算与CUDA编程简介</a> <span class="text-muted">AI Player</span> <a class="tag" taget="_blank" href="/search/CUDA/1.htm">CUDA</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/CUDA/1.htm">CUDA</a><a class="tag" taget="_blank" href="/search/NVIDIA/1.htm">NVIDIA</a> <div>CUDA编程(一):GPU计算与CUDA编程简介GPU计算GPU硬件资源GPU软件资源GPU存储资源CUDA编程GPU计算NVIDIA公司发布的CUDA是建立在GPU上的一个通用并行计算平台和编程模型,CUDA编程可以利用GPU的并行计算引擎来更加高效地解决比较复杂的计算难题。GPU的并行计算最成功的一个应用就是深度学习领域。GPU通常不作为一个独立运行的计算平台,而需要与CPU协同工作,它可以看</div> </li> <li><a href="/article/1884961452058537984.htm" title="AI 大模型创业:如何利用商业优势?" target="_blank">AI 大模型创业:如何利用商业优势?</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AEAI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">大数据AI人工智能</a><a class="tag" taget="_blank" href="/search/ChatGPT/1.htm">ChatGPT</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/kotlin/1.htm">kotlin</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%8E%82%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">大厂程序员</a><a class="tag" taget="_blank" href="/search/%E7%A1%85%E5%9F%BA%E8%AE%A1%E7%AE%97/1.htm">硅基计算</a><a class="tag" taget="_blank" href="/search/%E7%A2%B3%E5%9F%BA%E8%AE%A1%E7%AE%97/1.htm">碳基计算</a><a class="tag" taget="_blank" href="/search/%E8%AE%A4%E7%9F%A5%E8%AE%A1%E7%AE%97/1.htm">认知计算</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E7%89%A9%E8%AE%A1%E7%AE%97/1.htm">生物计算</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/AIGC/1.htm">AIGC</a><a class="tag" taget="_blank" href="/search/AGI/1.htm">AGI</a><a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">系统架构设计</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E5%93%B2%E5%AD%A6/1.htm">软件哲学</a><a class="tag" taget="_blank" href="/search/Agent/1.htm">Agent</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98%E5%AE%9E%E7%8E%B0%E8%B4%A2%E5%AF%8C%E8%87%AA%E7%94%B1/1.htm">程序员实现财富自由</a> <div>第1章:AI大模型概述1.1AI大模型的概念与演进AI大模型(Large-scaleArtificialIntelligenceModels)是指通过大规模数据训练得到的复杂神经网络模型。这些模型通常具有数十亿甚至千亿个参数,能够实现从自然语言处理到计算机视觉、语音识别等广泛领域的任务。AI大模型的概念起源于20世纪80年代,当时研究人员提出了深度学习(DeepLearning)这一概念。深度学习</div> </li> <li><a href="/article/1884960695963938816.htm" title="学霸带你游戏化掌握展示技巧变身表达达人" target="_blank">学霸带你游戏化掌握展示技巧变身表达达人</a> <span class="text-muted">Snow Hide(雪诺海德)</span> <a class="tag" taget="_blank" href="/search/%E7%BA%BD%E9%9B%AA%E6%BE%B3%E8%AF%BA%E5%8A%A0%E6%B5%B7%E7%BE%8E%E5%BE%B7/1.htm">纽雪澳诺加海美德</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E9%9C%B8%E6%8C%BA%E6%8B%94/1.htm">学霸挺拔</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E9%9C%B8%E6%8C%BA%E6%8B%94/1.htm">学霸挺拔</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E5%B1%95%E7%A4%BA/1.htm">知识展示</a><a class="tag" taget="_blank" href="/search/%E4%BA%92%E5%8A%A8%E8%AE%BE%E8%AE%A1/1.htm">互动设计</a><a class="tag" taget="_blank" href="/search/%E8%A1%A8%E8%BE%BE%E6%8A%80%E5%B7%A7/1.htm">表达技巧</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E5%9B%BE%E8%B0%B1/1.htm">知识图谱</a> <div>开启知识分享之旅分享是学习的升华,将个人理解通过展示传递给他人,不仅是输出,更是反复内化的过程。通过规划准备、深入理解、优化表达、实际实践以及巩固提升五大环节,您将掌握将知识转化为展示力的全面方法。以下内容,将带您逐步探索这趟丰富的旅程。规划与实践并重的必备前奏清晰的展示目标和细致的计划是成功的起点。从主题确定到时间分配,精准规划让整个过程井井有条,为顺利实施铺平道路。深挖内容是展示的坚实基石展示</div> </li> <li><a href="/article/1884959182759718912.htm" title="GPU-CUDA编程学习(一)" target="_blank">GPU-CUDA编程学习(一)</a> <span class="text-muted">☞北海北☜</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>Hello,CUDA最近在学习GUP编程,故此记录下学习进度。#include__global__voidmyfirstkernel(void){}intmain(void){myfirstkernel>>();printf("hello,CUDA!\n");return0;}不难看出CUDA代码基本上和ANSIC代码一样,只是增加了一些关键字来利用数据并行性global相当于声明函数在设备中运行</div> </li> <li><a href="/article/1884956536938229760.htm" title="第25天:web攻防-通用漏洞&sql读写注入&MYSQL&MSSQL" target="_blank">第25天:web攻防-通用漏洞&sql读写注入&MYSQL&MSSQL</a> <span class="text-muted">不灭锦鲤</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/sqlserver/1.htm">sqlserver</a> <div>#知识点:1、sql注入-mysql数据库2、sql注入-mssql数据库3、sql注入-postgreSQL数据库#详细点:Access无高权限注入点-只能猜解,还是暴力猜解MYSQL,PostgreSQL,MSSQL高权限注入,可升级为读写执行。演示案例MYSQL读取文件内容,记把my.ini改成utf-8的格式使用load_file读取网站关键性内容,在sql注入中,我试了读取不道,明明在数</div> </li> <li><a href="/article/1884953763467292672.htm" title="SpringBoot:RabbitMQ-延迟队列" target="_blank">SpringBoot:RabbitMQ-延迟队列</a> <span class="text-muted">csdnlaoban</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/java-rabbitmq/1.htm">java-rabbitmq</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a> <div>《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!com.alibabafastjson1.2.46org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtest属性配置在application.propertie</div> </li> <li><a href="/article/1884953509518962688.htm" title="java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet" target="_blank">java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet</a> <span class="text-muted">漫无目的行走的月亮</span> <div>java.lang.NoSuchMethodException:org.apache.catalina.deploy.WebXmladdServlet-------------------------------------------------------------------------------------------------------------------?解决此异常的方法是</div> </li> <li><a href="/article/1884947458933452800.htm" title="咱们一起学C++第二十七篇:之C++程序结构与“Hello, World!”深度剖析" target="_blank">咱们一起学C++第二十七篇:之C++程序结构与“Hello, World!”深度剖析</a> <span class="text-muted">一杯年华@编程空间</span> <a class="tag" taget="_blank" href="/search/%E5%92%B1%E4%BB%AC%E4%B8%80%E8%B5%B7%E5%AD%A6%E4%B9%A0C%2B%2B/1.htm">咱们一起学习C++</a><a class="tag" taget="_blank" href="/search/visual/1.htm">visual</a><a class="tag" taget="_blank" href="/search/studio/1.htm">studio</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a><a class="tag" taget="_blank" href="/search/emacs/1.htm">emacs</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a> <div>咱们一起学C++第二十七篇:之C++程序结构与“Hello,World!”深度剖析在C++学习的征程中,我们共同探索,不断深入理解这门语言的奥秘。此前,我们学习了编写第一个C++程序所需的基础知识,包括iostream类的使用和命名空间的初步概念。今天,我们将进一步剖析C++程序的基本结构,详细解读经典的“Hello,World!”程序,深入理解其背后的原理和C++语言的特性,这对于我们掌握C++</div> </li> <li><a href="/article/1884946197949509632.htm" title="AI会对你的行业产生什么影响" target="_blank">AI会对你的行业产生什么影响</a> <span class="text-muted">网络安全我来了</span> <a class="tag" taget="_blank" href="/search/IT%E6%8A%80%E6%9C%AF/1.htm">IT技术</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>AI对行业的影响:全面解析与展望在当今这个瞬息万变的时代,人工智能(AI)正如同一个强大的引擎,驱动着各个行业的迅猛发展。这不仅仅是一种技术的崛起,更是全球经济和社会结构的深刻变革。今天,让我们深入解析AI,尤其是生成式AI,如何影响我们的工作与生活,以及我们可以期待的未来。生成式AI的迅猛崛起生成式AI的定义与特点生成式AI,简单来说,就是机器学习的一个分支,通过学习大量数据,生成新的内容。这就</div> </li> <li><a href="/article/1884945312200585216.htm" title="Open WebUI应用实践" target="_blank">Open WebUI应用实践</a> <span class="text-muted">孙将帼</span> <div>open-webui/open-webui:User-friendlyWebUIforLLMs(FormerlyOllamaWebUI)(github.com)Tutorial|OpenWebUIOpenWebUITip:OpenWebUI、Ollama、Helm、ChromaDB、RAG、Pipelines、sentence-transformers库、1、OpenWebUI是一个可扩展的、自托</div> </li> <li><a href="/article/1884945310199902208.htm" title="【高效学习方法分享】费曼学习法" target="_blank">【高效学习方法分享】费曼学习法</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/%E6%AF%8F%E6%9C%88%E6%8E%A8%E4%B9%A6/1.htm">每月推书</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>费曼学习法费曼学习法是美国著名物理学家理查德·费曼总结出来的一种学习方法。费曼学习法的核心是:“用转述、教给别人的方法巩固自己的知识”。具体步骤包括四个步骤:确定学习目标:将一个自己不理解的、没见过的概念或难题写在纸上。像老师一样教给别人:模拟自己是一位老师,面对完全不懂这个领域的人,用自己的话,尽可能具体形象地讲诉。回顾:找到漏洞,重新学习反思第2步遇到的问题,哪些地方卡壳了?哪些地方对方没有真</div> </li> <li><a href="/article/122.htm" title="java数字签名三种方式" target="_blank">java数字签名三种方式</a> <span class="text-muted">知了ing</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a> <div>以下3钟数字签名都是基于jdk7的 1,RSA String password="test"; // 1.初始化密钥 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(51</div> </li> <li><a href="/article/249.htm" title="Hibernate学习笔记" target="_blank">Hibernate学习笔记</a> <span class="text-muted">caoyong</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King 2>、搭建Hibernate的开发环境      a>、添加jar包:      aa>、hibernatte开发包中/lib/required/所</div> </li> <li><a href="/article/376.htm" title="设计模式之装饰器模式Decorator(结构型)" target="_blank">设计模式之装饰器模式Decorator(结构型)</a> <span class="text-muted">漂泊一剑客</span> <a class="tag" taget="_blank" href="/search/Decorator/1.htm">Decorator</a> <div>1. 概述        若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。       </div> </li> <li><a href="/article/503.htm" title="读取磁盘文件txt,并输入String" target="_blank">读取磁盘文件txt,并输入String</a> <span class="text-muted">一炮送你回车库</span> <a class="tag" taget="_blank" href="/search/String/1.htm">String</a> <div>public static void main(String[] args) throws IOException {    String fileContent = readFileContent("d:/aaa.txt");    System.out.println(fileContent);    </div> </li> <li><a href="/article/630.htm" title="js三级联动下拉框" target="_blank">js三级联动下拉框</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/%E4%B8%89%E7%BA%A7%E8%81%94%E5%8A%A8/1.htm">三级联动</a> <div> //三级联动 省/直辖市<select id="province"></select> 市/省直辖<select id="city"></select> 县/区 <select id="area"></select> </div> </li> <li><a href="/article/757.htm" title="erlang之parse_transform编译选项的应用" target="_blank">erlang之parse_transform编译选项的应用</a> <span class="text-muted">616050468</span> <a class="tag" taget="_blank" href="/search/parse_transform/1.htm">parse_transform</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">游戏服务器</a><a class="tag" taget="_blank" href="/search/%E5%B1%9E%E6%80%A7%E5%90%8C%E6%AD%A5/1.htm">属性同步</a><a class="tag" taget="_blank" href="/search/abstract_code/1.htm">abstract_code</a> <div>         最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少</div> </li> <li><a href="/article/884.htm" title="JAVA JSON的解析" target="_blank">JAVA JSON的解析</a> <span class="text-muted">darkranger</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> // { // “Total”:“条数”, // Code: 1, // // “PaymentItems”:[ // { // “PaymentItemID”:”支款单ID”, // “PaymentCode”:”支款单编号”, // “PaymentTime”:”支款日期”, // ”ContractNo”:”合同号”, // </div> </li> <li><a href="/article/1011.htm" title="POJ-1273-Drainage Ditches" target="_blank">POJ-1273-Drainage Ditches</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/ACM_POJ/1.htm">ACM_POJ</a> <div>POJ-1273-Drainage Ditches http://poj.org/problem?id=1273 基本的最大流,按LRJ的白书写的 #include<iostream> #include<cstring> #include<queue> using namespace std; #define INF 0x7fffffff int ma</div> </li> <li><a href="/article/1138.htm" title="工作流Activiti5表的命名及含义" target="_blank">工作流Activiti5表的命名及含义</a> <span class="text-muted">atongyeye</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a><a class="tag" taget="_blank" href="/search/Activiti/1.htm">Activiti</a> <div>activiti5 - http://activiti.org/designer/update在线插件安装 activiti5一共23张表 Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。 ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 A</div> </li> <li><a href="/article/1265.htm" title="android的广播机制和广播的简单使用" target="_blank">android的广播机制和广播的简单使用</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%B9%BF%E6%92%AD%E6%9C%BA%E5%88%B6/1.htm">广播机制</a><a class="tag" taget="_blank" href="/search/%E5%B9%BF%E6%92%AD%E7%9A%84%E6%B3%A8%E5%86%8C/1.htm">广播的注册</a> <div>      Android广播机制简介 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应</div> </li> <li><a href="/article/1392.htm" title="Spring事务传播行为详解" target="_blank">Spring事务传播行为详解</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1%E4%BC%A0%E6%92%AD%E8%A1%8C%E4%B8%BA/1.htm">事务传播行为</a> <div>        在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。         Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这</div> </li> <li><a href="/article/1519.htm" title="eidtplus operate" target="_blank">eidtplus operate</a> <span class="text-muted">征客丶</span> <a class="tag" taget="_blank" href="/search/eidtplus/1.htm">eidtplus</a> <div>开启列模式: Alt+C 鼠标选择   OR   Alt+鼠标左键拖动 列模式替换或复制内容(多行): 右键-->格式-->填充所选内容-->选择相应操作 OR Ctrl+Shift+V(复制多行数据,必须行数一致) -------------------------------------------------------</div> </li> <li><a href="/article/1646.htm" title="【Kafka一】Kafka入门" target="_blank">【Kafka一】Kafka入门</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧   下载Kafka http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz 2.10表示Scala的版本,而0.8.1.1表示Kafka</div> </li> <li><a href="/article/1773.htm" title="Spring 事务实现机制" target="_blank">Spring 事务实现机制</a> <span class="text-muted">BlueSkator</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%90%86/1.htm">代理</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1/1.htm">事务</a> <div>Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口 </div> </li> <li><a href="/article/1900.htm" title="bootstrap源码学习与示例:bootstrap-dropdown(转帖)" target="_blank">bootstrap源码学习与示例:bootstrap-dropdown(转帖)</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a><a class="tag" taget="_blank" href="/search/dropdown/1.htm">dropdown</a> <div>bootstrap-dropdown组件是个烂东西,我读后的整体感觉。 一个下拉开菜单的设计: <ul class="nav pull-right"> <li id="fat-menu" class="dropdown"> </div> </li> <li><a href="/article/2027.htm" title="读《研磨设计模式》-代码笔记-中介者模式-Mediator" target="_blank">读《研磨设计模式》-代码笔记-中介者模式-Mediator</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ /* * 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。 * 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 * * 在我看来,Mediator模式是把多个对象(</div> </li> <li><a href="/article/2154.htm" title="常用代码记录" target="_blank">常用代码记录</a> <span class="text-muted">chenjunt3</span> <a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/Excel/1.htm">Excel</a><a class="tag" taget="_blank" href="/search/J%23/1.htm">J#</a> <div>  1、单据设置某行或某字段不能修改 //i是行号,"cash"是字段名称 getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false); //取得单据表体所有项用以上语句做循环就能设置整行了 getBillC</div> </li> <li><a href="/article/2281.htm" title="搜索引擎与工作流引擎" target="_blank">搜索引擎与工作流引擎</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8/1.htm">网络应用</a> <div>      最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想)   -----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先</div> </li> <li><a href="/article/2408.htm" title="oracle Health Monitor" target="_blank">oracle Health Monitor</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/Health+Monitor/1.htm">Health Monitor</a> <div>About Health Monitor Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database. About Health Monitor Checks Health M</div> </li> <li><a href="/article/2535.htm" title="JSON字符串转换为对象" target="_blank">JSON字符串转换为对象</a> <span class="text-muted">dieslrae</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a> <div>    作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了.   </div> </li> <li><a href="/article/2662.htm" title="C语言学习八结构体,综合应用,学生管理系统" target="_blank">C语言学习八结构体,综合应用,学生管理系统</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a> <div>实现功能的代码: # include <stdio.h> # include <malloc.h> struct Student { int age; float score; char name[100]; }; int main(void) { int len; struct Student * pArr; int i,</div> </li> <li><a href="/article/2789.htm" title="vagrant学习笔记" target="_blank">vagrant学习笔记</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/vagrant/1.htm">vagrant</a> <div>想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant   1. vagrant virtualbox 下载安装 https://www.vagrantup.com/downloads.html https://www.virtualbox.org/wiki/Downloads   查看安装在命令行输入vagrant     2.</div> </li> <li><a href="/article/2916.htm" title="14.性能优化-优化-软件配置优化" target="_blank">14.性能优化-优化-软件配置优化</a> <span class="text-muted">frank1234</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E9%85%8D%E7%BD%AE/1.htm">软件配置</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a> <div>1.Tomcat线程池 修改tomcat的server.xml文件: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m</div> </li> <li><a href="/article/3043.htm" title="一个不错的shell 脚本教程 入门级" target="_blank">一个不错的shell 脚本教程 入门级</a> <span class="text-muted">HarborChung</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a> <div>一个不错的shell 脚本教程 入门级 建立一个脚本   Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。   如同其他语言一样</div> </li> <li><a href="/article/3170.htm" title="Spring4新特性——核心容器的其他改进" target="_blank">Spring4新特性——核心容器的其他改进</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/1.htm">动态代理</a><a class="tag" taget="_blank" href="/search/spring4/1.htm">spring4</a><a class="tag" taget="_blank" href="/search/%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5/1.htm">依赖注入</a> <div>Spring4新特性——泛型限定式依赖注入 Spring4新特性——核心容器的其他改进 Spring4新特性——Web开发的增强 Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC  Spring4新特性——Groovy Bean定义DSL Spring4新特性——更好的Java泛型操作API  Spring4新</div> </li> <li><a href="/article/3297.htm" title="Linux设置tomcat开机启动" target="_blank">Linux设置tomcat开机启动</a> <span class="text-muted">liuxingguome</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%9C%BA%E8%87%AA%E5%90%AF%E5%8A%A8/1.htm">开机自启动</a> <div>执行命令sudo gedit /etc/init.d/tomcat6 然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。 #!/bin/bash # # /etc/rc.d/init.d/tomcat # init script for tomcat precesses</div> </li> <li><a href="/article/3424.htm" title="第13章 Ajax进阶(下)" target="_blank">第13章 Ajax进阶(下)</a> <span class="text-muted">onestopweb</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a> <div>index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/</div> </li> <li><a href="/article/3551.htm" title="Troubleshooting Crystal Reports off BW" target="_blank">Troubleshooting Crystal Reports off BW</a> <span class="text-muted">blueoxygen</span> <a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a> <div>http://wiki.sdn.sap.com/wiki/display/BOBJ/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE   Quite useful, especially this part: SAP BW connectivity For t</div> </li> <li><a href="/article/3678.htm" title="Java开发熟手该当心的11个错误" target="_blank">Java开发熟手该当心的11个错误</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收 测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为</div> </li> <li><a href="/article/3805.htm" title="正则表达式大全" target="_blank">正则表达式大全</a> <span class="text-muted">yang852220741</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div>今天向大家分享正则表达式大全,它可以大提高你的工作效率 正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。 一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>