JSP内置对象
JSP内置对象:是web容器创建的一组对象,不用new
四种作用域范围
out
request/response
session
application
其他(page、pageContext、exception、config)
请求与响应模式(request/response)
http请求/http响应
例如:登录响应
1. 点击登录->发送请求->封装用户名和密码
2. 接受请求,判断封装的内容,然后给客户端发送响应页面
login.jsp->doLogin.jsp->loginSuccess.jsp….
缓冲区Buffer:保存临时数据(第一次访问或者是已经访问过了)
表单的提交方式
method get/post
get -> 搜索/查询
post -> 注册/修改/上传
request
request对象用来封装客户端的请求
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做到响应。它是HttpServletRequest类的实例
request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
常用方法:
1. String getParameter(String name)
//返回name指定参数的参数值
2. String [] getParameterValues(String name)
//返回包含参数name的所有值的数组
3. void setAtrribute(String,Objet)
//存储此请求中的属性
4. object getAttribute(String name)
//返回指定属性的属性值
5. String getContentType()
//得到请求体的MIME类型
6. String getProtocol()
//返回请求用的协议类型及版本号
7. String getServerName()
//返回接受请求的服务器主机名
8. int getServerPort()
//返回服务器接受此请求所用的端口号
9. String getCharacterEncoding()
//返回字符编码方式
10. void setCharacterEncoding()
//设置请求的字符编码方式
11. int getContentLength()
//返回请求体的长度(byte)
12. String getRemoteAddr()
//返回发送此请求的客户端IP地址
13. String getRealPath(String path)
//返回一虚拟路径的真实路径
14. String request.getContextPath()
//返回上下文路径
getParameter(String name)
被请求页面可以使用request对象来获取信息,请求信息(parameter)
利用 getParameter(String name)
接收表单中的信息
<%=request.getParameter("username) "%>
接收表单中name="username"
的值
1. 解决中文乱码
request.setCharacterEncoding("UTF-8");
UTF-8
->是传过来页面的编码
2. 利用URL传参数
<a href="request.jsp?username="lishi"">点击</a>
如何处理URL传参乱码
在Tomcat的文件夹中-> conf 文件夹 -> server.xml
在server.xml 中找到
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
然后在其中加入URIEncoding="UTF-8"
就可以了。
注意要重启Tomcat服务器
setAtrribute(String,Objet)
<%
request.setAtrribute("password","123456")
%>
<p>密码:<%=request.getAtrribute("password")%></p>
MIME类型
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
其他
<p>获得MIME类型:<%=request.getContentType() %></p>
<p>协议类型及版本号:<%=request.getProtocol() %></p>
<p>服务器的主机名:<%=request.getServerName() %></p>
<p>服务器的端口号:<%=request.getServerPort() %></p>
<p>获得请求文件的长度(字节):<%=request.getContentLength() %></p>
<p>请求客户端的IP地址:<%=request.getRemoteAddr() %></p>
<p>请求的物理路径:<%=request.getRealPath("doRegister.jsp") %></p>
<p>请求的上下文路径:<%=request.getContextPath() %></p>