仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 385|回复: 9
打印 上一主题 下一主题

[学习教程] JAVA网页设计JSP内建对象

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。js|对象①out-javax.servlet.jsp.jspWriter
out对象用于把了局输入到网页上。
办法:
1.voidclear();
扫除输入缓冲区的内容,可是不输入到客户端。
2.voidclearBuffer();
扫除输入缓冲区的内容,并输入到客户端。
3.voidclose();
封闭输入流,扫除一切内容。
4.voidflush();
输入缓冲区内里的数据。
5.intgetBufferSize();
猎取以kb为单元的今朝缓冲区巨细。
6.intgetRemaining();
猎取以kb为单元的缓冲区中未被占用的空间巨细。
7.booleanisAutoFlush();
是不是主动革新缓冲区。
8.voidnewLine();
输入一个换行字符。
9.voidprint(booleanb);
voidprint(charc);
voidprint(char[]s);
voidprint(doubled);
voidprint(floatf);
voidprint(inti);
voidprint(longl);
voidprint(Objectobj);
voidprint(Strings);
将指定范例的数据输入到Http流,不换行。
10.voidprintln(booleanb);
voidprintln(charc);
voidprintln(char[]s);
voidprintln(doubled);
voidprintln(floatf);
voidprintln(inti);
voidprintln(longl);
voidprintln(Objectobj);
voidprintln(Strings);
将指定范例的数据输入到Http流,并输入一个换行符。

11.Appendableappend(charc);
Appendableappend(CharSequencecxq,intstart,intend);
Appendableappend(CharSequencecxq);
将一个字符大概完成了CharSequence接口的对象增加到输入流的前面。
成员:
intDEFAULT_BUFFER=0-缺省缓冲区巨细
intNO_BUFFER=-1-writer是不是处于缓冲输入形态
intUNBOUNDED_BUFFER=-2-是不是限定缓冲区巨细

②request-javax.servlet.http.HttpServletRequest
request对象包括一切哀求的信息,如哀求的来历、标头、cookies和哀求相干的参数值等。
办法:
1.ObjectgetAttribute(Stringname);
前往由name指定的属性值,该属性不存在时前往null。
2.EnumerationgetAttributeNames();
前往request对象的一切属性称号的汇合。
3.StringgetAuthType();
前往用来回护servlet的认证办法的称号,未受回护时前往null。
4.StringgetCharacterEncoding();
前往哀求中的字符编码办法,能够在response对象中设置。
5.intgetContentLength();
前往哀求的BODY的长度,不克不及断定长度时前往-1。能够在response中设置。
6.StringgetContentType();
前往在response中界说的内容范例。
7.StringgetContentPath();
前往哀求的路径。
8.Cookie[]getCookies();
前往客户端一切的Cookie的数组。
9.EnumerationgetHeaderNames();
前往一切HTTP头的称号的汇合。
10.EnumerationgetHeaders(Stringname);
前往指定HTTP头的一切值的汇合。
11.StringgetHeader(Stringname);
前往指命名称的HTTP头的信息。
12.longgetDateHeader(Stringname);
前往指命名称的Data范例的HTTP头的信息。
13.intgetIntHeader(Stringname);
前往指命名称的Int范例的HTTP头的信息。
14.ServletInputStreamgetInputStream();
前往哀求的输出流。
15.LocalegetLocale();
前往以后页的Locale对象,能够在response中设定。
16.EnumerationgetLocales();
前往哀求中一切的Locale对象的汇合。
17.StringgetLocalName();
猎取呼应哀求的服务器端主机名。
18.StringgetLocalAddr();
猎取呼应哀求的服务器端地点。
19.intgetLocalPort();
猎取呼应哀求的服务器端端口
20.StringgetMethod();
猎取客户端向服务器端发送哀求的办法(GET、POST)。
21.StringgetParameter(Stringname);
猎取客户端发送给服务器真个参数值。
22.MapgetParameterMap();
该办法前往包括哀求中一切参数的一个Map对象。
23.EnumerationgetParameterNames();
前往哀求中一切参数的汇合。
24.String[]getParameterValues(Stringname);
取得哀求中指定参数的一切值。
25.StringgetQueryString();
前往get办法传送的参数字符串,该办法不分化出独自的参数。
26.StringgetPathInfo();
掏出哀求中处于ServletPath和QueryString之间的分外信息。
27.StringgetPathTranslated();
前往用getPathInfo()办法获得的路径信息的实践路径。
28.StringgetProtocol();
前往哀求利用的协定。能够是HTTP1.1大概HTTP1.0。
29.BufferedReadergetReader();
前往哀求的输出流对应的Reader对象,该办法和getInputStream()办法在一个页面中只能挪用一个。
30.StringgetRemoteAddr();
猎取收回哀求的客户端IP地点。
31.StringgetRemoteHost();
猎取收回哀求的客户端主机名
32.StringgetRemoteUser();
前往经由客户端考证的用户名,未履历证前往null。
33.intgetRemotePort();
前往收回哀求的客户端主机端口。
34.StringgetRealPath(Stringpath);
前往给定假造路径的物理路径。
35.RequestDispatchergetRequestDispatcher(Stringpath);
按给定的路径天生资本转向处置适配器对象。
36.StringgetRequestedSessionId();
前往哀求的session的标识。
37.StringRequestURI();
前往收回哀求的客户端地点,可是不包含哀求的参数字符串。
38.StringBuffergetRequestURI();
前往呼应哀求的服务器端地点
39.StringgetScheme();
猎取协定称号,缺省值为HTTP协定。
40.StringgetServerName();
前往呼应哀求的服务器称号。
41.StringgetServletPath();
猎取客户端所哀求的剧本文件的文件路径。
42.intgetServerPort();
猎取呼应哀求的服务器端主机端标语。
43.voidremoveAttribute(Stringname);
在属性列表中删除指命名称的属性。
44.voidsetAttribute(Stringname,Objectvalue);
在属性列表中增加/删除指定的属性。
45.voidsetCharacterEncoding(Stringname);
设置哀求的字符编码格局。
46.HttpSessiongetSession();
HttpSessiongetSession(booleancreate);
猎取session,假如create为true,在无session的情形下创立一个。

47.booleanisRequestedSessionIdFromCookie();
反省哀求的会话ID是不是为经由过程Cookie传进。
48.booleanisRequestedSessionIdFromURL();
反省哀求的会话ID是不是为经由过程URL传进。
49.booleanisRequestedSessionIdValid();
反省哀求的会话ID是不是仍旧无效。
50.booleanisSecure();
反省哀求是不是利用平安链接,假如HTTPS等。
51.booleanisUserInRole(Stringrole);
反省已经由过程考证的用户是不是在是role所指定的脚色。
52.PrincipalgetUserPrincipal();
前往包括用户上岸名的一个java.security.Principal对象。
成员:
StringBASIC_AUTH="BASIC"-
StringCLIENT_CERT_AUTH="CLIENT_CERT"-
StringDIGEST_AUTH="DIGEST"-
StringFORM_AUTH="FORM"-

③response-javax.servlet.http.HttpServletResponse
response对象次要将JSP容器处置后的了局传回到客户端。
办法:
1.voidaddCookie(Cookiecookie);
增加一个Cookie对象,保留客户端信息。
2.voidaddDateHeader(Stringname,longvalue);
增加一个日期范例的HTTP头信息,掩盖同名的HTTP头信息。
3.voidaddHeader(Stringname,Stringvalue);
增加一个HTTP头,掩盖同名的旧HTTP头。
4.voidaddIntHeader(Stringname,intvalue);
增加一个整型的HTTP头,掩盖同名的旧HTTP头。
5.booleancontainsHeader(Stringname);
判别指定的HTTP头是不是存在。
6.StringencodeRedirectURL(Stringurl);
对sendRedirect()办法利用的URL举行编码。
7.StringencodeURL(Stringurl);
将URL予以编码,回传包括sessionID的URL。

8.voidflushBuffer();
强迫把以后缓冲区的内容发送到客户端。
9.intgetBufferSize();
获得以kb为单元的缓冲区巨细。
10.StringgetCharacterEncoding();
猎取呼应的字符编码格局。
11.StringgetContentType();
猎取呼应的范例。
12.LocalegetLocale();
猎取呼应的Locale对象。
13.ServletOutputStreamgetOutputStream();
前往客户真个输入流对象。
14.PrintWritergetWriter();
猎取输入流对应的writer对象。
15.booleanisCommitted();
判别服务器端是不是已将数据输入到客户端。
16.voidreset();
清空buffer中的一切内容。
17.voidresetBuffer();
情形buffer中一切的内容,可是保存HTTP头和形态信息。
18.voidsendError(intxc,Stringmsg);
voidsendError(intxc);
发送毛病,包含形态码和毛病信息。
19.voidsendRedirect(Stringlocationg);
把呼应发送到别的一个地位举行处置。
20.voidsetBufferSize(intsize);
设置以kb为单元的缓冲区巨细。
21.voidsetCharacterEncoding(Stringcharset);
设置呼应利用的字符编码格局。
22.voidsetContentLength(intlength);
设置呼应的BODY长度。
23.voidsetContentType(Stringtype);
设置呼应的范例。
24.voidsetDateHeader(Stringname,longvalue);
设置指命名称的Data范例的HTTP头的值。
25.voidsetHeader(Stringname,Stringvalue);
设置指命名称的HTTP头的值。
26.voidsetIntHeader(Stringname,intvalue);
设置指命名称的int范例的HTTP头的值。
27.voidsetStatus(intxc);
设置呼应形态码,新值会掩盖以后值。
成员(HTTP形态码):
intSC_CONTINUE=100intSC_SWITCHING_PROTOCOLS=101
intSC_OK=200intSC_NON_AUTHORITATIVE_INFORMATION=203
intSC_ACCEPTED=202intSC_CREATED=201
intSC_NO_CONTENT=204intSC_RESET_CONTENT=205
intSC_PARTIAL_CONTENT=206intSC_MULTIPLE_CHOICES=300
intSC_MOVED_PERMANENTLY=301intSC_MOVED_TEMPORARILY=302
intSC_FOUND=302intSC_SEE_OTHER=303
intSC_NOT_MODIFIED=304intSC_USE_PROXY=305
intSC_TEMPORARY_REDIRECT=307intSC_BAD_REQUEST=400
intSC_UNAUTHORIZED=401intSC_PAYMENT_REQUIRED=402
intSC_FORBIDDEN=403intSC_NOT_FOUND=404
intSC_METHOD_NOT_ALLOWED=405intSC_NOT_ACCEPTABLE=406
intSC_PROXY_AUTHENTICATION_REQUIRED=407intSC_REQUEST_TIMEOUT=408
intSC_CONFLICT=409intSC_GONE=410
intSC_LENGTH_REQUIRED=411intSC_PRECONDITION_FAILED=412
intSC_REQUEST_ENTITY_TOO_LARGE=413intSC_REQUEST_URI_TOO_LONG=414
intSC_UNSUPPORTED_MEDIA_TYPE=415intSC_REQUESTED_RANGE_NOT_SATISFIABLE=416
intSC_EXPECTATION_FAILED=417intSC_INTERNAL_SERVER_ERROR=500
intSC_NOT_IMPLEMENTED=501intSC_BAD_GATEWAY=502
intSC_SERVICE_UNAVAILABLE=503intSC_GATEWAY_TIMEOUT=504
intSC_HTTP_VERSION_NOT_SUPPORTED=505

④session-javax.servlet.http.HttpSession
session对象暗示今朝一般用户的会话形态,用来辨认每一个用户。
办法:
1.ObjectgetAttribute(Stringname);
猎取与指命名字相干联的session属性值。
2.EnumerationgetAttributeNames();
获得session内一切属性的汇合。
3.longgetCreationTime();
前往session的创立工夫,最小单元千分之一秒。
4.StringgetId();
获得session标识。
5.longgetLastAccessedTime();
前往与以后session相干的客户端最初一次会见的工夫,由1970-01-01算起,单元毫秒。
6.intgetMaxInactiveInterval(intinterval);
前往总工夫,以秒为单元,暗示session的无效工夫(session不举动工夫)。-1为永不外期。
7.ServletContextgetServletContext();
前往一个该JSP页面临应的ServletContext对象实例。
8.HttpSessionContextgetSessionContext();

9.ObjectgetValue(Stringname);
获得指命名称的session变量值,不保举利用。
10.String[]getValueNames();
获得一切session变量的称号的汇合,不保举利用。
11.voidinvalidate();
烧毁这个session对象。
12.booleanisNew();
判别一个session是不是由服务器发生,可是客户端并没有利用。
13.voidpubValue(Stringname,Objectvalue);
增加一个session变量,不保举利用。
14.voidremoveValue(Stringname);
移除一个session变量的值,不保举利用。
15.voidsetAttribute(Stringname,Stringvalue);
设置指命名称的session属性值。
16.voidsetMaxInactiveInterval(intinterval);
设置session的无效期。
17.voidremoveAttribute(Stringname);
移除指命名称的session属性。

⑤pageContext-javax.servlet.jsp.PageContext
pageContext对象存储本JSP页面相干信息,如属性、内建对象等。
办法:
1.voidsetAttribute(Stringname,Objectvalue,intscope);
voidsetAttribute(Stringname,Objectvalue);
在指定的共享局限内设置属性。
2.ObjectgetAttribute(Stringname,intscope);
ObjectgetAttribute(Stringname);
获得指定共享局限内以name为名字的属性值。
3.ObjectfindAttribute(Stringname);
按页面、哀求、会话和使用程序共享局限搜刮已定名的属性。
4.voidremoveAttribute(Stringname,intscope);
voidremoveAttribute(Stringname);
移除指命名称和共享局限的属性。
5.voidforward(Stringurl);
将页面导航到指定的URL。
6.EnumerationgetAttributeNamesScope(intscope);
获得指定共享局限内的一切属性称号的汇合。
7.intgetAttributeScope(Stringname);
获得指定属性的共享局限。
8.ErrorDatagetErrorDate();
获得页面的errorData对象。
9.ExceptiongetException();
获得页面的exception对象。
10.ExpressionEvaluatorgetExpressionEvaluator();
获得页面的expressionEvaluator对象。
11.JspWritergetOut();
获得页面的out对象。
12.ObjectgetPage();
获得页面的page对象。
13.ServletRequestgetRequest();
获得页面的request对象。
14.ServletResponsegetResponse();
获得页面的response对象。
15.ServletConfiggetConfig();
获得页面的config对象。
16.ServletContextgetServletContext();
获得页面的servletContext对象。
17.HttpSessiongetSession();
获得页面的session对象。
18.VariableResolvergetVariableResolver();
获得页面的variableResolver对象。
19.voidinclude(Stringurl,booleanflush);
voidinclude(Stringurl);
包括其他的资本,并指定是不是主动革新。
20.voidrelease();
重置pageContext外部形态,开释一切外部援用。
21.voidinitialize(Servletservlet,ServletRequestrequest,ServletResponseresponse,
StringerrorPageURL,booleanneedSession,intbufferSize,booleanautoFlush);
初始化未经初始化的pageContext对象。
22.BodyContextpushBody();
BodyContextpushBody(Writerwriter);
保留以后的out对象,并更新pageContext中page局限内的out对象。
23.JspWritepopBody();
掏出由pushBody()办法保留的out对象。
24.voidhandlePageException(Exceptione);
voidhandlePageException(Thrwoablet);

成员:
intPAGE_SCOPE=1-页面共享局限
intREQUEST_SCOPE=2-哀求共享局限
intSESSION_SCOPE=3-会话共享局限
intAPPLICATION_SCOPE=4-使用程序共享局限
StringPAGE="javax.servlet.jsp.jspPage"
StringPAGECONTEXT="javax.servlet.jsp.jspPageContext"
StringREQUEST="javax.servlet.jsp.jspRequest"
StringRESPONSE="javax.servlet.jsp.jspResponse"
StringCONFIG="javax.servlet.jsp.jspConfig"
StringSESSION="javax.servlet.jsp.jspSession"
StringOUT="javax.servlet.jsp.jspOut"
StringAPPLICATION="javax.servlet.jsp.jspApplication"
StringEXCEPTION="javax.servlet.jsp.jspException"

⑥application-javax.servlet.ServletContext
application次要服从在于获得或变动Servlet的设定。
办法:
1.ObjectgetAttribute(Stringname);
前往由name指定的application属性。
2.EnumerationgetAttributes();
前往一切的application属性。
3.ServletContextgetContext(Stringuripath);
获得以后使用的ServletContext对象。
4.StringgetInitParameter(Stringname);
前往由name指定的application属性的初始值。
5.EnumerationgetInitParameters();
前往一切的application属性的初始值的汇合。
6.intgetMajorVersion();
前往servlet容器撑持的ServletAPI的版本号。
7.StringgetMimeType(Stringfile);
前往指定文件的范例,未知范例前往null。通常是"text/html"和"image/gif"。
8.intgetMinorVersion();
前往servlet容器撑持的ServletAPI的副版本号。
9.StringgetRealPath(Stringpath);
前往给定假造路径所对应物理路径。
10.RequestDispatchergetNamedDispatcher(Stringname);
为指命名字的Servlet对象前往一个RequestDispatcher对象的实例。
11.RequestDispatchergetRequestDispatcher(Stringpath);
前往一个RequestDispatcher对象的实例。
12.URLgetResource(Stringpath);
前往指定的资本路径对应的一个URL对象实例,参数要以"/"开首。
13.InputStreamgetResourceAsStream(Stringpath);
前往一个由path指定地位的资本的InputStream对象实例。
14.SetgetResourcePaths(Stringpath);
前往存储在web-app中一切资本路径的汇合。
15.StringgetServerInfo();
获得使用服务器版本信息。
16.ServletgetServlet(Stringname);
在ServletContext中检索指命名称的servlet。
17.EnumerationgetServlets();
前往ServletContext中一切servlet的汇合。
18.StringgetServletContextName();
前往本web使用的称号。
19.EnumerationgetServletContextNames();
前往ServletContext中一切servlet的称号汇合。
20.voidlog(Exceptionex,Stringmsg);
voidlog(Stringmsg,Throwablet);
voidlog(Stringmsg);
把指定的信息写进servletlog文件。
21.voidremoveAttribute(Stringname);
移除指命名称的application属性。
22.voidsetAttribute(Stringname,Objectvalue);
设定指定的application属性的值。

⑦config-javax.servlet.ServletConfig
config对象用来寄存Servlet初始的数据布局。
办法:
1.StringgetInitParameter(Stringname);
前往称号为name的促使参数的值。
2.EnumerationgetInitParameters();
前往这个JSP一切的促使参数的称号汇合。
3.ServletContextgetContext();
前往实行者的servlet高低文。
4.StringgetServletName();
前往servlet的称号。

⑧exception-java.lang.Throwable
毛病对象,只要在JSP页面的page指令中指定isErrorPage="true"后,才能够在本页面利用exception对象。
办法:
1.ThrowablefillInStackTrace();
将以后stack信息纪录到exception对象中。
2.StringgetLocalizedMessage();
获得当地语系的毛病提醒信息。
3.StringgetMessage()
获得毛病提醒信息。
4.StackTrackElement[]getStackTrace();
前往对象中纪录的callstacktrack信息。
5.ThrowableinitCause(Throwablecause);
将别的一个非常对象嵌套进以后非常对象中。

6.ThrowablegetCause();
掏出嵌套在以后非常对象中的非常。
7.voidprintStackTrace();
voidprintStackTrace(printStreams);
voidprintStackTrace(printWriters);
打印出Throwable及其callstacktrace信息。
8.voidsetStackTrace(StackTraceElement[]stackTrace)
设置对象的callstacktrace信息。

⑨page-javax.servlet.jsp.HttpJspPage
page对象代表JSP对象自己,大概说代表编译后的servlet对象,
能够用((javax.servlet.jsp.HttpJspPage)page)来取用它的办法和属性。

学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解
爱飞 该用户已被删除
沙发
发表于 2015-1-20 15:28:31 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
海妖 该用户已被删除
板凳
发表于 2015-1-28 05:49:27 来自手机 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
再现理想 该用户已被删除
地板
发表于 2015-2-2 21:55:04 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
老尸 该用户已被删除
5#
发表于 2015-2-6 15:55:40 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
小妖女 该用户已被删除
6#
发表于 2015-2-7 11:15:48 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
深爱那片海 该用户已被删除
7#
发表于 2015-2-21 19:42:00 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-6 21:11:28 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
只想知道 该用户已被删除
9#
发表于 2015-3-13 09:09:43 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
兰色精灵 该用户已被删除
10#
发表于 2015-3-20 17:49:20 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-27 13:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表