获取请求参数
获取以Get方式提交的请求的请求参数
String username = request.getParameter("username");
String password = request.getParameter("password");
String gender = request.getParameter("gender");
String city = request.getParameter("city");
获取以Post方式提交的请求的请求参数
String username = request.getParameter("username");
String password = request.getParameter("password");
String gender = request.getParameter("gender");
String city = request.getParameter("city");
请求参数中文乱码问题
解决以GET方式提交请求时请求参数的中文乱码问题
request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
文件上传
文件上传通常指的是用户在浏览器中通过表单form将文件上传至服务端。
但是请注意该表单必须满足如下三个条件:
-
form的method必须是post
-
form的enctype必须是multipart/form-data
-
form中利用input type=”file”提供上传的入口
在此,我们介绍文件上传的两种方式。
利用Servlet3.0上传文件
请求重定向概述
有时候,客户端发起请求;但是,服务端Servlet可能无法完成全部工作。这时, 我们需要使用请求重定向来完成后续的工作。所谓请求重定向,指的是Web服务器接收到客户端的请求后让客户端重新发送指向其它资源的请求。
为了实现请求重定向,在HttpServletResponse接口中定义了sendRedirect( ) 方法。该方法用于生成302响应码和Location响应头,从而通知客户端重新访问 Location响应头中指定的URL。
if(username.equals("lucy")&&password.equals("123456")) {
//request.getContextPath()为:/Redirect01
System.out.println(request.getContextPath());
//登录成功则重定向到welcome页面
response.sendRedirect(request.getContextPath()+"/welcome.html");
}else {
//登录失败则重定向到login页面
response.sendRedirect(request.getContextPath()+"/login.html");
}
}
概述 请求转发
假若客户端浏览器发起的请求很复杂,单独一个Servlet不能够完成业务处理需要其它Servlet协同。此时,需在当前Servlet中调用其它Servlet的service( )方法协助处理。但是,自Servlet 2.1开始不能在Servlet中调用其它Servlet的service( )方法。在此情况下,我们可使用请求分发器RequestDispatcher实现请求转发和请求包含。
RequestDispatcher接口
在此,介绍RequestDispatcher的获取方式及其核心方法。
public RequestDispatcher getRequestDispatcher(String path)
Cookie概述
十多年前,超市的二楼有一家运动服装专卖店。为了能够享受购物优惠,我在专卖店办了一张折叠式的会员卡(类似于纸质的存折),卡上标注了我的姓名、手机号、家庭住址、消费总额、积分额度等信息。每次去店里买东西,店员都会依据我的消费记录计算优惠额度并累加本次所得积分。类似地,在客户端与Web服务器通信的过程中Cookie的功能就类似于这种折叠式的会员卡。当浏览器访问Web服务器时,服务器可将信息存放在Cookie中再返回至客户端。当浏览器再次访问服务器时都会在请求消息头中将Cookie携带至服务端。
Cookie工作原理
-
当客户端浏览器第一次访问服务器时不存在Cookie,服务器生成Cookie并返回至客户端。服务端向客户端响应消息时可在HTTP响应头字段中增加Set-Cookie响应头字段表示返回至客户端的Cookie;该字段语法如下:
Set-Cookie:key=value ; Path=Cookie的有效路径;
获取Cookie
可通过HttpServletRequest的getCookies( )方法获取客户端携带至服务端的Cookie;方法如下:
public Cookie[] getCookies( )
构造Cookie
语法如下:
public Cookie(String name, String value)
name表示Cookie的名字,value表示对应的值
响应Cookie
可通过HttpServletResponse的addCookie( )方法将Cookie响应至客户端浏览器。
public void addCookie(Cookie cookie)

浙公网安备 33010602011771号