一、客户端请求参数的编码:浏览器当前是什么编码就以什么编码传递数据
通知服务器请求参数使用的编码
request.setCharacterEncoding("UTF-8")只对Post有效
方式一、
针对get方式的请求中文参数,手工编码
String desc = request.getParameter("desc");
get方式服务器都用ISO-8859-1去解码
new String(desc.getBytes("ISO-8859-1"),"UTF-8");
需要对每一个请求参数都进行编码
方式二、
解决get方式请求参数的中文编码,可以修改Tomcat的配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
不建议使用,依赖服务器
二、ServletRequest对象也是一个域对象,即其内部维护了一个Map对象
三、转发
由A转向B,A称之为源资源,B称之为目标资源
源资源和目标资源共享请求和响应对象。
源资源转发前会清空响应对象缓存中的内容。
转发前,不要刷新或关闭源资源的输出流。
即:源资源的所有输出都无效。
四、RequestDispatcher接口
1、作用:
a、实现转发
forward(ServletRequest request, ServletResponse response))
b、实现包含
include(ServletRequest request, ServletResponse response)
A要包含B,A称之为源资源,B称之为目标资源
特点:A和B的所有输出会合并,由A来显示
A和B共享request和response对象
目标组件设置的所有响应头无效
2、该对象实例的获取
a、SerlvetRequest.getRequestDispatcher(String path):
参数path,路径的写法上
path可以使用绝对路径,也可以使用相对路径
绝对路径以"/"开头,代表当前web应用
b、SerlvetContext.getRequestDispatcher(String path):
参数path,必须以"/"开头,即只能使用绝对路径
五、各种url地址的写法
5.1相对路径
不以“/”开头
5.2绝对路径
以"/"开头
开发中建议使用绝对路径
问题:绝对路径写法中,何时加项目名称,何时不加项目名称
路径如果是给浏览器用的,需要加项目名称;服务器用的,不需要加项目名称
/day06是应用名称
request.getReqeustDispatcher(String path): 不需要加 / 代表当前应用 /servlet/ServletDemo1
ServletContext.getRealPath(String path): 不需要 / 代表当前应用
form表单的action:要加。
HttpServletResponse.sendRedirect(String path):需要
href 需要
img src 需要
六、会话技术
1、Cookie:客户端技术
Cookie是服务器Servlet向客户端传递的一段小数据。
保存客户端。再访问其他服务器资源时会从客户端传递给服务端。
cookie属于某个特定客户端的。
http://www.163.com/app1/username=admin
Cookie的属性:
name:Cookie的名称。必须的
value:单一的值。必须的
comment:可选的。注释
path:可选的。路径 /app1
/app1
访问的资源路径是http://www.163.com/app2/1.html 不会带cookie过来
访问的资源路径是http://www.163.com/app1/servlet/s/s 会带cookie过来
默认值:/day06/servlet
访问的地址是:http://localhost:8080/day06/1.jsp
domain:可选的。域名 itheima.com http://www.163.com
如果访问的地址是http://www.itcast.cn/myapp/servlet1
访问的地址是http://www.163.com/app1
默认值:当前写cookie的网站域名
age:可选的。生命值
默认生命值是浏览器进程。
version:可选的。版本号
向客户端写一个Cookie:HttpServletResponse.addCookie(Cookie c)
相当于向客户端写了一个响应头Set-Cookie
服务器通过HttpServletRequest.getCookies() 获取客户端提交过来的Cookie。
相关信息:浏览器对一个网站最多能存20个cookie。
浏览器最多能存300个Cookie。每一个Cookie不能超过4KB
通知服务器请求参数使用的编码
request.setCharacterEncoding("UTF-8")只对Post有效
方式一、
针对get方式的请求中文参数,手工编码
String desc = request.getParameter("desc");
get方式服务器都用ISO-8859-1去解码
new String(desc.getBytes("ISO-8859-1"),"UTF-8");
需要对每一个请求参数都进行编码
方式二、
解决get方式请求参数的中文编码,可以修改Tomcat的配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
不建议使用,依赖服务器
二、ServletRequest对象也是一个域对象,即其内部维护了一个Map对象
三、转发
由A转向B,A称之为源资源,B称之为目标资源
源资源和目标资源共享请求和响应对象。
源资源转发前会清空响应对象缓存中的内容。
转发前,不要刷新或关闭源资源的输出流。
即:源资源的所有输出都无效。
四、RequestDispatcher接口
1、作用:
a、实现转发
forward(ServletRequest request, ServletResponse response))
b、实现包含
include(ServletRequest request, ServletResponse response)
A要包含B,A称之为源资源,B称之为目标资源
特点:A和B的所有输出会合并,由A来显示
A和B共享request和response对象
目标组件设置的所有响应头无效
2、该对象实例的获取
a、SerlvetRequest.getRequestDispatcher(String path):
参数path,路径的写法上
path可以使用绝对路径,也可以使用相对路径
绝对路径以"/"开头,代表当前web应用
b、SerlvetContext.getRequestDispatcher(String path):
参数path,必须以"/"开头,即只能使用绝对路径
五、各种url地址的写法
5.1相对路径
不以“/”开头
5.2绝对路径
以"/"开头
开发中建议使用绝对路径
问题:绝对路径写法中,何时加项目名称,何时不加项目名称
路径如果是给浏览器用的,需要加项目名称;服务器用的,不需要加项目名称
/day06是应用名称
request.getReqeustDispatcher(String path): 不需要加 / 代表当前应用 /servlet/ServletDemo1
ServletContext.getRealPath(String path): 不需要 / 代表当前应用
form表单的action:要加。
HttpServletResponse.sendRedirect(String path):需要
href 需要
img src 需要
六、会话技术
1、Cookie:客户端技术
Cookie是服务器Servlet向客户端传递的一段小数据。
保存客户端。再访问其他服务器资源时会从客户端传递给服务端。
cookie属于某个特定客户端的。
http://www.163.com/app1/username=admin
Cookie的属性:
name:Cookie的名称。必须的
value:单一的值。必须的
comment:可选的。注释
path:可选的。路径 /app1
/app1
访问的资源路径是http://www.163.com/app2/1.html 不会带cookie过来
访问的资源路径是http://www.163.com/app1/servlet/s/s 会带cookie过来
默认值:/day06/servlet
访问的地址是:http://localhost:8080/day06/1.jsp
domain:可选的。域名 itheima.com http://www.163.com
如果访问的地址是http://www.itcast.cn/myapp/servlet1
访问的地址是http://www.163.com/app1
默认值:当前写cookie的网站域名
age:可选的。生命值
默认生命值是浏览器进程。
version:可选的。版本号
向客户端写一个Cookie:HttpServletResponse.addCookie(Cookie c)
相当于向客户端写了一个响应头Set-Cookie
服务器通过HttpServletRequest.getCookies() 获取客户端提交过来的Cookie。
相关信息:浏览器对一个网站最多能存20个cookie。
浏览器最多能存300个Cookie。每一个Cookie不能超过4KB