test.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<%@ page contentType="text/html;charset=UTF-8" %>
<%

out.print("将该文件编译,作为一个servlet");

out.println(this.getClass().getName() + "<br>"); // org.apache.jsp.test_jsp (文件名是test.jsp)

out.println(request.getClass().getName() + "<br>"); // org.apache.catalina.connector.RequestFacade 跟 servlet中的一样(这是org.apache.catalina.connector.Request的门面,org.apache.coyote.Request的wrapper)
out.println(response.getClass().getName() + "<br>"); // org.apache.catalina.connector.ResponseFacade 跟 servlet中的一样

// 注意区分这三种输出方式
out.println(response.getWriter().getClass().getName() + "<br>"); // org.apache.catalina.connector.CoyoteWriter
out.println(out.getClass().getName() + "<br>"); // org.apache.jasper.runtime.JspWriterImpl
response.getWriter().println("print from response.getWriter()" + "<br>");
//response.getWriter().close();
// response.getOutputStream().write("print from response.getOutputStream() <br>".getBytes()); // 这个输出会覆盖掉其他的输出,而且不能喝getWriter()同时出现
//

out.println(request.getSession().getClass().getName() + "<br>");
out.println(session.getClass().getName() + "<br>"); // org.apache.catalina.session.StandardSessionFacade =request.getSession()

out.println(request.getServletContext().getClass().getName() + "<br>");
out.println(application.getClass().getName() + "<br>"); // org.apache.catalina.core.ApplicationContextFacade =request.getServletContext()



out.println(config.getClass().getName() + "<br>"); // org.apache.catalina.core.StandardWrapperFacade
out.println(pageContext.getClass().getName() + "<br>"); // org.apache.jasper.runtime.PageContextImpl
out.println(page.getClass().getName() + "<br>"); // org.apache.jsp.test_jsp
//out.println(Exception.getClass().getName() + "<br>");



out.println("<br>methods:<br>");
for(java.lang.reflect.Method m:this.getClass().getMethods()) {
out.println(m.getName() + "<br>");
}
out.println("<br>fields:<br>");
for(java.lang.reflect.Field f:this.getClass().getFields()) {
out.println(f.getName() + "<br>");
}

out.println("<br>DeclaredFields:<br>");
for(java.lang.reflect.Field f:this.getClass().getDeclaredFields()) {
out.println(f.getName() + "<br>");
}


String a="this is a string variable";
for(int i=0;i<10;i++) {
out.println(i+" in loop\n\n");
}

%>
Date:<%=new java.util.Date()%>

dd