jsp 内置对象二
1.什么是session ?
(1)session 表示客户端与服务器的一次回话。
2)Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花的时间。
3)从上述定义中可以看到,session实际上是一个特定的时间概念。
2.session对象
(1)session对象指的是客户端与服务器的一次会话。
(2)从客户打开浏览器并链接到服务器开始, 直到客户关闭浏览器离开这个服务器结束,被称为一个回话它是HttpSession
类的实例.
(3)session 的应用:
当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象。
3.session对象的常用方法:
(1)String getId():获得session id。session id类似于Cookie的JSessionId,是服务器自动分配的;
(2)session.setAttribute("String name","object value"):设置属性。
(3)session.getCreationTime():获得创建时间。
(4)session.getLastAccessedTime():获得最后访问时间。
(5)session.isNew():这个session是否是新的,即判断session id。
(6)session.invalidate():把session的属性设置全部清空。
7)session.getAttribute(String name):返回与此回话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null.
(8)session.getValueNames():返回一个包含此session种所有可用属性的数组。
9)session.setMaxInactiveInterval(5);手动销毁session的生命周期(设置为5秒过期).
10)int getMaxInactiveInterval():返回两次请求间隔多久时间此session被取消单位秒。
登录-注销页面:
(1)使用session.setAttribute()注册。
(2)使用session.getAttribute()判断是否已经注册。
(3)使用session.invalidate(); 注销;
3.session 的生命周期:
1.创建:当客户端第一次访问某个jsp或者servlet时候,服务器会为当前会话创建一个SessionId,每次客户端向服务器发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验。
2.活动:
①某次会话当中通过超链接打开的新页面属于同一次会话
②只要当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一个项目资源时属于同一次会话
③除非本次会话的所有页面都关闭后在重新访问某个JSP或者servlet将会创建新的会话
注意:注意原有会话还存在,只是这个旧的Session仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务端校验。
4。那几种情况可以销毁session(一般有3种情况)
(1)超时(一般服务器设置超时时间为30分钟)服务器会销毁session。
(2)点击控制台的红色按钮(stop)异常关闭服务器要销毁session。
(3)手动调用session 的invalidate方法session.invalidate();
注意:如果服务器正常关闭不会销毁session。
5.session的时间设定与时间的修改:
6.session的代码实例:
(1)实例1:
<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d = new Date(session.getCreationTime());
session.setAttribute("username","xingoo");
session.setAttribute("password","123");
session.setAttribute("age","26"); //設置Session生命期限
//session.setMaxInactiveInterval(2); %>
Session创建时间:<%=sdf.format(d) %><br>
Session的ID编号:<%=session.getId() %><br>
Session获取:<%=session.getAttribute("username") %><br>
Session中保存的屬性:<%
String[] names = session.getValueNames();
for(int i=0;i<names.length;i++){
out.println(names[i]+" ");
}
%><br>
<%
//session.invalidate();//执行销毁后,服务器直接就删除了会话的相关内容;
%>
(2)实例2:
<%@page import="org.apache.catalina.connector.Request"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<script type="text/javascript"> function on_submit(){
if(form1.username.value=="")
{
alert("用户名不能为空,请输入用户名!");
form1.username.focus();
return false; }
if(form1.userpassword.value=="")
{
alert("密码不能为空,请输入密码!");
form1.userpassword.focus();
return false
}
}
</script>
<%!
public String codeToString(String str){ //处理中文字符串的函数
String s=str;
try
{
byte tempB[]=s.getBytes("ISO-8859-1");
s=new String(tempB);
return s; }catch(Exception e)
{
return s;
} }
%>
<%
String username=request.getParameter("username");
String userpassword=request.getParameter("userpassword");
if(username!=null &userpassword!=null)
{
//如果用户名和密码都合法,则记下用户名,一般把用户和密码存在数据库中
//用数据库中的信息与提交的用户名和密码比较以进行用户合法性检查
session.setAttribute("username", codeToString(username));
response.sendRedirect("sessionUserLogin1.jsp");
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户登录</title>
</head>
<body>
<table aligin="center">
<form name="form1" method="post" action="dologin.jsp" onsubmit="return on_submit()">
<tr aligin="center">
<td>
用户登录
</td>
</tr>
<tr aligin="center">
<td>
请输入用户名:<input type="text" name="username" size="20">
</td>
</tr>
<tr aligin="center">
<td>
请输入密码: <input type="password" name="userpassword" size="20">
</td>
</tr>
<tr aligin="center">
<td>
<input type="submit" value="提交" name="B1">
<input type="reset" value="全部重写" name="B2">
</td>
</tr>
</form>
</table>
</body>
</html //index文件
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户登录成功</title>
</head>
<body> 用户登录成功!<br>
您的用户名是:<%=(String)session.getAttribute("username")%>
</body>
</html>
(3)实例3:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Session 内置对象</title>
</head>
<body>
<h1>session 测试</h1>>
<a href="index2.jsp">跳转到页面2</a>
<hr/>
session_id=<%=session.getId() %> <%
//手动销毁 session
/* session.invalidate(); */
session.setMaxInactiveInterval(5); %>
</body>
</html> //index2.jsp 文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>我是页面2</title>
</head>
<body>
<h1>我是页面2</h1> session_id=<%=session.getId() %>
</body>
</html>
7.application 应用程序单列对象
(1)application 对象实现了用户间数据的共享,可存放全局变量。application 对象是ServletContext 类的实例。基本是javax.servlet.ServletContext类。
注意:有些Web服务器不直接支持使用application对象,必须用ServletContext类来声明application对象,再调用getServletContext()方法来获取当前页面的application对象。
(2)application 的生命周期:application开始与服务器,终止于服务器的关闭。
注意:一个Web应用程序启动后,将会自动创建一个application对象,而且在整个应用程序的运行过程中只有一个application对象,也即所有访问该网站的客户都共享一个application对象。
(3)application对象的作用范围:application对象是一个应用程序级的对象,它作用于当前Web应用程序,也即作用于当前网站,所有访问当前网站的客户都共享一个application对象。
具体来说:不管哪个客户来访问网站A,也不管客户访问网站A下哪个页面文件,都可以对网站A的application对象进行操作,因为,所有访问网站A的客户都共用一个application对象。
因此,当在application对象中存储数据后,所有访问网站A的客户都能够对其进行访问,实现了多客户之间的数据共享。
(4) ServletContext类:用于表示应用程序的上下文。
一个ServletContext类的对象表示一个Web应用程序的上下文。
具体来说:在Web服务器中,提供了一个Web应用程序的运行时环境,专门负责Web应用程序的部署、编译、运行以及生命周期的管理,通过ServletContext类,可以获取Web应用程序的运行时环境信息。
(5)常识:JSP引擎、Servlet引擎、JSP容器和Servlet容器,都是指Web服务器,Web服务器用于管理所有Web应用程序。
8.application对象的常用方法,如下所示:
方法 | 功能 |
---|---|
getInitParameter(String name) | 返回已命名的应用程序初始化参数值 |
Enumeration getAttributeNames() | 返回所有已定义的应用程序初始化参数名的枚举 |
getAttribute(String name) | 从application对象中获取指定对象名 |
setAttribute(String name, Object obj) | 保存一个对象信息,并指定给一个名称 |
removeAttribute(String name) | 从application对象中去掉指定名称的属性 |
getServletInfo() | 返回JSP引擎的相关信息(返回jsp(SERVLET)引擎名及版本号) |
getRealPath(String path) | 返回虚拟路径的真实路径 |
getContext(String URLPath) | 返回执行Web应用的application对象 |
getMajorVersion() | 返回服务器所支持的Servlet API最大版本号 |
getMinorVersion() | 返回服务器所支持的Servlet API最小版本号 |
getMineType(String file) | 返回指定文件的MIME类型 |
getResource(String path) | 返回指定资源的URL路径 |
getResourceAsStream(String path) | 返回指定资源的输入流 |
getRequestDispatcher(String URLPath) | 返回指定资源的RequestDispatcher对象 |
getServlet(String name) | 返回指定名称的Servlet |
getServlets() | 返回所有的Servlet,返回类型为枚举型 |
getServletNames() | 返回所有的Servlet名称,返回类型为枚举型 |
log(String msg) | 把指定信息写入到Servlet的日志文件中 |
log(String msg, Throwable throwable) | 把栈轨迹以及给出的Throwable异常的说明信息写入Servlet的日志文件 |
9.application的代码测试
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%
application.setAttribute("username","王小花");
application.setAttribute("age","18"); %> <%=application.getServerInfo() %>
<a href="index.jsp?name=张三">前往首页</a> <%
Enumeration em = application.getAttributeNames(); while(em.hasMoreElements()){
out.println(em.nextElement()+"<br>");
}
%> //下面是文件(2)index 文件 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
*{
text-align:center; } </style>
</head>
<body>
<% session.setAttribute("username", "张三丰");
%> <h1>通过 URL 链接 获取值</h1>
用户名是:<%=request.getParameter("name") %>
<hr>
<h1>通过application 获取值</h1>
用户名是:<%=application.getAttribute("username") %>
年龄是:<%=application.getAttribute("age") %> <% out.println("<h1>望庐山瀑布</h1>");
out.println("日照香炉生紫烟,<br/>");
/*强制输出缓冲区里面的内容 */
out.flush();
/* 清空前面的缓冲区 */
out.clearBuffer();
out.println("遥看瀑布挂前川,<br/>");
out.println("飞流直下三千尺,<br/>");
out.println("疑似银河落九天,<br/>"); /* out.close(); */
%> 缓冲区大小=<%=out.getBufferSize() %><br/> 缓冲区剩余大小=<%=out.getRemaining() %><br/> </body>
</html>
(2)使用application对象实现网站计数器(常用)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.*"%>
<h1>application 计数器</h1>
<%
Integer number =(Integer)application.getAttribute("Count");
if(number==null){
number=new Integer(1);
application.setAttribute("Count",number);
}
if(session.isNew()==true){
number =new Integer(number.intValue()+1);
application.setAttribute("Count",number);
} %>
<p>你是第
<% int a=((Integer)pageContext.getAttribute("Count",PageContext.APPLICATION_SCOPE)).intValue(); %>
<%=a %>
个访问本站的客户;</p>
10.session和application的区别:
(1) 两者的作用范围不同:
session对象是用户级的对象,而application对象是应用程序级的对象。
一个用户一个session对象,每个用户的session对象不同,在用户所访问网站的多个页面之间共享同一个session对象。
一个Web应用程序一个application对象,每个Web应用程序的application对象不同,但一个Web应用程序的多个用户之间共享同一个application对象。
在同一个网站下:
a. 每个用户的session对象不同
b.所用用户的application对象相同
在不同网站下:
a.每个用户的session对象不同
b. 每个用户的application对象不同
(2) 两者的生命周期不同:
session对象的生命周期:用户首次访问网站创建,用户离开该网站 (不一定要关闭浏览器) 消亡。
application对象的生命周期:启动Web服务器创建,关闭Web服务器销毁。
11.page对象:
(1)page对象代表JSP本身,只有在JSP页面内才是合法的。page对象本质上是包含当前Servlet接口引用的变量,有点像类中的this指针。
(2)page对象的常用方法,如下:
page.getClass()//获得page对象的类
page.hashCode()//获得page对象的hash码
page.toString()//将此page对象转换为String类对象
page.notify()//唤醒一个等待的进程
page.notifyAll()//唤醒所有等待的进程
page.wait()//使一个线程处于等待直到被唤醒
page.wait(long timeout)//使一个线程处于等待直到timeout或被唤醒
page.equals(object obj)//判断此object是否与指定的object对象相等
object clone() 克隆此object对象
void copy(object obj)把此object拷贝到指定的object对象中
(3)page代码实例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
out.println(page.toString()); %>
</body>
</html>
12.pageContext全文对象
pageContext对象是javax.servlet.jsp.PageContext类的实例,主要表示的是一个JSP页面的上下文
(1)pageContext 对象提供了对JSP页面内所有的对象及名字空间的访问。
(2)pageContext 对象可以访问到本页所在的session,也可以本页面所在的application的某一属性值
(3)pageContext对象相当于页面中所有功能的集大成者
(4)pageContext 对象的本类名也叫pageContext.
13.pageContext全文对象的常用方法
方法 | 功能 |
---|---|
getRequest() | 获取当前页面中的request对象 |
getResponse() | 获取当前页面中的response对象 |
getPage() | 获取当前页面中的page对象 |
getSession() | 获取当前页面中的session对象 |
getOut() | 获取当前页面中的out对象 |
getException() | 获取当前页面中的exception对象 |
getServletConfig() | 获取当前页面中的config对象 |
getServletContext() | 获取当前页面中的application对象 |
setAttribute(String name) | 给指定的属性名设置属性值 |
getAttribute(String name) | 根据属性名找到相应的属性值 |
setAttribute(String name, Object obj, int scope) | 在给定的范围内设置相应的属性值 |
getAttribute(String name, int scope) | 在指定的范围内获取到相应的属性值 |
findAttribute(String name) | 寻找一个属性并返回,如果没有找到则返回一个null |
removeAttribute(String name) | 通过属性名删除掉某个属性 |
removeAttribute(String name, int scope) | 在指定的某个范围内删除某个属性 |
getAttributeScope(String scope) | 返回某属性的作用域 |
getAttributeNamesInScope(int scope) | 返回指定范围内的所有属性名的枚举 |
release() | 释放掉pageContext()所占的所有资源 |
forward(String relativeURLpath) | 使用当前页面重导到另一个页面 |
include(String relativeURLpath) | 使用当前位置包含的另一个页面 |
也就是说,只要有了pageContext对象,就能完成一切内置对象的功能;
补充:pageContext对象在实际JSP开发中一般很少使用,因为request和response等对象均为内置对象,如果通过pageContext来调用这些对象比较麻烦,都可以直接调用相关方法实现具体的功能。
使用函数:pageConext.setAttribute("name","value",int SCOPE);
1.设置page范围
pageConext.setAttribute("name","xiazdong",PageConext.PAGE_SCOPE);
2.设置request范围
pageConext.setAttribute("name","xiazdong",PageConext.REQUEST_SCOPE);
3.设置session范围
pageConext.setAttribute("name","xiazdong",PageConext.SESSION_SCOPE);
pageConext.setAttribute("name","xiazdong",PageConext.APPLICATION_SCOPE);
因此,只需要PageContext就能完成全部内置对象的操作;
14.pageContext全文对象的代码实例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//pageContext.include("index.jsp"); //获取到与index.jsp有关联的所有文件 //pageContext.forward("getPost.jsp"); %>
<%= pageContext.getSession().getAttribute("username") %> //index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
*{
text-align:center; } </style>
</head>
<body>
<% session.setAttribute("username", "张三丰");
%> <h1>通过 URL 链接 获取值</h1>
用户名是:<%=request.getParameter("name") %>
<hr>
<h1>通过application 获取值</h1>
用户名是:<%=application.getAttribute("username") %>
年龄是:<%=application.getAttribute("age") %> <% out.println("<h1>望庐山瀑布</h1>");
out.println("日照香炉生紫烟,<br/>");
/*强制输出缓冲区里面的内容 */
out.flush();
/* 清空前面的缓冲区 */
out.clearBuffer();
out.println("遥看瀑布挂前川,<br/>");
out.println("飞流直下三千尺,<br/>");
out.println("疑似银河落九天,<br/>"); /* out.close(); */
%> 缓冲区大小=<%=out.getBufferSize() %><br/> 缓冲区剩余大小=<%=out.getRemaining() %><br/> //getPost.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>表单提交</title>
</head>
<body>
<h1>get</h1>
<form action="doLogin.jsp" name="loginForm"method="get">
<table>
<tr>
<td>账号:</td>
<td><input type="text" name="username" placeholder="请输入账号" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" placeholder="请输入密码" /></td>
</tr>
<tr>
<td><input type="submit" value="提交" /></td> </tr>
</table>
</form>
<h1>post</h1>
<form action="doLogin.jsp" name="loginForm"method="post">
<table>
<tr>
<td>账号:</td>
<td><input type="text" name="username" placeholder="请输入账号" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" placeholder="请输入密码" /></td>
</tr>
<tr>
<td><input type="submit" value="提交" /></td> </tr>
</table>
</form>
15.exception 异常对象
exception 对象是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。如果一个jsp页面要应用此对象,就必须把isErrorPage 设为true,否则无法编译。他实际上是java.lang.Throwable的对象,常用方法如下:
(1)String getMessage() 返回描述异常的信息
(2)String toString()返回关于异常的简短描述信息
(3)void printStackTrace() 显示异常及其栈轨迹
(4)Throwable fillinStackTrace()重写异常的执行栈轨迹
15.2 exception 异常对象的实例代码:
16.Config 对象
config对象主要用于取得服务器的配置信息。当一个Servlet初始化时,容器把某些信息通过config对象传递给这个Servlet。此信息包括Servlet初始化时所需要用到的参数(通过属性名和属性值构成)以及服务器的有关信息。
Config 对象的常用方法有:
方法 | 功能 |
---|---|
getServletContext() | 获取Servlet上下文 |
getInitParameter(String name) | 返回初始化参数的值 |
getInitParameterNames() | 返回包含了Servlet初始化所需要的所有参数,返回类型是枚举型 |
getServletName() | 获取Servlet服务器名 |
jsp 内置对象二的更多相关文章
- jsp内置对象浅谈
jsp内置对象浅谈 | 浏览:1184 | 更新:2013-12-11 16:01 JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对 ...
- JavaWeb学习----JSP内置对象详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Jsp内置对象及EL表达式的使用
一.JSP的内置对象(9个JSP内置对象) JSP的内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse ses ...
- Java遇见HTML——JSP篇之JSP内置对象(上)
一.JSP内置对象简介 1.1.内置对象简介 JSP内置对象是WEB容器中创建的一组对象,可以直接使用不需要new,如截图中的out 对象. JSP有九大内置对象: 五大常用对象: out.reque ...
- JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础
JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...
- JSP内置对象的实验报告,页面登陆设计
JSP内置对象的实验报告 一.实验目的: 本实验的目的是让学生掌握怎样在JSP中使用内置对象request.page.response等. 二.实验要求: 编写四个JSP 页面login.jsp.Re ...
- Java EE JSP内置对象及表达式语言
一.JSP内置对象 JSP根据Servlet API规范提供了一些内置对象,开发者不用事先声明就可使用标准变量来访问这些对象. JSP提供了9种内置对象: (一).request 简述: JSP编程中 ...
- JSP内置对象与servlet对应关系
隐式对象 说明 out 转译后对应JspWriter对象,其内部关联一个PringWriter对象 request 转译后对应HttpServletRequest/ServletRequest对象 r ...
- JSP内置对象之out对象
一. JSP内置对象的概述 由于JSP使用java作为脚本语言,所以JSP将具有强大的对象处理能力,并且可以动态地创建Web页面内容.但Java语法在使用一个对象前,需要先实例化这 ...
随机推荐
- Python字符串格式化表达式和格式化方法
Python格式化字符串由两种方式可以选择:一种是格式化表达式(Formatting Expression),一种是格式化方法(Formatting Method).其中格式化表达式在全Python版 ...
- Python运行的方式
Python的运行方式多种多样,下面列举几种: 交互式 在命令行中输入python,然后在>>>提示符后面输入Python语句,这里需要注意: 1 语句前面不能有空格,否则会报错 2 ...
- 2d命令行小游戏源码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- ACM 第十五天
计算几何基础 练习题 C - Wasted Time Mr. Scrooge, a very busy man, decided to count the time he wastes on all ...
- 【week4】课堂Scrum站立会议
项目:连连看游戏 小组名称:天天向上(旁听) 小组成员:张政 张金生 李权 武致远 已完成任务 1.本项目采用c#. 2. 初步界面. 形成一个windows下的游戏界面,每个需要消除的方块是一个bu ...
- tomcat web页面管理应用配置
大部分时候,我们的tomcat服务器都不是部署在本机,那么怎么样不通过ftp/sftp方式来将war包部署到tomcat容器呢? tomcat有提供web页面管理应用的功能. 我们来看看怎么配置实现该 ...
- PHP实现大文件分割上传与分片上传
转载:http://www.zixuephp.com/phpstudy/phpshilie/20170829_43029.html 服务端为什么不能直接传大文件?跟php.ini里面的几个配置有关 u ...
- extract函数行结果
$arr2=array('a'=>'aaaa','b'=>'bbbb','c'=>'cccc','d'=>'dddd','e'=>'eeeee','b'=>'fff ...
- 面试中常用排序算法的python实现和性能分析
这篇是关于排序的,把常见的排序算法和面试中经常提到的一些问题整理了一下.这里面大概有3个需要提到的问题: 虽然专业是数学,但是自己还是比较讨厌繁琐的公式,所以基本上文章所有的逻辑,我都尽可能的用大白话 ...
- 关于c++中public & private方法调用问题
class IDNoIdentifier { public: IDNoIdentifier(); ~IDNoIdentifier(); typedef vector<cv::Rect> C ...