1、JSP概述


         1.1为什么要使用JSP

       由于在Servlet中嵌入html代码非常麻烦,这常常使得Servlet很庞大,不便于页面的修改,难以维护,这样也就无法用网页设计工具来进行编辑了,页面的设计变得很麻烦,所以sun公司推出了JSP。JSP可以在html中嵌入java代码,可以在jsp页面中像在html页面一样写html代码,这样就不像在servlet中写html代码那样痛苦了,代码的可读性也变高了。

          1.2  什么是JSP

          JSP(Java Server Pages)是以Java语言为基础的动态网页开发技术,JSP与Java Servlet一样,是在服务器端执行的,不同的是先由服务器编译部署成Servlet执行。更多信息请查看JSP维基百科

2、JSP运行原理

   JSP的运行原理图如下:

JSP运行原理图

        JSP的执行过程:

  • 客户端发送请求
  • JSP Container 将JSP 翻译成Servlet 的源代码;
  • 将产生的Servlet 的源代码经过编译后,加载到内存执行;
  • 把结果Response (响应)发送至客户端。

         JSP和Servlet的执行效率相差不大,只是第一次执行JSP页面时需要进行编译。一般人都会以为JSP 的执行性能会和Servlet 相差很多,其实执行性能上的差别只在第一次的执行。因为JSP 在执行第一次后,会被编译成Servlet 的类文件,即为XXX.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不用再重新把JSP编译成Servlet。因此,除了第一次的编译会花较久的时间之外,之后JSP 和Servlet的执行速度就几乎相同了。在执行JSP 网页时,通常可分为两个时期:转译时期(Translation Time)和请求时期(Request  Time) 。

       tomcat为什么能处理jsp文件,因为在${tomcat}/conf/web.xml(这个文件存放这web应用的默认配置)文件中存在这样的配置:

    <servlet><servlet-name>jsp</servlet-name><servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class><init-param><param-name>fork</param-name><param-value>false</param-value></init-param><init-param><param-name>xpoweredBy</param-name><param-value>false</param-value></init-param><load-on-startup>3</load-on-startup></servlet><servlet-mapping><servlet-name>jsp</servlet-name><url-pattern>*.jsp</url-pattern></servlet-mapping>
    上面的配置用来处理jsp的,可以试验下,假如在自己的web.xml文件中配置一个servlet,该servlet处理所有的*.jsp请求,当你在访问相应的jsp时,始终都会走这个servlet

     我们先来写一个简单的jsp,里面写的东西不要求理解:

<%@page import="java.util.Date"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>JSP小例子</title></head><body><%Date date = new Date();%>今天是<%=date%></body>
</html>
这个页面只是简单的输出了下当前的时间,产生的servlet存放在%tomcat%\work\引擎\主机\项目名\org\apache\jsp,生成的java源代码如下:

package org.apache.jsp;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.util.Date;public final class demo_jsp extends org.apache.jasper.runtime.HttpJspBaseimplements org.apache.jasper.runtime.JspSourceDependent {private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();private static java.util.List _jspx_dependants;private javax.el.ExpressionFactory _el_expressionfactory;private org.apache.AnnotationProcessor _jsp_annotationprocessor;public Object getDependants() {return _jspx_dependants;}public void _jspInit() {_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();_jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());}public void _jspDestroy() {}public void _jspService(HttpServletRequest request, HttpServletResponse response)throws java.io.IOException, ServletException {PageContext pageContext = null;HttpSession session = null;ServletContext application = null;ServletConfig config = null;JspWriter out = null;Object page = this;JspWriter _jspx_out = null;PageContext _jspx_page_context = null;try {response.setContentType("text/html;charset=UTF-8");pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);_jspx_page_context = pageContext;application = pageContext.getServletContext();config = pageContext.getServletConfig();session = pageContext.getSession();out = pageContext.getOut();_jspx_out = out;out.write("\r\n");out.write("\r\n");out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");out.write("<html>\r\n");out.write("  <head>\r\n");out.write("    <title>JSP小例子</title>\r\n");out.write("  </head>\r\n");out.write("  \r\n");out.write("  <body>\r\n");out.write("     ");Date date = new Date();out.write("\r\n");out.write("     今天是");out.print(date);out.write("\r\n");out.write("  </body>\r\n");out.write("</html>\r\n");} catch (Throwable t) {if (!(t instanceof SkipPageException)){out = _jspx_out;if (out != null && out.getBufferSize() != 0)try { out.clearBuffer(); } catch (java.io.IOException e) {}if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);else log(t.getMessage(), t);}} finally {_jspxFactory.releasePageContext(_jspx_page_context);}}
}

从上面的代码不难开出与jsp生命周期相关的方法为:

public void _jspInit() {…}
public void _jspDestroy() {…}
public void _jspService(HttpServletRequest request, HttpServletResponse response)  throws java.io.IOException, ServletException {…}

demo_jsp的继承关系如下图

:jsp继承关系

从上图不难看出jsp通过tomcat的jsp引擎处理后,实际上还是一个servlet,只不过我们访问jsp文件时,jsp引擎已经帮我们做好处理了。好,我们已经对jsp有所了解了,那么jsp页面是由什么组成的呢?

  • JSP原始代码中包含:JSP元素、Template(模板)dataJSP元素指将由JSP引擎直接处理的部分,这一部分必须符合JSP语法,否则会导致编译错误Template Data指的是JSP引擎不处理的部分。即标记在<%...%>以外的部分,例如:代码中的HTML内容等,这些数据会直接传送到客户端的浏览器
  • JSP组成
                 *     静态网页代码HTML

                 *     动态的Java代码(必须包含在特定的标签中)

3、jsp基本语法

        3.1、jsp指令元素

                           jsp指令元素的功能:

  • 用于指示JSP执行某些步骤,用于指示JSP表现特定行为  。 
  • 用来设定JSP网页的整体配置信息。

总的来说指令就是在页面提供一些配置信息的。语法的基本格式:<%@  directive [attribute="value"]*%>  ,jsp指令元素主要分为page指令,include指令,taglib指令。jsp指令不会向客户端产生任何输出,所有的指令元素在整个jsp文件都有效,为编译阶段提供全局的信息,理论上指令可以得到页面的任何位置 。

3.1.1 page指令

                  page指令的基本格式为<%@ page  [attribute="value"] *%>  ,用来定义jsp文件的全局属性,无论page指令出现在jsp文件的什么地方,它的作用都是整个jsp页面,为了保持持续的可读性和遵循良好的编程习惯,page指令最好存放在jsp文件的开头。这些属性可以单独使用也可以几个或多个同时使用,在jsp页面中只有import属性可以出现多次,其他属性只能出现一次(当然这些属性多次出现,而且都是相同的值都是可以的)。

属性配置:

        language:确定当前jsp所使用的语言,默认是java,为以后扩展用。

        pageEncoding:配置当前页面所保存的页面信息的编码

        contentType:定义jsp响应的MIME类型,例如:text/html; charset=UTF-8

             与pageEncoding的比较:

                       仅有pageEncoding: 配置当前页面的编码,配置jsp响应的MIME类型

                       仅有contentType: 配置当前页面的编码,配置jsp响应的MIME类型

                        两者都有:pageEncoding仅设置当前页面的编码,contentType设置jsp响应的MIME类型

            一般只需要配置pageEncoding就行了。

    import:导入当前jsp页面需要使用的包或类的列表,可以重复引用,多个之间用逗号分隔,导包的最后一    条可以输入多个分号,例如import="java.util.*"

     info:确定当前页面的输出信息

     session:确定当前页面是否可以使用session,默认为true

      extends: 确实jsp页面生成servlet,继承的父类,例如extends="java.util.List"

     errorPage: 确实当前页面出现异常时,跳转的页面

     isErrorPage: 是否为错误页面。如果设置成true,则可以使用exception内置对象(后面会介绍)

    isThreadSafe:默认为true,如果设置成false则会实现SingleThreadModel接口(这个接口以及废弃)

    isELIgnored:是否忽略el表达式,默认为false

    buffer: 当前servlet的缓冲区的大小,默认为8kb

   autoFlush:   是否自动刷新,当buffer缓存区被填写满后,会自动的刷新内容到浏览器

3.1.2 include指令

include指令的基本格式为<%@ include file="filename"%> ,include指令的作用是在jsp文件静态包含一个文件,同时由jsp解析包含的文件内容。静态包含的含义:用于通知JSP引擎在翻译当前JSP页面时将其他文件中的内容合并进当前JSP页面转换成的Servlet源文件中。当前JSP页面与静态引入的页面紧密结合为一个Servlet。

include指令注意事项:

  • file不能为一变量

          <% String url="index.html" ; %>
<%@ include file = "<%= url %>" %>

  • 不可以在file 所指定的文件后接任何参数

        <%@ include file = "jw.jsp?nm=browser" %>

  •   被引入的文件必须遵循JSP语法,JSP引擎会按照处理JSP页面的方式处理里面的内容
  •   被引入的文件可以使用任意的扩展名,为了见名知意,JSP规范建议使用*.jspf(JSP fragments)作为静态引入文件的扩展名
  •    在将JSP文件翻译成servlet源文件时,JSP引擎将合并被引入的文件与当前JSP页面中的指令元素。除了import和pageEncoding属性之外,page指令的其他属性不能在这两个页面中有不同的设置值          

       使用include可以便于网站的维护,例如网站的头和尾的相关信息一般都是不变的,网站的实际内容是变得的,这样就可以使用include指令将头和尾的信息包含进来,专业当要修改头和尾时,只需要在对应的文件中进行修改,而不必修改其他的文件。例如<%@ include file="top.jsp"%> 实际的内容 <%@ include file="foot.jsp"%> 

3.1.3 taglib指令

           taglib指令用于在jsp文件中导入标签库,常用的属性有uri: 标签文件的uri地址,prefix:标签组的命名空间前缀,关于标签库的详细内容将会在后续介绍。

4 jsp脚本元素

jsp脚本元素

4.1 声明标签(Declaration)

      声明的格式: <%! 声明1;[声明2];……%>,用于成员变量和方法的声明。声明的变量是全局变量,声明的方法将转换成servlet的方法,声明的作用范围是整个JSP页面,同时它只在一个JSP页面有效。例如:

    <%!private String msg = "msg";private void sayHi(String name){System.out.println("Hi," + name);}%>

4.2  代码块(Scriptlets)

        语法格式:<%  java code  %>,在“<%”和”%>”之间插入java程序片段,一个JSP页面可以有许多程序片段,这些代码块将被JSP服务器按照顺序执行,在一个代码块中声明的变量是JSP页面的局部变量,只在当前页面有效,代码块中不能定义方法,代码块在JSP编译后,将成为对应的Servlet的_jspService()方法体的一部分例如

   <%Date date = new Date();System.out.println("当前时间:" + date);%>

4.3 表达式(Expression)

        语法格式:<%= 变量或表达式 %>,表达式的计算结果转换成字符串,使用隐含对象out进行输出,结果显示在页面中标签所在的位置例如:<%=“abc” %> 等价于 out.print(“abc”);,JSP脚本表达式中的变量或表达式后面不能有分号(;)

     练习一:输入h1-h6

   

<%@page import="java.util.Date"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>输出h1-h6</title></head><body><%for(int i = 1; i <=6; i++){%><h<%=i%>>Hello World!</h<%=i%>><%		}%></body>
</html>

从上面的练习可以看出代码块是可以分散使用的,只要保证<%和%>成对出现就行。


练习二:输出当前的日期,格式为(xxxx年xx月xx日 星期x)

<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>当前日期</title></head><body><%Date curDate = new Date();DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 E");%><p><%=df.format(curDate)%></p></body>
</html>

练习三:输出九九乘法表(仅能使用jsp脚本)

http://blog.csdn.net/ricciozhang/article/details/43197613

5、 jsp页面注释

  •      jsp注释:<%-- 注释内容--%>,转换阶段消失,只能被开发人员看到,属于源码级别的注释
  •      html注释: <!--注释内容-->,在转换阶段不会消失,在页面中也能看到
  •     java注释://、/*注释内容*/、/**注释内容*/,转换阶段不会消失,在编译时消失

例如:

    <%--jsp注释--%><!-- html注释 --><%//java行级注释/*java块级注释*//***  javaDoc*/%>

6、jsp内置对象

         jsp的9大内置对象如下

jsp内置对象

jsp内置对象的分类:

jsp内置对象的分类

为什么在jsp中能直接的使用这些对象(exception对象需要设置isErrorPage="true",才能使用)?因为在jsp转换成servlet是在_jspService()方法中定义了这些变量,所以能使用。

  public void _jspService(HttpServletRequest request, HttpServletResponse response)throws java.io.IOException, ServletException {PageContext pageContext = null;HttpSession session = null;Throwable exception = org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);if (exception != null) {response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);}ServletContext application = null;ServletConfig config = null;JspWriter out = null;Object page = this;JspWriter _jspx_out = null;PageContext _jspx_page_context = null;

由上可以很清楚的看出内置对象的类型:

  • request        HttpServletRequest
  • response        HttpServletResponse
  • session        HttpSession
  • application               ServletContext
  • config        ServletConfig
  • page        this
  • pageContext    PageContext
  • exception               Throwable
  • out                   JspWriter     

page对象:

    page对象代表了正在运行的由jsp产生的类对象。这个对象其实并没有太大的用处,一般不建议使用该对象。page对象指的是当前jsp程序本身的对象,有点像类中的this,page对象其实是java.lang.Object类的实例对象。

out对象:

       向客户端输出数据,管理服务器输出缓冲区内部使用PrintWriter对象来输出文本级数据,通过page指令的buffer属性来调整缓冲区的大小,默认的缓冲区是8kb

注意:在jsp页面不能在调用response.getOutputStream(),否则会抛出异常。

out对象的工作原理如下:

out对象工作原理图


config对象:

       用来取得jsp的初始化参数信息,需要在WEB-INF/web.xml中进行配置,jsp文件也可以作为servlet配置,例如在web.xml中的进行如下的配置:

	<servlet><servlet-name>demo</servlet-name><jsp-file>/demo.jsp</jsp-file><init-param><param-name>name</param-name><param-value>Riccio Zhang</param-value></init-param></servlet><servlet-mapping><servlet-name>demo</servlet-name><url-pattern>/jsp/demo/</url-pattern></servlet-mapping>	

那么就可以再demo.jsp文件中取得配置的参数:

    <%String name = config.getInitParameter("name");System.out.println(name);%>
注意:只有通过web.xml文件中配置的路径访问在能获取到参数信息,否则是获取不到参数的。使用jsp文件访问使用的是tomcat的servlet引擎,并不知道配置的相关参数信息,只有通过自定义的路径才能获取到参数。

response对象:服务器对浏览器的响应

request对象:浏览器向服务器发出的请求作用范围是一次请求(可能涉及多个jsp或servlet)

exception对象:exception对象是java.lang.Trowable类的实例,exception对象用来处理JSP文件在执行时所有发生的错误和异常。exception对象可以和page指令一起使 用,通过指定某一个页面为错误处理页面,对错误进行处理<%@page isErrorPage=”true “%>的页面内使用。

application对象:作用范围:整个web项目

session对象:作用范围:一个会话

pageContext对象:pageContext对象可以直译为“页面上下文”对象,代表的是当前页面运行的一些属性。它是javax.servlet.jsp.PageContext类的实例对象,可以使用PageContext类的方法,PageContext对象继承自javax.servlet.jsp.JspContext。pageContext对象提供了对JSP页面所有的对象及命名空间的访问。提供了page范围的存取数据的方法:ObjectgetAttribute(String name),void removeAttribute(String name),void setAttribute(String name, Object value)

            

  <%pageContext.setAttribute("name", "Riccio Zhang");String name = (String)pageContext.getAttribute("name");System.out.println(name);pageContext.removeAttribute("name"); //等价于pageContext.setAttribute("name", null),为了增强可读性还是使用removeAttribute方法System.out.println(name);;;;;%>
           jsp的四种数据范围:

  •                   page:当前jsp页面
  •                   request:一次请求
  •                   session:一个会话
  •                   application:整个web项目
     pageContext对象封装着对其他8个内置对象的引用,可以通过相应的get方法来获取引用,为什么要封装这8个对象呢?通过封装这8个内置的对象,可以方便编程,你只需要把pageContext给我传进来,其它对象就都可以用了,而不需要把一个个零散的对象都给传进来,这也为后面将会将到的EL表达式提供了方便,这里再次体现了封装的思想。

      pageContext除了能在page域存取数据外,还能提供了在其它域存取数据的方法:

  • public java.lang.Object getAttribute(java.lang.String name,int scope),
  •  public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
  •  public void removeAttribute(java.lang.String name,int scope)

代表各个域的常量:

  •  PageContext.APPLICATION_SCOPE
  • PageContext.SESSION_SCOPE
  • PageContext.REQUEST_SCOPE
  • PageContext.PAGE_SCOPE


    <%//在各个域中存储数据pageContext.setAttribute("name", "name_page", PageContext.PAGE_SCOPE); //与pageContext.setAttribute("name", "name_page");等价pageContext.setAttribute("name", "name_request", PageContext.REQUEST_SCOPE);pageContext.setAttribute("name", "name_session", PageContext.SESSION_SCOPE);pageContext.setAttribute("name", "name_application", PageContext.APPLICATION_SCOPE);//在各个域中取出数据,并打印到控制台上String name_page = (String)pageContext.getAttribute("name", PageContext.PAGE_SCOPE);//与pageContext.getAttribute("name");等价System.out.println("PAGE_SCOPE name = " + name_page);String name_request = (String)pageContext.getAttribute("name", PageContext.REQUEST_SCOPE);System.out.println("REQUEST_SCOPE name = " + name_request);String name_session = (String)pageContext.getAttribute("name", PageContext.SESSION_SCOPE);System.out.println("SESSION_SCOPE name = " + name_session);String name_application = (String)pageContext.getAttribute("name", PageContext.APPLICATION_SCOPE);System.out.println("APPLICATION_SCOPE name = " + name_application);%>

最后比较重要的一个方法就是findAttribute方法,先来看看这个方法实现的源代码:

    public Object findAttribute(final String name) {if (SecurityUtil.isPackageProtectionEnabled()) {return AccessController.doPrivileged(new PrivilegedAction() { //HTTPS使用public Object run() {if (name == null) {throw new NullPointerException(Localizer.getMessage("jsp.error.attribute.null_name"));}return doFindAttribute(name);}});} else { //一般的HTTP使用if (name == null) {throw new NullPointerException(Localizer.getMessage("jsp.error.attribute.null_name"));}return doFindAttribute(name);}}private Object doFindAttribute(String name) {Object o = attributes.get(name);if (o != null)return o;o = request.getAttribute(name);if (o != null)return o;if (session != null) {try {o = session.getAttribute(name);} catch(IllegalStateException ise) {// Session has been invalidated.// Ignore and fall through to application scope.}if (o != null)return o;}return context.getAttribute(name);}

这个方法会从各个域中去取数据,如果取到了就直接返回,如果没有取到,则继续往下走,查找的顺序为:page --> request -->session --> application。这个方法再后续中也是很重要的一个方法。

    <%//pageContext.setAttribute("user", "zq_page", PageContext.PAGE_SCOPE);pageContext.setAttribute("user", "zq_request", PageContext.REQUEST_SCOPE);pageContext.setAttribute("user", "zq_session", PageContext.SESSION_SCOPE);pageContext.setAttribute("user", "zq_application", PageContext.APPLICATION_SCOPE);String findedUser = (String)pageContext.findAttribute("user");System.out.println(findedUser);%>
可以注释掉相应的域的存值语句去验证上面的顺序。

练习:完成猜数游戏

<%@page import="java.util.Random"%>
<%@ page language="java"  pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>猜数游戏</title></head><body><%//从session中获取那个随机的数字Integer randNum = (Integer)session.getAttribute("randNum");//产生一个随机的数字if(randNum == null){Random rand = new Random();randNum = rand.nextInt(100) + 1;session.setAttribute("randNum", randNum);}%><p><%String num = request.getParameter("num");if(num != null && !num.equals("")){int n = Integer.valueOf(num);if( n == randNum ){session.removeAttribute("randNum");out.print("恭喜您,猜对了!");}else if(n > randNum){out.print("对不起,您猜错大了!");}else{out.print("对不起,您猜错小了!");}}%></p><form action="" method="post">请输入一个1~100之间的整数:<input type="text" name="num"><br/><input type="submit" value="猜"/></form></body>
</html>

7、JSP标签

         JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。
jsp常用标签:

<jsp:useBean> 在指定范围内获取需要的javabean对象,如果不存在则创建

  • id,指定范围内,当前bean的实例化对象的变量名
  • scope,当前bean的使用,范围取值:"page | request | session | application",默认为page
  • class ,获得指定bean的实例对象,如果没有则创建取值:指定bean的完整路径名
  • type ,获得指定bean的实例对象,如果没有则抛异常,取值:指定bean的完整路径名
  • beanName,使用java.beans.Beans实例化bean对象,取值:指定bean的完整路径名
    
package cn.zq.domain;public class User {private String name;private int age;private String address;public User() {}public User(String name, int age, String address) {this.name = name;this.age = age;this.address = address;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", address=" + address+ "]";}}

 <%User u = new User("Riccio Zhang", 21, "广州市");pageContext.setAttribute("user", u);%><%--这里可以从指定域中获取到User对象--%><jsp:useBean id="user" class="cn.zq.domain.User" scope="page"/><%=user%><%--此处会自动的创建一个变量名为user2的javabean,并存放到指定域中--%><jsp:useBean id="user2" class="cn.zq.domain.User"/><%=user2%><%--此处会抛出异常,用type指定的javabean的完整名称时,未获取到会抛出异常<jsp:useBean id="user3" type="cn.zq.domain.User"/>--%><%--未获取到指定javabean,则会调用 java.beans.Beans.instantiate会实例化指定的bean,使用beanName属性时,不能使用class属性,只能使用type属性--%><jsp:useBean id="user4" beanName="cn.zq.domain.User" type="cn.zq.domain.User" /><%=user4 %>

<jsp:setProperty >使用Bean的setter方法给bean的属性设置值。在使用之前必须使用<jsp:useBean>声明一个bean

  • name,使用已有的bean,取值必须与<jsp:useBean>的id匹配,如果不存在抛异常
  • property,bean的属性值
  •  value ,需要设置的值
  • param ,请求参数的值,取值必须与URL参数的值相同,如果没有此参数则不赋值

注意:value与param不能同时使用


     <jsp:useBean id="user" class="cn.zq.domain.User"/><jsp:setProperty  name="user" property="name"  value="Riccio Zhang"/><jsp:setProperty  name="user" property="age"  value="1"/><jsp:setProperty  name="user" property="address"  value="gz"/><%=user%><%--如果指定的参数为空或空字符串,则不会设置相应的值--%><jsp:setProperty name="user" property="name" param="name"/><%--未指定value属性,则会获取参数的值来填充,如果为空,则同上--%><jsp:setProperty name="user" property="name"/><%--通配符* 表示用所有的参数来填充该bean,如果为空,则同上--%><jsp:setProperty name="user" property="*"/><%=user%>

<jsp:getProperty>使用bean的getter方法获得属性的值,在使用之前必须使用<jsp:useBean>声明一个bean

  • name,需要获得bean的实例对象变量值,取值必须与<jsp:useBean>的id匹配
  • property,需要获得bean的属性值
     <jsp:useBean id="user" class="cn.zq.domain.User"/><jsp:setProperty  name="user" property="name"  value="Riccio Zhang"/><jsp:setProperty  name="user" property="age"  value="1"/><jsp:setProperty  name="user" property="address"  value="gz"/><jsp:getProperty property="name" name="user"/>--<jsp:getProperty property="age" name="user"/>--<jsp:getProperty property="address" name="user"/>

<jsp:include>

  • 语法

<jsp:include page={"relativeURL" | "<%= expression %>"} />

                   或
                  <jsp:include page={"relativeURL" | "<%= expression %>"} >
                          <jsp:param name="PN" value="{PV | <%= expression %>}" /> *
                 </jsp:include> 

                     另一个属性flush:表示在动态包含另一个文件时,是否先刷新

  • 用于把另一个资源的输出内容插入进当前JSP页面的输出内容中,这种在JSP页面执行时的引入方式称之为动态引入

org.apache.jasper.runtime.JspRuntimeLibrary

 public static void include(ServletRequest request,ServletResponse response,String relativePath,JspWriter out,boolean flush)throws IOException, ServletException {if (flush && !(out instanceof BodyContent))out.flush();String resourcePath = getContextRelativePath(request, relativePath);RequestDispatcher rd = request.getRequestDispatcher(resourcePath);rd.include(request,new ServletResponseWrapperInclude(response, out));}


<jsp:include>和include指令的比较:

  • 使用<jsp:include>标签和include指令都可以把一个页面的内容分成多个组件来生成,开发者不必再把页眉和页脚部分的相同的HTML代码复制到每个JSP文件中,从而可以更轻松的完成维护工作,但是合并过程需要遵循HTML语法结构。例如:<html><head><body>个数等
  • <jsp:include>标签是在当前JSP页面的执行期间引入被引入资源的输出内容。当前JSP页面与被动态引入的资源是两个彼此独立的执行实体,被动态引入的资源必须是一个能够独立被web容器调用和执行的资源。include指令只能引入遵循JSP格式的文件,被引入文件与当前JSP文件共同被编译成一个servlet的源文件
  • <jsp:include>标签对JSP引擎编译JSP页面的过程不起作用,它是在JSP页面的执行期间才被调用,因此不会影响两个页面的编译。由于include指令是在JSP引擎编译JSP页面的过程中被编译处理的,所以它对JSP引擎编译JSP页面的过程起作用。如果多个JSP页面中都要用到一些相同的声明,那么就可以把这些声明语句放在一个单独的文件中编写,然后在每个JSP页面中使用include指令将那个文件包含进来

通过上面的比较不难得出在开发时,尽量的用include指令来代替<jsp:include>,<jsp:include>会增加服务器的负担。


demo.jsp

     <jsp:include page="include.jsp"><jsp:param name="country" value="中国"/></jsp:include>

include.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<p>获取带的参数为:<%=request.getParameter("country")%>
</p>
发现在include.jsp中获取的是乱码,为什么是乱码呢?仔细查看如下的源代码:

  org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "include.jsp" + (("include.jsp").indexOf('?')>0? '&': '?') + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("country",request.getCharacterEncoding())+ "=" + org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("中国", request.getCharacterEncoding()), out, false);

这个参数传递参数时先通过编码,编码是通过request.getCharacterEncoding()获取的,而我们并没有设置相应的值,只需要在包含语句之前加上这行java代码乱码就解决了

request.setCharacterEncoding("UTF-8");


<jsp:forward>将请求传递给另一个JSP页面。

  • <jsp:forward page={"relativeURL" | "<%= expression %>"} />

          或
<jsp:forward page={"relativeURL" | "<%= expression %>"} >
<jsp:param name="PN" value="{PV | <%= expression %>"}/> *
</jsp:forward>

注意:被forward转发的资源必须与发送请求的页面处于相同的上下文环境中,每当遇到此标签时,容器就会停止执行当前的JSP,转而执行被转发的资源

     <jsp:forward page="forward.jsp" ><jsp:param name="country" value="中国"/></jsp:forward>


练习:实现简单的计算器http://blog.csdn.net/ricciozhang/article/details/43233819


查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 尚学堂高琪--简单飞机小项目

    花了一个星期时间大致过了一遍java基础部分的内容,感觉心里空荡荡的,自己写代码也无从下手,为此找了一个小项目来练练手,巩固一下java语法和继承的内容。 参考的尚学堂高琪视频:Java300集 尚学堂java300集随堂课件:速学堂 我写的代码在这:plane_game.rar,CSDN不要积分下…...

    2024/4/26 20:41:18
  2. JSP初学者数据库教程(三)修改数据

    修改数据有三个页面mod_1.jsp mod_2.jsp mod_3.jsp 需要用的JavaBean以及设置的文件路径请参阅本人“JavaBean实现中文转换” mod_1.jsp 代码如下: <%@ page contentType="text/html; charset=gb2312" language="java" import="…...

    2024/5/2 2:49:25
  3. GitHub 访问慢、下载慢解决方案

    解决方案一:使用VPN需花钱购买,本文不做讨论。解决方案二:使用静态Host1. 访问www.ipaddress.com,分别搜索github相关访问的域名对应的ip 本此搜索结果: 192.30.253.112 github.com 151.101.185.194 github.global.ssl.fastly.net 192.30.253.120 codeload.github.com2.配…...

    2024/5/2 3:35:29
  4. JSP简介及Tomcat安装

    JSP简介预先用10分钟了解一下HTML以及其基本语法就可以进行JSP学习了。JSP是由Sun公司倡导,多家公司参与共同建立的一种动态网页技术标准。它在HTML代码中插入Java程序片段,由此构成JSP页面,扩展名为.jsp。通俗地讲,JSP编程就是HTML + 嵌入其中的Java。例:<%@ pagecont…...

    2024/4/20 17:21:51
  5. Qt游戏编程——飞机大战

    源码下载:http://download.csdn.net/detail/hao_zong_yin/9890778 效果图:这篇文章记录了我用一周的时间从零Qt基础到制作出飞机大战的过程。 Qt相比MFC封装好了大量函数,而且非常有条理。飞机大战的实现主要用到了Qt的信号与槽机制、事件响应机制、计时器、随机数、QPainte…...

    2024/5/1 23:31:56
  6. jsp获取下拉列表select选择的值

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 看下表单的内容:<form action="show.jsp"> <select name="sel…...

    2024/4/20 17:21:49
  7. Python 飞机大战 增强版本实现

    Python 飞机大战 增强版本实现飞机大战游戏介绍代码介绍gameRole.pyshooter.py游戏效果完整代码 飞机大战游戏介绍 基于github上Python实现的一款飞机射击游戏PythonShootGmae 原始版本比较简单,只有一种敌机。但是其中资源文件夹包含有三种敌机的图片和声效,所以基于已有资源…...

    2024/5/1 22:36:25
  8. html修改为jsp

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 第一步,新建jsp页面~~第二部,将html中body标签里的内容复制到web项目下jsp页面的body标…...

    2024/5/2 0:56:03
  9. Unity3D之飞机游戏追踪导弹制作

    最近开发完成一款打飞机的游戏,记录一下制作追踪导弹的方法,最开始在网上找到的资料制作出来的追踪导弹都不够真实,主要的问题是没有对导弹进行一个阀值处理,导弹每帧都始终会面向目标,而不是按照一定的角度进行旋转,导致无法躲避跟踪导弹,下面我来说一下更加真实的跟踪…...

    2024/5/2 3:43:56
  10. jsp原理分析 jsp声明和jsp脚本讲解 源码分析 及jsp注释讲解 jsp页面的访问量

    ==========================部署项目时会在tomcat的work目录中生成对应的项目文件,但是并不生成jsp的java类文件,只有当请求了该jsp服务器才会生成对应的jsp的类文件。 ==========================生成的java类是final的。 =========================Servlet是单例的所以每个…...

    2024/5/2 3:15:04
  11. 10.Spring Boot 2.x 最佳实践之 JSP 集成

    Spring Boot 2.x 最佳实践之 JSP 集成0x01 Spring Boot With JSP0x02 源码下载虽然Spring Boot 不推荐使用JSP,但是有时候有些特殊的老项目不得不用,可是我们又想要使用Spring Boot 的强大自动配置功能,那么该怎么做呢?这篇博文讲解如何使用Spring Boot 集成JSP. 0x01 Sprin…...

    2024/5/1 21:13:01
  12. java小游戏源码、微信打飞机小游戏源码、国产计算机游戏、麒麟操作系统小游戏

    纯生java编写打飞机小游戏,含源码 前言 本游戏由纯生java编写,未掺杂依赖任何插件。可在windows、linux以及国产操作系统中使用,需要安装有java。游戏内图片均从网上下载后我修改来的如何安装使用 本游戏只需要电脑中安装有java即可,java1.5版本及以上都行。没有的话,自己…...

    2024/4/21 11:00:27
  13. JSP——飞机票预订系统(包含用户中心、后台管理、首页等)

    终于有时间坐下来写些东西了,先把我期末JSP大作业——飞机票预订系统给放出来,留给后来的学弟学妹。说到JSP——飞机票预订系统,真的是把我给坑了。期末几个大作业连着,一件事接着一件事,搞得自己每天都很紧张。JSP大作业让选题目时,我就选了个最偏的,因为我想挑战下jav…...

    2024/4/21 11:00:26
  14. 基于VC++的MFC框架实现的飞机大战小游戏

    一、类介绍1.1 程序使用到的MFC类库中主要的类CDC类CRect类CBitmap类CImageList类mfc框架:app类、wnd类、doc类、view类1.2 项目包含的对象类8个游戏类:enemy(敌人)bomb(敌人子弹)missile2(飞机子弹)、missile3(超级子弹)myplane(英雄机)explosion(爆炸)backgrou…...

    2024/5/1 23:55:11
  15. C#可调用API接口来获取窗口句柄,发送消息控制其余程序窗体大小

    根据标题获取窗口句柄using System; using System.Runtime.InteropServices; namespace tstfindwindow { /// /// Class1 的摘要说明。 /// class Class1 { [DllImport( "User32.dll ")] public static extern System. IntPtr FindWindowEx(System. IntPtr parent,…...

    2024/5/2 3:34:43
  16. JSP详解

    JSP详解主要内容简介:1. JSP简介 a) 什么是JSP b) JSP的组成 c) JSP的特点 d) JSP的执行过程 e) JSP的生命周期2. JSP语法 a) JSP模板元素 b) JSP表达式 c) JSP脚本片段 d) JSP注释3. JSP指令 a)…...

    2024/5/2 2:30:24
  17. 电脑端(win7/8/10/xp)使用教程

    第一步 点击链接下载软件:点击下载 解压文件后得出:1.打开程序后,复制旺旺给你发的ssr开头的连接,注意前后不要带汉字空格!复制后,看桌面右下角的小飞机图标,右键点击小飞机图标,弹出选项,有个批量导入,点一下,就导入就去了。 (注意要先复制ssr连接再批量导入)2.导…...

    2024/5/2 2:30:01
  18. Qt获取当前窗口句柄/获取窗口中控件的句柄

    1. 句柄是什么大家可以看这篇文章,讲的比较详细。https://blog.csdn.net/wenzhou1219/article/details/176594852. Qt如何获取句柄winId()函数。(Qt5里面)如果想获取Qt窗口的句柄用于显示图片;且看我操作HWND m_hwndDisplay = (HWND)this->winId();//获取当前this窗口的…...

    2024/4/21 11:00:22
  19. Android 打飞机小游戏 cocos2d

    从cocos2d官网上下载合适的框架 导入自己的应用程序中。 1、CCDirector:导演类是游戏当中的组织者和领导者,负责调度游戏当中的一切对象和资源;Director是一个单例,在全部游戏中只存在一个实例。Director类似电影中的“导演”,正如其名,它经管Cocos2d-x中的所有场景的调度…...

    2024/4/21 11:00:21
  20. 《Java Web开发教程——入门与提高篇(JSP+Servlet)》前言

    本学期我上课的时候录制了对应本书视频教程,放到优酷上了,在优酷上搜索 李绪成 就可以找到。 《Java Web开发教程——入门与提高篇(JSP+Servlet)》这本书终于出版了! 我从2000年开始使用JSP,2002年开始给学生讲JSP课,那时候关于JSP的书很少,讲了两年的JSP课之后觉得应该写…...

    2024/4/21 11:00:19

最新文章

  1. 大白话理解IoC和DI

    引言 Spring是Java领域最受欢迎的开发框架之一&#xff0c;其核心功能之一就是Spring容器&#xff0c;也就是IoC容器。这篇文章&#xff0c;我们就来聊聊Spring的两大核心功能&#xff0c;控制反转&#xff08;IOC&#xff09;和依赖注入&#xff08;DI&#xff09;。 文章思…...

    2024/5/2 4:03:50
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 01背包问题 小明的背包

    2.小明的背包1 - 蓝桥云课 (lanqiao.cn) #include <bits/stdc.h> using namespace std; const int N1010;//开始写的105 开小了 样例过了但最后只过了很少一部分 int n,m; int v[N],w[N]; int f[N][N];int main() {cin>>n>>m;for(int i1;i<n;i){cin>&…...

    2024/4/30 7:25:11
  4. 游戏引擎架构01__引擎架构图

    根据游戏引擎架构预设的引擎架构来构建运行时引擎架构 ​...

    2024/5/1 13:06:15
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/30 18:14:14
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/30 18:21:48
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57