1、out对象
<h2>out对象各方法示例:</h2>
<%
out.println("<h3>静夜思</h3>");
out.println("床前明月光<br>");
out.println("疑是地上霜<br>");
out.flush();
//out.clear(); //在flush之后用clear()方法,会抛出异常
out.clearBuffer(); //不会抛出异常
out.println("举头望明月<br>");
out.println("低头思故乡<br>");
%>
缓冲区大小:<%=out.getBufferSize() %>byte<br>
缓冲区剩余:<%=out.getRemaining() %>byte<br>
是否自动清空缓冲区:<%=out.isAutoFlush() %><br>
运行截图
2、request对象
requestDemo.jsp
<body>
<h1>request对象测试</h1>
<h2>构建简单测试页面</h2>
<form name="requestForm" action="requestDemoHandle.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>爱好:</td>
<td><input type="checkbox" name="favourite" value="read"/>读书
<input type="checkbox" name="favourite" value="sing"/>唱歌
<input type="checkbox" name="favourite" value="swimming"/>游泳
<input type="checkbox" name="favourite" value="thinking"/>思考
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
<!-- 用URL传递参数,仍然会中文乱码,request.setCharacterEncoding("UTF-8");就解决不了问题了 -->
<a href="requestDemoHandle.jsp?username=lisi">URL传递参数</a>
</body>
requestDemoHandle.jsp
<body>
<%
request.setCharacterEncoding("UTF-8"); //解决中文乱码问题
%>
用户名获取:<%=request.getParameter("username") %>
<br>
爱好获取:
<%
if(request.getParameterValues("favourite")!=null){
String[] favourites=request.getParameterValues("favourite");
for(int i=0;i<favourites.length;i++){
out.println(favourites[i]+" ");
}
}
%>
</body>
解决URL传递参数的中文乱码问题:
Tomcat安装目录—>conf—>server.xml打开
其他方法:
<%
request.setAttribute("password", "123456"); //先设置密码属性
%>
密码:<%=request.getAttribute("password") %><br> //输出密码
MIME类型:<%=request.getContentType() %><br>
协议类型及版本号:<%=request.getProtocol() %><br>
服务器主机名称:<%=request.getServerName() %><br>
端口号:<%=request.getServerPort() %><br>
字符集:<%=request.getCharacterEncoding() %><br>
客户端Ip地址:<%=request.getRemoteAddr() %><br>
真实路径:<%=request.getRealPath("requestDemo.jsp") %><br>
上下文路径: <%=request.getContextPath() %><br>
3、response对象(很少使用)
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%>
<%
response.setContentType("text/html;charset=utf-8");//设置响应的MIME类型
out.println("<h1>response对象</h1>");
out.println("<hr>");
out.println("字符集:"+response.getCharacterEncoding()+"<br>");
PrintWriter outer=response.getWriter(); //获得输出流对象,需要导入java.io.*包
outer.println("outer输出!<br>");
response.sendRedirect("requestDemo.jsp"); //请求重定向,执行response.jsp时,会跳转到request.jsp页面
%>
4、请求重定向与请求转发的区别
response.sendRedirect("requestDemo.jsp"); //请求重定向方法
request.getRequestDispatcher("requestDemoHandle.jsp").forward(request, response);//请求转发代码
请求重定向:相当于让客户端发出了两次请求,第一次去了response.jsp,结果不行。又让客户端发出第二次请求,直接去了request.jsp
而且,第一次请求的信息,第二次请求是不知道的。
请求转发:response.jsp把后续工作做了,而且地址栏不变,是服务器端行为,实质是一次请求,信息会保留
5、session对象
session保存在服务器当中,一个用户对应一个session
//sessionPage1.jsp
<body>
<hr>
<%
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date =new Date();
session.setAttribute("userName", "Simon_Deng");
session.setAttribute("password", "123456");
session.setAttribute("age", 21);
%>
创建时间:
<% out.println(sdf.format(date));
%><br>
已有的属性:<%
String[] values=session.getValueNames();
for(int i=0;i<values.length;i++){
out.println(values[i]+" ");
}
%> <br>
userName值:<%=session.getAttribute("userName") %><br>
session ID:<%=session.getId() %><br>
<a href="sessionPage2.jsp">sessionPage2页面</a>
</body>
//sessionPage2.jsp
<body>
<hr>
userName值:<%=session.getAttribute("userName") %>
session ID:<%=session.getId() %>
</body>
sessionPage1.jsp运行界面
sessionPage2.jsp
网友评论