2019独角兽企业重金招聘Python工程师标准>>>
1.内置对象简介:JSP内置对象是WEB容器创建的一组对象,不使用new关键就可以是用的对象。
<%
out.println(123);
%>
2.九大内置对象:
- out
- request
- response
- session
- application
- Page
- pageContext
- exception
- config
3.WEB程序请求响应模式
- request: 用户发送请求。
- response: 服务器给用户响应。
4.out对象:是JspWriter类的实力,是向客户端输出内容常用的对象。
常用方法如下:
- void println() 向客户端打印字符串。
- void clear() 清除缓冲区内容,若在flush之后调用会抛出异常。
- void clearBuffer() 清除缓冲区内容,若在flush之后用不会抛出异常。
- void flush() 讲缓冲区内容输出到客户端。
- int getBufferSize()返回缓冲区字节数的大小。不设缓冲区时为0.
- int getRemaining 返回缓冲区剩余可用。
- boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常。
- void close() 关闭输出流。
5.表单两种提交方式
get:
- 一明文方式通过URL提交数据,数据在URL中可以看到。
- 提交的数据不超过2KB。
- 安全性低但效率比post方式高。
- 适合提交数据量不大,安全行不高的数据,例:搜索,查询等功能。
post:
- 讲用户信息封装在HTML HEADER内。
- 适合提交数据量大,安全性高的用户信息。例:注册,修改,上传等功能。
6.request对象
- 客户端的请求被封装在request对象中,通过它了解客户的需求,然后做出响应。
- 是HttpServletRequest类的实力。
- request对象有请求域,即完成客户端的请求之前,该对象一直有效。
常用方法:
String getParameter(String name) 返回name指定参数的参数值。
String[] getParameterValues(String name) 返回包含name的所有值的数组。
void setAttribute(String,Object) 存储此请求中的属性。
object getAttribute(String name) 返回指定属性的属性值
String getContentType() 得到请求体的MIME类型。
String getProtocol() 返回请求用的协议类型及版本号。
String getServerName() 返回接受请求的服务器主机名。
int getServerPort():返回服务器接受此请求用的端口号。
String getCharacterEncoding():返回字符编码方式。
int getContentLength():返回请求体的长度(以字节数)。
String getRemoteAddr():返回发送此请求的客户端IP地址。
String getRealPath(String path):返回一虚拟路径的真实路径。
Stirng request.getContextPath():返回上下文路径。
reg.jsp
[html] view plain copy
print?
- <body>
- <h2>用户注册</h2><br>
- <form name="2" action="request.jsp" method="post">
- <table>
- <tr>
- <td>用户名</td>
- <td ><input type="text" name="username"/></td>
- </tr>
- <tr>
- <td>密码</td>
- <td ><input type="password" name="password"/></td>
- </tr>
- <tr>
- <td>爱好</td>
- <td>
- <input type="checkbox" name="fa" value="read">读书
- <input type="checkbox" name="fa" value="music">音乐
- <input type="checkbox" name="fa" value="movie">电影
- <input type="checkbox" name="fa" value="internet">上网
- </td>
- </tr>
- <tr>
- <td colspan ="2"><input type="submit" value="提交"/></td>
- </tr>
- </table>
- </form>
- <a href=<span style="color:#cc0000;">"request.jsp?username=中文"</span>>中文传参链接</a>
- </body>
request.jsp
[html] view plain copy
print?
- <body>
- 注册成功. <br>
- <%
- request.setCharacterEncoding("utf-8");
- %>
- 用户名:<%= request.getParameter("username") %><br>
- 爱好:<%
- if(request.getParameterValues("fa")!=null){
- String[] ff= request.getParameterValues("fa") ;
- for(int i=0;i<ff.length;i++)
- {
- out.println(ff[i]+" "+" "+" ");
- }
- }
- %>
- </body>
7.中文乱码相关:
http://blog.csdn.net/qq276878300/article/details/52423478
8.response对象:
- 包含响应客户请求的有关信息,
- HttpServletResponse类的实例。
- 具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其他页面的response对象对当前页面无效。
常用方法如下:
- String getCharacterEncoding():返回响应的是何种字符编码。
- void setContentType(String type):设置响应的MIME类型。
- PrintWriter getWriter():返回可以想客户端输出字符的一个对象(注意比较PrintWriter与内置out对象的区别)
- sendRedirect(java.lang.String location):重新定向客户端请求。
9.请求转发-请求重定向:
请求重定向:
- 客户端行为。
- response.sendRedirect()
- 等同于两次请求,前一次请求对象不会保存。
- 地址栏的URL地址会改变。
请求转发:
- 服务器行为。
- request.getRequestDispatcher().forward(req,resp);
- 是一次请求,转发后请求对象会保存,
- 地址栏的URL地址不会改变。
10.