马士兵 Servlet_JSP(2) JSP源代码)
1.最简单的JSP
HelloWorld.jsp
<html>
    <head>
        <title>Hello</title>
        <body>
            <%
                out.println("Hello World!");
            %>
        </body>
    </head>
</html>
---------------------------------------------------------------------------------------------------------------------------------------
2.JSP中的全局变量和局部变量
AccessCounts.jsp
<html>
    <head>
        <title>JSP Declaration</title>
    </head>
    <body>
        <%!
            // 全局变量
            int accessCount = 0;
        %>
        
        <%
            // 局部变量
            int accessCount2 = 0;
        %>
        
        <h2>AccessCount:
            <br>Overall Variable:<%= ++accessCount %>
            <br>Local Variable:<%= ++accessCount2 %>
        </h2>
        
    </body>
</html>
测试结果:访问同一页面,每刷新一次,accessCount增1,accessCount2不变(每次出现一个新的局部变量)。
----------------------------------------------------------------------------------------------------------------------------------
3.注释、当前页面从URL中取背景色参数
BGColor.jsp
<html>
    <head>
        <title>Color Testing</title>
    </head>
    
    <!--
    HTML注释
    客户端可以看见
    -->
    
    <%--
    JSP注释
    客户端看不见
    --%>
    
    
    <%
    //注释2
    /*
    注释3
    */
    // 将请求中参数bgColor的值拿过来,假如没有传这个参数,则值为null
    String bgColor = request.getParameter("bgColor");
    boolean hasColor;
    if(bgColor != null) {
        hasColor = true;
    } else {
        hasColor = false;
        bgColor = "white";
    }
    %>
        
        <!--显示背景色-->
    <body bgcolor="<%= bgColor%>">
    <h2 align="center">Color Testing</h2>
    
    <%
    if(hasColor) {
        out.println("You supplied a backgroud color of " + bgColor + ".");
    } else {
        out.println("Use Default backgroud color of white");
    }
    %>
        
    </body>
</html>
-----------------------------------------------------------------------------------------------------------------------------
4.表达式
Expressions.jsp
<html>
    <head>
        <title>JSP Expressions</title>
    </head>
    <!--表达式-->
    <body>
        <h2>JSP Expressions</h2>
        
    <UL>
        <!--获取当前本地时间-->
        <LI>Current Time:<%= new java.util.Date().toLocaleString() %>
        <LI>Your HostName:<%= request.getRemoteHost() %>
        <!--获取当前页面的SessionID-->
        <LI>Your Session Id:<%= session.getId() %>
        <LI>The <code>testParam</code> from parameter:<%= request.getParameter("testParam") %>
    </UL>
    
    </body>
</html>
----------------------------------------------------------------------------------------------------------------------------------------
5.@page指示语句的测试
TestDirective.jsp
<%@page import="java.util.*" %>
<%@page contentType="text/html;charset=gb2312" %>
    <!--@page指示语句的测试-->
    <!--将当前系统时间转变成我们本地常用的形式输出-->
<%= new Date().toLocaleString() %>
<br><br>
<%
    out.println("你好!"); 
%>
--------------------------------------------------------------------------------------------------------------------------------
6.错误页跳转测试
①TestErr.jsp
<%@page errorPage="ErrPage.jsp" %>
<!--如果本页面出错则跳转到ErrPage.jsp页面-->
<%
String str = "123abc";
int i = Integer.parseInt(str);
out.println("str= " + str + ",i= " + i);
%>
②ErrPage.jsp
<%@page contentType="text/html;charset=gb2312" %>
<%@page isErrorPage="true" %>
<!--本页面是个错误信息显示页-->
<html>
    <body text="red">
        错误信息:<%= exception.getMessage()%>
    </body>
</html>
-----------------------------------------------------------------------------------------------------------------------------
7.include指令”%@ include file“和include动作指令“jsp:include page”
前者是先包含进来再编译执行;后者是先各自编译执行再包含进来
①include.jsp
<html>
    <head>
        <title>include test</title>
    </head>
    
    <body bgcolor="white">
        <font color="red">
            The current time and date are:<br>
        <!--先将date.jsp的内容包含进来,再一起进行转换、编译和执行-->
            <%@include file="date.jsp" %><br>
        <!--先将date.jsp进行转换、编译和执行,再将结果包含进来-->
            <jsp:include page="date.jsp" flush="true" />
        </font>
    </body>
</html>
②date.jsp
<%@page import="java.util.*" %>
<%--a string representation of this date, using the locale conventions.--%>
<%= (new Date()).toLocaleString() %>
说明:以下转载自网络   http://blog.matrix.org.cn/rudy541/entry/200708162
jsp中两种包含文件的区别:
相同点:两者逗能包含一个页面
不同点:
区别1:
<jsp:include page="b.jsp" />(先执行,后包含)
此标签表示法:能动态区别加进来的是动态页面还是静态页面
对于静态页面则直接将资源包含(仅取其文本)。
对于动态页面则先处理各自资源,之后将处理过的结果包含在一起。
<%@ include file="b.jsp">
此指令表示:静态地包含页面,不管其内容如何,不过是静态页面还是动态页面都首先将页面的内容先加进来。
然后一起处理,再将所有内容发给客户端。
实例挑战:
有b.jsp页面
<%int i = 10 ;%>
<%=i%>
主界面a.jsp也有<%int i = 100 ;%>        <%=i%>
如果是加载<%@ include file="b.jsp">,则是先包含后执行,就会发现报错,i被重新定义,
但如果是加载<jsp:include page="b.jsp" />则是先执行结果,然后将结果包括到主页面。不会报错。
区别2:
<jsp:include page="b.jsp" />可以分开写成:
<jsp:include page="b.jsp" >
<jsp:param name="参数名" value="参数值"/>
</jsp:include>
这样就可以传递参数。
----------------------------------------------------------------------------------------------------------------------
8.两个数的乘除运算
①Compute.html
<html>
    <head>
        <title>Compute</title>
        <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
    </head>
    <!--两个数的乘除运算-->
    <body bgcolor="#FFFFFF">
        <div align="center">
            <form method="post" action="Compute.jsp">
                <p>选择要做的运算:
                    <input type="radio" name="compute" value="division" checked>
                    除法
                    <input type="radio" name="compute" value="multiplication">
                    乘法
                </p>
                <p>被除数(被乘数)
                    <input type="text" name="value1">
                    除数(乘数)
                    <input type="text" name="value2">
                </p>
                <p>
                    <input type="submit" name="Submit" value="计算结果">
                </p>
            </form>
        </div>
    </body>
</html>
②Compute.jsp
<%@page language="java" %>
<%@page contentType="text/html;charset=gb2312" %>
<%
    // 将Compute.html页面输入的要进行计算的两个变量拿过来
    String value1 = request.getParameter("value1");
    String value2 = request.getParameter("value2");
%>
<% if("division".equals(request.getParameter("compute"))) { %>
    <!--进行除法计算,把两个参数v1和v2先传到divide.jsp,再那边编译运行,然后把结果拿到这边显示出来-->
        <jsp:include page="divide.jsp" flush="true">
            <jsp:param name="v1" value="<%=value1%>"/>
            <jsp:param name="v2" value="<%=value2%>"/>
        </jsp:include>
<%    } else { %>
        <!--直接把multiply.jsp拿过来,跟本页面一起编译执行-->
        <%@include file="multiply.jsp" %>
<%    } %>
③multiply.jsp
<%@page contentType="text/html;charset=gb2312" %>
<html>
    <head>
        <title>Multiply</title>
    </head>
    <%--进行乘法计算的JSP--%>
    <body bgcolor="#FFFFFF">
        <center>
            <h1>
                <%
                    try{
                        float multiplicand = Float.parseFloat(request.getParameter("value1"));
                        float multiplicator = Float.parseFloat(request.getParameter("value2"));
                        double result = multiplicand*multiplicator;
                        out.println(multiplicand + "*" + multiplicator +" = " + result);
                    } catch(Exception e) {
                        out.println("不合法的乘数或被乘数");
                    }
                %>
            </h1>
        </center>
    </body>
</html>
④divide.jsp
<%@page contentType="text/html;charset=gb2312" %>
<html>
    <head>
        <title>Divide</title>
    </head>
    <%--进行除法计算的JSP--%>
    <body bgcolor="#FFFFFF">
        <center>
            <h1>
                <%
                    try{
                        float divident = Float.parseFloat(request.getParameter("v1"));
                        float divisor = Float.parseFloat(request.getParameter("v2"));
                        double result = divident/divisor;
                        %>
                        <%= result%>
                        <%
                    } catch(Exception e) {
                        out.println("不合法的除数或被除数");
                    }
                %>
            </h1>
        </center>
    </body>
</html>
----------------------------------------------------------------------------------------------------------------------------------
9.jsp:forward和response.sendRedirect
①最简单的jsp:forward
forward.jsp
<html>
    <head>
        <title>Forward Example</title>
    </head>
    <!--最终显示的是forforward.jsp中的内容-->
    <body bgcolor=red>
        Welcome to forward.jsp
        <%--直接跳转到forforward.jsp,这两个jsp用的是同一个request--%>
        <jsp:forward page="forforward.jsp" />
    </body>
</html>
forforward.jsp
<html>
    <head>
        <title>forforward.jsp</title>
    </head>
    
    <body bgcolor=blue>
        Welcome<br>
        Here is forforward.jsp
    </body>
</html>
②jsp:forward和response.sendRedirect的比较
forward1.jsp
<html>
    <head>
        <title>Forward Example</title>
    </head>
    
    <body bgcolor=red>
        Welcome to forward1.jsp
        <jsp:forward page="forforward1.jsp" >
            <jsp:param name="name" value="m" />
            <jsp:param name="oldName" value='<%= request.getParameter("name")%>' />
            <jsp:param name="roles" value="manager" />
        </jsp:forward>
    </body>
</html>
forforward1.jsp:和forward1.jsp使用的是同一个request(服务器跳转)
<html>
    <head>
        <title>forforward1.jsp</title>
    </head>
    
    <body bgcolor=blue>
        Welcome<br>
        Here is forforward1.jsp<br>
        <%= request.getParameter("name")%>
        <%= request.getParameter("oldName")%>
        <%= request.getParameter("roles")%>
        <%= request.getParameter("address")%>
    </body>
</html>
测试结果:
访问http://localhost:8888/test/forward/forward1.jsp?name=yyg&address=34527144231
结果:
Welcome
Here is forforward1.jsp
m yyg manager 34527144231 
此时页面URL还是forward1.jsp,并没有跳转到forforward1.jsp,给用户的感觉还是刚才的页面在为自己服务。
说明:m 和manager 是forward1.jsp中传过来的;而yyg 和34527144231 是在URL中通过request传过来的。并且forward1.jsp中也没有address属性,这也从另一个角度说明了这两个jsp使用的是同一个request。
test.jsp:和forward1.jsp使用的是不同的request
说明:访问过http://localhost:8888/test/forward/test.jsp后,页面跳转成http://localhost:8888/test/forward/forforward1.jsp
这个过程中客户和服务器之间产生了两个request,并且test.jsp后跟参数并不能传递到forforward1.jsp(原因也很明显:两次是不同的request)
<%
    response.sendRedirect("forforward1.jsp");
%>
---------------------------------------------------------------------------------------------------------------------------------------------
10.jsp:useBean
①CounterBean.java
package bean;
import java.io.Serializable;
/**
 * 一个很普通的JavaBean
 * @author jukey
 *
 */
public class CounterBean implements Serializable {
    
    private int count = 0;
    public CounterBean() {}
    public int getCount() {
        count++;
        return count;
    }
    public void setCount(int count) {
        this.count = count;
    }
}
②test.jsp:JSP往JavaBean中设置值,从JavaBean中拿值
<%@page import="bean.*" %>
<%--
<%
    // 下面这个语句等同于<jsp:useBean id="cb" class="bean.CounterBean"></jsp:useBean>
    CounterBean cb = new CounterBean();
%>
--%>
<jsp:useBean id="cb" class="bean.CounterBean">
</jsp:useBean>
<font color="red" size="5">
    <%--将bean中存储的值拿出来--%>
    <%= cb.getCount()%>
</font>
<!--往bean中存值-->
<jsp:setProperty name="cb" property="count" value="25" />
    <%--cb.setCount(25)--%>
    
<!--往bean中取值-->
<jsp:getProperty name="cb" property="count" />
    <%--cb.getCount()--%>
以下是Bean的4种作用范围的测试:
③page有效(仅涵盖使用JavaBean的页面)
PageBean.jsp
<jsp:useBean id="counterBean" scope="page" class="bean.CounterBean" />
    
<html>
    <body>
        <h3>CounterBean scope="page" Example</h3>
        <b>count:</b> <%= counterBean.getCount()%>
    <%--上下两句效果一样--%>
        <jsp:getProperty name="counterBean" property="count"/>
    </body>
</html>
④request有效(有效范围仅限于使用JavaBean的请求)
RequestBean.jsp
<jsp:useBean id="counterBean" scope="request" class="bean.CounterBean" />
    
<%--
    bean.CounterBean counterBean = request.getAttribute("counterBean");
    if(counterBean == null) {
        counterBean = new bean.CounterBean();
        request.setAttribute("counterBean",counterBean);
    }
--%>
    
<html>
    <body>
        <h3>CounterBean scope="request" Example</h3>
    <!--往当前request对应的bean中设置-->
        <% counterBean.setCount(100); %>
        <%--和RequestBean2.jsp用的是同一个request,也是同一个counterBean对象--%>
            <!--测试结果是101-->
        <jsp:forward page="RequestBean2.jsp" /> 
            
            <%--和RequestBean2.jsp用的不是同一个request,也不是同一个counterBean对象--%>
                <!--访问RequestBean.jsp,跳转到RequestBean2.jsp,因为和当前request不是同一个request-->
                <!--则产生一个新的request,产生一个新的bean对象,测试结果是1而不是101-->
        <%-- response.sendRedirect("RequestBean2.jsp"); --%>
    </body>
</html>
RequestBean2.jsp
<jsp:useBean id="counterBean" scope="request" class="bean.CounterBean" />
    
<html>
    <body>
        <h3>CounterBean scope="request" Example</h3>
        <b>count:</b> <%= counterBean.getCount()%>
    </body>
</html>
⑤Session有效(有效范围在用户整个连接过程中,整个会话阶段均有效)
SessionBean.jsp
<jsp:useBean id="counterBean" scope="session" class="bean.CounterBean" />
    
<%--
    // 这一段java代码等同于上面这句JSP语句
    bean.CounterBean counterBean = session.getAttribute("counterBean");
    if(counterBean == null) {
        counterBean = new bean.CounterBean();
        session.setAttribute("counterBean",counterBean);
    }
--%>
<html>
    <body>
        <h3>CounterBean scope="session" Example</h3>
        <b>count:</b> <%= counterBean.getCount()%>
    </body>
</html>
SessionBean2.jsp
<jsp:useBean id="counterBean" scope="session" class="bean.CounterBean" />
    
<html>
    <body>
        <h3>CounterBean scope="session" Example</h3>
        <b>count:</b> <%= counterBean.getCount()%>
    </body>
</html>
⑥application有效(有效范围涵盖整个应用程序,也就是对整个网站都有效)
可用于作为首页访问量的计数器
ApplicationBean.jsp
<jsp:useBean id="counterBean" scope="application" class="bean.CounterBean" />
    
<html>
    <body>
        <h3>CounterBean scope="application" Example</h3>
        <b>count:</b> <%= counterBean.getCount()%>
    </body>
</html>
ApplicationBean2.jsp
<jsp:useBean id="counterBean" scope="application" class="bean.CounterBean" />
    
<html>
    <body>
        <h3>CounterBean scope="application" Example</h3>
        <b>count:</b> <%= counterBean.getCount()%>
    </body>
</html>
----------------------------------------------------------------------------------------------------------------------
11.jsp:setProperty和jsp:getProperty
①SaleEntry.jsp
<html>
    <head>
        <title>Using jsp:setProperty</title>
    </head>
    <!--销售条目(单行:商品编号、单价、数量、总价)-->
    <body>
        <table border=5 align="center" >
            <tr><th class="title">
                Using jsp:setProperty
        </table>
        
        <jsp:useBean id="entry" class="bean.SaleEntry" />
        
        <%--从JSP向JavaBean中设值--%>    
<!--通过param指定表单元素的名称,通过property指定bean的属性名称,由此建立两个变量的关联-->
        <jsp:setProperty name="entry" property="itemID" value="<%= request.getParameter("itemID")%>" />
        <jsp:setProperty name="entry" property="numItems" param="numItems" />
        <jsp:setProperty name="entry" property="discountCode" param="discountCode" />
                    
        <br>
        
        <table border=1 align="center" >
            <tr class="colored">
                <th>Item ID<th>Unit Price<th>Number Ordered<th>Total Price
            <tr align="right">
                <%--Jsp从JavaBean中取值--%>
                <td><jsp:getProperty name="entry" property="itemID" />
                <td>$<jsp:getProperty name="entry" property="itemCost" />
                <td><jsp:getProperty name="entry" property="numItems" />
                <td>$<jsp:getProperty name="entry" property="totalCost" />
        </table>
    </body>
</html>
②SaleEntry.java
package bean;
public class SaleEntry {
    
    private String itemID = "unknown";
    // 折扣
    private double discountCode = 1.0;
    private int numItems = 0;
    
    public double getDiscountCode() {
        return discountCode;
    }
    
    public void setDiscountCode(double discountCode) {
        this.discountCode = discountCode;
    }
    
    public String getItemID() {
        return itemID;
    }
    
    public void setItemID(String itemID) {
        this.itemID = itemID;
    }
    
    public int getNumItems() {
        return numItems;
    }
    
    public void setNumItems(int numItems) {
        this.numItems = numItems;
    }
    
    // 获取单价
    public double getItemCost() {
        double cost;
        if("a1234".equals(itemID)) {
            cost = 12.99 * getDiscountCode();
        } else {
            cost = -99;
        }
        return roundToPennies(cost);
    }
    
    // 计算到分位
    public double roundToPennies(double cost) {
        return (Math.floor(cost * 100) / 100.0);
    }
    
    // 计算总价格
    public double getTotalCost() {
        return (getItemCost() * getNumItems());
    }
    
}
-------------------------------------------------------------------------------------------------------------------------------------
12.HTML页面输入内容,提交给JSP文件,JSP将这些内容存入JavaBean,再从JavaBean中拿出来显示。
中间有个中文乱码的处理问题。
①SayHelloBean.html
<html>
    <head>
        <title>数据输入</title>
        <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
    </head>
    
    <body bgcolor="#FFFFFF">
        <div align="center" >
            <p>请输入数据</p>
                <form method="post" action="SayHelloBean.jsp" >
                    <p>姓名
                        <input type="text" name="name">
                        性别
                        <select name="sex">
                            <option value="先生">先生</option>
                            <option value="女士">女士</option>
                        </select>
                    </p>
                    <p>
                        <input type="submit" name="Submit" value="提交">
                    </p>
                </form>
                <p> </p>
                <p> </p>
        </div>
    </body>
</html>
②SayHelloBean.jsp
<%@page language="java" import="bean.HelloBean;" %>
<%@page contentType="text/html;charset=gb2312" %>
<%--先将传过来的request中的字符编码格式设置成gbk,再取内容--%>
<% request.setCharacterEncoding("gbk"); %>
<jsp:useBean id="hello" class="bean.HelloBean" scope="request" >
    <%--通过*来设置所有属性和输入参数之间的关联,struts中大量运用--%>
        <jsp:setProperty name="hello" property="*" />
</jsp:useBean>
    
<html>
    <head>
        <title>HelloBean</title>
        <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
    </head>
    
    <body bgcolor="#FFFFFF">
        <p> </p>
        <p align="center" >
            <font size="4">欢迎
                <font color="#0000FF">
                    <b>
                        <%--转码(终结解决方案):将hello对象中name属性的值用ISO8859_1编码格式以字节数组拿出,再转化成gbk格式---%>
                        <%--= new String(hello.getName().getBytes("ISO8859_1"),"gbk")--%>
                    </b>
                </font>
                <%--转码(终结解决方案):将hello对象中sex属性的值用ISO8859_1编码格式以字节数组拿出,再转化成gbk格式---%>
                <%--= new String(hello.getSex().getBytes("ISO8859_1"),"gbk")--%>
            </font>
        </p>
        <jsp:getProperty name="hello" property="name" />
        <jsp:getProperty name="hello" property="sex" />
    </body>
</html>
③HelloBean.java
package bean;
public class HelloBean {
    private String name = "";
    private String sex = "";
    
    public HelloBean() {}
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getSex() {
        return sex;
    }
    
    public void setSex(String sex) {
        this.sex = sex;
    }
    
}
马士兵 Servlet_JSP(2) JSP源代码)的更多相关文章
- 马士兵 Servlet_JSP(3) Servlet和JSP的通信(源代码)
		(1)从JSP调用Servlet可用<jsp:forward>,请求信息自动转到Servlet FromJspToServlet.jsp <html> <body ... 
- Hibernate 马士兵 学习笔记 (转)
		目录(?)[+] 第2课 Hibernate UML图 第3课 风格 第4课 资源 第5课 环境准备 第6课 第一个示例Hibernate HelloWorld 第7课 建立Annotation版本的 ... 
- 马士兵讲jsp项目--BBS项目分析笔记
		1 导言 作为一个新手JAVA程序员,我相信很多人和我一样急切的想要寻找项目来做,这里我把马士兵老师讲的JAVA WEB的第一个小项目拿过来给大家分享一下. 首先,对一个项目而言我们先要认识清楚我们要 ... 
- 马士兵Java视频教程 —— 学习顺序
		第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01章_JAVA简介_源代码_及重 ... 
- [转载]马士兵Java视频教程 —— 学习顺序
		书(Java核心编程)+视频..这样学感觉比较好.. 原文地址:马士兵Java视频教程 —— 学习顺序作者:习惯 第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5. ... 
- 尚学堂马士兵struts2 课堂笔记(一)
		06_尚学堂马士兵_Struts2_Struts2_HelloWorld_5 <constant name="struts.devMode" value="true ... 
- 【转】Java自学之路——by马士兵
		作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ... 
- [感悟]马士兵Java自学之路——(精华版)
		JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ... 
- 局域网聊天Chat(马士兵视频改进版)
		Github地址: https://github.com/BenDanChen/Chat Chat 小小的聊天系统,主要是跟着网上的马士兵老师的公开视频然后再自己反思有什么地方需要改进的地方,然后大体 ... 
随机推荐
- lesson3:使用java代码的方式对不能识别的协议进行压力测试
			在我们的实际环境中,我们所使用的协议肯定不只是http的方式,对于rpc等调用协议,目前jmeter没有相应的sampler支持,这时就需要通过引入我们自己写的jar包的方式来解决这个问题.例如:当我 ... 
- 2.x最终照着教程,成功使用OpenGL ES 绘制纹理贴图,添加了灰度图
			在之前成功绘制变色的几何图形之后,今天利用Openg ES的可编程管线绘制出第一张纹理. 学校时候不知道OpenGL的重要性,怕晦涩的语法.没有跟老师学习OpenGL的环境配置,现在仅仅能利用coco ... 
- java jodd轻量级开发框架
			http://git.oschina.net/huangyong/jodd_demo/blob/master/jodd-example/src/main/java/jodd/example/servi ... 
- [RxJS] Observables can throw errors
			Whenever we are writing code, we need to remember that things may go wrong. If an error happens in a ... 
- 百度之星资格赛 hdu 4826 Labyrinth 动态规划
			/********************* Problem Description 是一仅仅喜欢探险的熊.一次偶然落进了一个m*n矩阵的迷宫,该迷宫仅仅能从矩阵左上角第一个方格開始走,仅仅有走到右上 ... 
- Java学习笔记——JDBC读取properties属性文件
			Java 中的 properties 文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件. 文件的内容是格式是"键=值"(key-valu ... 
- Java多线程练习三
			public class ex5 { public static void main(String [] args) { thread5 t1 = new thread5(); thread5_1 t ... 
- Sass混合宏、继承、占位符
			混合宏-声明混合宏如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的.但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无 ... 
- MySQL sql 执行步骤
			基本步骤是 1.from 2.join on 3.where 4.group by 5.having 6.order by 7.select 8.distinct ,sum,... ... 
- ORA-02095: specified initialization parameter cannot be modified
			输入命令:alter system set utl_file_dir='/home/oracle/logmnr' scope=spfile; 报错: 出错原因:没有用spfile文件启动数据库 解决办 ... 
