JavaWeb 后端 <三> 之 Response Request 学习笔记
1. 响应对象 Response(重点:HTTP协议响应部分)
查看aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIEAAAAWCAIAAABooWj8AAAEOElEQVRoge2WTU8bRxjH/1/IiOz2sh+iEaClFaTXPbbFQZC00sJIPfTUUYLaqmqVkqxVVU1FiTqHXtckBiyLFVaKmAiD3+JAIC807aFNZ+UeZt+89hpcYVlIHv0Ozz7zf17Wz86uIYZr0Av/vP33t0L9i5XfTcsZMhDwS66yulEvH/998pc7ZCDgsx+Lz16LyktROkmEEETpohzyP4BpOcd/unvHIglC0GyG2LZNCLroh/SKN4Mnz0VHYgOIjIEkhQzpFZiWc/zGfXIk2okOQL6FgksAHUMuAvY+jO/6ldxnk16B9unmmZ2cqbkAYFrO8zfu7pHYPRKkdQEtDz4hxLbtYAYypA+w92B826/kPpv0CrRPNs/s5EzNBQDTcg7/cHcOxc6hIIQ0/WXbNvxFCKIjkTOQIX2ATcL4JnGX33wHkz/0qXR7J9rN9b4Xgmk5z07dxw3xuNEyg+gCWgYgxyND+gCbhPF14i6/oWIy06fS7Z1oN3J9LwTTchqnbrEhip1mIB//6JdADkDqYzCi+SfH+MpzMt13jRJebIhig8+r0DNMB6Aauhr4BSMaVMoaTE8MDy+hUtbeQ46O+vt6RsTLRf05OhpWCWgvp80Tw3N9wHyNNp/xCukZUcwYrTfYMzAt5+mpu10X2/VwBtGvQrPZDGYgByDFcR7SERhftjiZDm3uobT5nArd8gwESsuASlmLgOnebmK4bnVqoM7nrslUYtsy/BJt5aTduVuMEB7z4Brz7042I58eyrxsUUEs4XmBaTn11+5WTWzVEt9F8nsQLClug00AgDa75nvu+U+Qv0YI36rxWRUT96JR2uya2FqjIzCWPI+xdK5wWbGl6IPIWVyqibZy/mVYLtKtSh/E7yjIzGdVaUedSXZvwLSc2iu3UBWFauI5aDabAKTmLPh1FYB2PSsKdw2odLWTYOJu6Lk9jdQiX13UUou8UBWFKpuAcbt63vCQLE0BXpIsTckkcb1/GQp8OpRjE/JGvEBpR51Jdm/AtJzKKzdfEflKt3MQ/Y8kxXGyNL0sbZ5WML4s8hU2DmmIfEXcmjZuteyGgSnFGFe0dFZ62Dik8nzhAcsGFLpSEfmKWFnQgFCPaZaP+bM0FRqydLQcSy/wfIWNI+iKp5VAFm21o90bMC2n/NLdKIuNcuI5iP0rleJ26JQ/qCnmOW2a8n1jy1LGZ5TADj1hSJmNwaCJ4eL+ggYACr0fb4DPKJ44NWWkvCR8RsHYVPBai2Y2qGdoM3asnJSxsWCrzGcUaUedSXZvwLSc8gs3dyByB13+m7bMQIovCfxjBVe/H3gb3YBpOQcv3Ef74tH+ed9FUnxJ4B8puHpn4G10A6bl7J+4ayWxVhIk+mO3Lam5bPAPFbx7Z+BtdAOm5ZRO3GxJDBkU+Pyn4k7j7fqByO4NGQz4daP68/rT3SOxd+wOGQj/AfoJuagCO7t8AAAAAElFTkSuQmCC" alt="" /> HttpServletResponse
aaarticlea/png;base64,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" alt="" />
set是 有这个头 修改 没有添加一个新的 和 add 有点小区别
aaarticlea/png;base64,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" alt="" />
aaarticlea/png;base64,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" alt="" />
案例:
1.1 字节流向客户端输出中文数据 ServletOutputStream
//字节流向客户端输出中文数据
public class ResponseDemo1 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
test2(response);
} //解决方案一:更改浏览器的码表(不建议)
//解决方案二(不建议):向客户端输出一个<meta>标签,模拟了响应消息头:<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>
//out.write("<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>".getBytes());
//解决方案三(建议):向客户端输出响应消息头:response.setHeader("Content-Type", "text/html;charset=UTF-8");
//解决方案四(建议):向客户端输出响应消息头response.setContentType("text/html;charset=UTF-8"); //字节流输出数据查UTF-8
private void test2(HttpServletResponse response) throws IOException {
String data = "不见了远处的青山";
response.setContentType("text/html;charset=UTF-8");
ServletOutputStream out = response.getOutputStream();
out.write(data.getBytes("UTF-8"));//默认情况下:浏览器是乱码的(他默认查GBK)
} //字节流输出数据查本地码表
private void test1(HttpServletResponse response) throws IOException {
String data = "不见了远处的青山";
ServletOutputStream out = response.getOutputStream();
out.write(data.getBytes());//String: getBytes()查本地默认的码表GBK getBytes(String charset)查指定码表
}
1.2 字符流输出中文数据 PrintWriter
//字符流输出中文数据
public class ResponseDemo2 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String data = "幸福是什么呢";
//改变字符流查的码表,还能告知客户端用UTF-8进行解码
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//HttpServletResponse的实例由Tomcat服务器提供,默认查ISO-8859-1的。
//Tomcat8.X ,默认编码就变为了UTF-8 out.write(data);
} private void test1(HttpServletResponse response) throws IOException {
String data = "幸福是什么";
//改变字符流查的码表
response.setCharacterEncoding("UTF-8");
//告知客户端用UTF-8进行解码
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();//HttpServletResponse的实例由Tomcat服务器提供,默认查ISO-8859-1的。
//Tomcat8.X ,默认编码就变为了UTF-8
out.write(data);
}
1.3 输出随机验证码图片:CAPTCHA图像
//输出随机验证码图片:CAPTCHA图像
public class ResponseDemo3 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int width = 120;
int height = 25;
//创建一副内存图像
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//得到画笔
Graphics g = image.getGraphics();
//开始画
//边线
g.setColor(Color.BLUE);
g.drawRect(0, 0, width, height);
//填充背景色
g.setColor(Color.YELLOW);
g.fillRect(1, 1, width-2, height-2);
//话干扰线
g.setColor(Color.GRAY); Random r = new Random();
for(int i=0;i<9;i++)
g.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height));
//验证码
g.setColor(Color.RED);
g.setFont(new Font("宋体", Font.ITALIC|Font.BOLD, 19));
// String base = "\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a\u5730\u5230\u5927\u91cc\u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c\u90a3\u8981\u4e0b\u770b\u5929\u65f6\u8fc7\u51fa\u5c0f\u4e48\u8d77\u4f60\u90fd\u628a\u597d\u8fd8\u591a\u6ca1\u4e3a\u53c8\u53ef\u5bb6\u5b66\u53ea\u4ee5\u4e3b\u4f1a\u6837\u5e74\u60f3\u751f\u540c\u8001\u4e2d\u5341\u4ece\u81ea\u9762\u524d\u5934\u9053\u5b83\u540e\u7136\u8d70\u5f88\u50cf\u89c1\u4e24\u7528\u5979\u56fd\u52a8\u8fdb\u6210\u56de\u4ec0\u8fb9\u4f5c\u5bf9\u5f00\u800c\u5df1\u4e9b\u73b0\u5c71\u6c11\u5019\u7ecf\u53d1\u5de5\u5411\u4e8b\u547d\u7ed9\u957f\u6c34\u51e0\u4e49\u4e09\u58f0\u4e8e\u9ad8\u624b\u77e5\u7406\u773c\u5fd7\u70b9\u5fc3\u6218\u4e8c\u95ee\u4f46\u8eab\u65b9\u5b9e\u5403\u505a\u53eb\u5f53\u4f4f\u542c\u9769\u6253\u5462\u771f\u5168\u624d\u56db\u5df2\u6240\u654c\u4e4b\u6700\u5149\u4ea7\u60c5\u8def\u5206\u603b\u6761\u767d\u8bdd\u4e1c\u5e2d\u6b21\u4eb2\u5982\u88ab\u82b1\u53e3\u653e\u513f\u5e38\u6c14\u4e94\u7b2c\u4f7f\u5199\u519b\u5427\u6587\u8fd0\u518d\u679c\u600e\u5b9a\u8bb8\u5feb\u660e\u884c\u56e0\u522b\u98de\u5916\u6811\u7269\u6d3b\u90e8\u95e8\u65e0\u5f80\u8239\u671b\u65b0\u5e26\u961f\u5148\u529b\u5b8c\u5374\u7ad9\u4ee3\u5458\u673a\u66f4\u4e5d\u60a8\u6bcf\u98ce\u7ea7\u8ddf\u7b11\u554a\u5b69\u4e07\u5c11\u76f4\u610f\u591c\u6bd4\u9636\u8fde\u8f66\u91cd\u4fbf\u6597\u9a6c\u54ea\u5316\u592a\u6307\u53d8\u793e\u4f3c\u58eb\u8005\u5e72\u77f3\u6ee1\u65e5\u51b3\u767e\u539f\u62ff\u7fa4\u7a76\u5404\u516d\u672c\u601d\u89e3\u7acb\u6cb3\u6751\u516b\u96be\u65e9\u8bba\u5417\u6839\u5171\u8ba9\u76f8\u7814\u4eca\u5176\u4e66\u5750\u63a5\u5e94\u5173\u4fe1\u89c9\u6b65\u53cd\u5904\u8bb0\u5c06\u5343\u627e\u4e89\u9886\u6216\u5e08\u7ed3\u5757\u8dd1\u8c01\u8349\u8d8a\u5b57\u52a0\u811a\u7d27\u7231\u7b49\u4e60\u9635\u6015\u6708\u9752\u534a\u706b\u6cd5\u9898\u5efa\u8d76\u4f4d\u5531\u6d77\u4e03\u5973\u4efb\u4ef6\u611f\u51c6\u5f20\u56e2\u5c4b\u79bb\u8272\u8138\u7247\u79d1\u5012\u775b\u5229\u4e16\u521a\u4e14\u7531\u9001\u5207\u661f\u5bfc\u665a\u8868\u591f\u6574\u8ba4\u54cd\u96ea\u6d41\u672a\u573a\u8be5\u5e76\u5e95\u6df1\u523b\u5e73\u4f1f\u5fd9\u63d0\u786e\u8fd1\u4eae\u8f7b\u8bb2\u519c\u53e4\u9ed1\u544a\u754c\u62c9\u540d\u5440\u571f\u6e05\u9633\u7167\u529e\u53f2\u6539\u5386\u8f6c\u753b\u9020\u5634\u6b64\u6cbb\u5317\u5fc5\u670d\u96e8\u7a7f\u5185\u8bc6\u9a8c\u4f20\u4e1a\u83dc\u722c\u7761\u5174\u5f62\u91cf\u54b1\u89c2\u82e6\u4f53\u4f17\u901a\u51b2\u5408\u7834\u53cb\u5ea6\u672f\u996d\u516c\u65c1\u623f\u6781\u5357\u67aa\u8bfb\u6c99\u5c81\u7ebf\u91ce\u575a\u7a7a\u6536\u7b97\u81f3\u653f\u57ce\u52b3\u843d\u94b1\u7279\u56f4\u5f1f\u80dc\u6559\u70ed\u5c55\u5305\u6b4c\u7c7b\u6e10\u5f3a\u6570\u4e61\u547c\u6027\u97f3\u7b54\u54e5\u9645\u65e7\u795e\u5ea7\u7ae0\u5e2e\u5566\u53d7\u7cfb\u4ee4\u8df3\u975e\u4f55\u725b\u53d6\u5165\u5cb8\u6562\u6389\u5ffd\u79cd\u88c5\u9876\u6025\u6797\u505c\u606f\u53e5\u533a\u8863\u822c\u62a5\u53f6\u538b\u6162\u53d4\u80cc\u7ec6";
int x = 20;
for(int i=0;i<4;i++){
g.drawString(r.nextInt(10)+"", x,20 );
// g.drawString(base.charAt(r.nextInt(base.length()))+"", x, 20);
x+=18;
}
//输出
response.setHeader("Expires", "-1");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
ImageIO.write(image, "jpg", response.getOutputStream());
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
} }
html
<body>
<form action="" method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
<input type="text" size="3" name="code"/><img id="img1" src="/day08_00_response/servlet/ResponseDemo3"/><a href="javascript:change()">看不清</a><br/>
<input type="submit" value="登录"/>
</form>
<script type="text/javascript">
function change(){
var imgObj = document.getElementById("img1");
imgObj.src="/day08_00_response/servlet/ResponseDemo3?time="+new Date().getTime();//浏览器发现地址没有变化,根本不发请求
}
</script>
</body>
1.4 定时刷新 登陆跳转等待
//控制客户端定时刷新
public class ResponseDemo4 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
test2(response);
}
//定时刷新到别处
private void test2(HttpServletResponse response) throws IOException {
response.setContentType("text/htm;charset=UTF-8");
response.setHeader("Refresh", "2;URL=http://www.huyifan.cn");
response.getWriter().write("登录成功,2秒后跳转到主页");
}
//定时刷新自己
private void test1(HttpServletResponse response) throws IOException {
Random r = new Random();
// response.setHeader("Refresh", "1");
response.setIntHeader("Refresh", 1);
response.getWriter().write(r.nextInt()+"");
}
1.5 控制缓存时间
//控制缓存的时间
//静态资源需要控制缓存时间
//动态资源一般不要缓存
public class ResponseDemo5 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String data = "不见了远处的青山";
//让他缓存1个小时
response.setDateHeader("Expires", System.currentTimeMillis()+1*60*60*1000);
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(data);
}
1.6 请求重定向
//演示请求重定向:可以重定向到任何地址上
//发出2次请求
//地址栏会发生变化
public class ResponseDemo6 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.sendRedirect("http://www.huyifan.com");
}
//重定向到应用内的资源
private void test1(HttpServletResponse response) throws IOException {
// response.setStatus(302);
// response.setHeader("Location", "/day08_00_response/servlet/ResponseDemo7");
response.sendRedirect("/day08_00_response/servlet/ResponseDemo7");
}
public class ResponseDemo7 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().write("I am yif");
// response.getOutputStream().write("a".getBytes());
}
细节:
1、字节流和字符流互斥,只能用其中一个。
2、response的流用完之后自动关(服务器关)
2. 请求对象 Request(重点:HTTP协议请求部分)
2.1 HttpServletRequest对象的生命周期
诞生:请求来了
死亡:响应结束
2.2 也是一个域(范围)对象:请求范围
request
Map
setAttribute
getAttribute
removeAttribute‘
2.2 开发中尽量用绝对路径
绝对路径:要不要加应用名称
地址给服务器用的:/就代表当前应用
地址给客户端用的:/应用名demo
2.3 HttpServletRequest中的常用方法
public class RequestDemo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String method = request.getMethod();//请求方式
String uri = request.getRequestURI();// /day08_01_request/servlet/RequestDemo1
String url = request.getRequestURL().toString();// http://localhost:8080/day08_01_request/servlet/RequestDemo1
String protocal = request.getProtocol();//客户端使用的协议 String remoteIp = request.getRemoteAddr();//来访者的ip
int port = request.getRemotePort();// 随机的
String queryString = request.getQueryString();//GET方式:/day08_01_request/servlet/RequestDemo1?username=abc&password=123
//username=abc&password=123
System.out.println(method);
System.out.println(uri);
System.out.println(url);
System.out.println(protocal);
System.out.println(remoteIp);
System.out.println(port);
System.out.println(queryString);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
2.4 获取请求消息头
public class RequestDemo2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
test3(request);
}
//得到所有的消息头
private void test3(HttpServletRequest request) {
Enumeration<String> e = request.getHeaderNames();
while(e.hasMoreElements()){
String headerName = e.nextElement();//透明称
Enumeration<String> headerValues = request.getHeaders(headerName);
while(headerValues.hasMoreElements()){
System.out.println(headerName+":"+headerValues.nextElement());
}
} }
//http协议是允许头有重复的情况,多个重名的头
private void test2(HttpServletRequest request) {
Enumeration<String> e = request.getHeaders("Accept-Encoding");//得到的头值
while(e.hasMoreElements()){
String headerValue = e.nextElement();
System.out.println(headerValue);
} }
//得到指定请求消息头的值。如果没有该头,返回null
private void test1(HttpServletRequest request) {
String supportEncoding = request.getHeader("Accept-Encoding");
if(supportEncoding.contains("gzip")){
System.out.println("支持gzip压缩");
}else{
System.out.println("不支持gzip压缩");
}
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
2.5 获取请求参数
public class RequestDemo3 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
test8(request, response);
}
//终极解决方案:借助BeanUtil框架 jar包直接放在 web-inf 的 ;lib 文件夹里就ok
private void test8(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
User user = new User();
System.out.println("封装前:"+user);
try {
BeanUtils.populate(user, request.getParameterMap());
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("封装后:"+user);
}
//getParameterMap获取参数:封装到JavaBean中
private void test7(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//key:请求参数名 value:请求参数值数组
Map<String,String[]> map = request.getParameterMap();
User user = new User();
System.out.println("封装前:"+user);
for(Map.Entry<String, String[]> me:map.entrySet()){
String paramName = me.getKey();//参数名称
String paramValues[] = me.getValue();//参数值
try {
PropertyDescriptor pd = new PropertyDescriptor(paramName, User.class);
Method m = pd.getWriteMethod();//setter方法
if(paramValues.length>1){
m.invoke(user, (Object)paramValues);//参考补充视频:反射main方法
}else{
m.invoke(user, paramValues);
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
System.out.println("封装后:"+user);
}
//getParameterMap获取参数
private void test6(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//key:请求参数名 value:请求参数值数组
Map<String,String[]> map = request.getParameterMap();
for(Map.Entry<String, String[]> me:map.entrySet()){
System.out.println(me.getKey()+"="+Arrays.asList(me.getValue()));
}
} //把请求参数的值封装到JavaBean中
//约定优于编码:表单的输入域的name取值和JavaBean中的属性(getter和setter方法)保持一致
private void test5(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { Enumeration<String> e = request.getParameterNames();//参数名
User user = new User();
System.out.println("封装前:"+user);
while(e.hasMoreElements()){
String paramName = e.nextElement();//即是JavaBean中的属性名称
String paramValue = request.getParameter(paramName);
// setUsername(paramValue); setPassword(paramValue);
//JavaBean的内省
try {
PropertyDescriptor pd = new PropertyDescriptor(paramName, User.class);
Method m = pd.getWriteMethod();//setter方法
m.invoke(user, paramValue);
} catch (Exception e1) {
e1.printStackTrace();
}
}
System.out.println("封装后:"+user);
}
// private void test4(HttpServletRequest request, HttpServletResponse response)
// throws ServletException, IOException {
// User user = new User();
// System.out.println("封装前:"+user);
// String username = request.getParameter("username");
// String password = request.getParameter("password");
// String gender = request.getParameter("gender");
// user.setUsername(username);
// user.setPassword(password);
// user.setGender(gender);
// System.out.println("封装后:"+user);
// }
//以下内容只用简单的程序开发 //获取所有的请求参数名和值
private void test3(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Enumeration<String> e = request.getParameterNames();//参数名
while(e.hasMoreElements()){
String paramName = e.nextElement();
String values [] = request.getParameterValues(paramName);
System.out.println(paramName+"="+Arrays.asList(values));
}
}
//获取重名请求参数的值
private void test2(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");//不区分get还是post的
String passwords[] = request.getParameterValues("password");//获取重名的请求参数值
System.out.println(username+":"+Arrays.asList(passwords));
}
//获取单一的请求参数的值(用户所有的输入都是String)
private void test1(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");//不区分get还是post的
String password = request.getParameter("password");
System.out.println(username+":"+password);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
domain
public class User {
private String username;
private String password[];
private String gender;
public String getUsername() {//读属性,属性名称username
return username;
}
public void setUsername(String username) {//写属性,属性名username
this.username = username;
} public String[] getPassword() {
return password;
}
public void setPassword(String[] password) {
this.password = password;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "User [username=" + username + ", password="
+ Arrays.toString(password) + ", gender=" + gender + "]";
} }
public class Student {
private int id;//BeanUtil对于基本类型自动转换
private String name;
private String password;
private String gender;
private boolean married;
private String[] hobby;
private String province;
private String description;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public boolean isMarried() {
return married;
}
public void setMarried(boolean married) {
this.married = married;
}
public String[] getHobby() {
return hobby;
}
public void setHobby(String[] hobby) {
this.hobby = hobby;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", password="
+ password + ", gender=" + gender + ", married=" + married
+ ", hobby=" + Arrays.toString(hobby) + ", province="
+ province + ", description=" + description + "]";
} }
<form action="/day08_01_request/servlet/RequestDemo4" method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
确认密码:<input type="password" name="password"/><br/>
性别:<input type="text" name="gender" value="male"/>
<input type="submit" value="注册"/>
</form>
2.4 以输入流的形式接收请求正文:POST
一般情况下用不着,文件上传时使用。
public class RequestDemo4 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletInputStream in = request.getInputStream();
int len = -1;
byte b[] = new byte[1024];
while((len=in.read(b))!=-1){
System.out.println(new String(b,0,len));
}
in.close();
}
2.5 获取常用表单输入域的值
type:radio checkbox ,如果用户一个都没有选,客户端是根本不会传参数到服务器的。
public class RequestDemo5 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
test3(request,response);
}
//请求编码和响应编码没有关系
private void test3(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");//设置请求正文的编码。只对POST有效
Student s = new Student();
System.out.println("封装前:"+s);
try {
BeanUtils.populate(s, request.getParameterMap());
} catch (Exception e) {
e.printStackTrace();
} response.setContentType("text/html;charset=UTF-8"); response.getWriter().write(s.toString());
} //get请求方式的编码问题
private void test2(HttpServletRequest request)
throws UnsupportedEncodingException {
String username = request.getParameter("name");//是二进制数据 %E6%9D%8E%E5%9B%9B byte b[] = username.getBytes("ISO-8859-1");
username = new String(b,"UTF-8"); System.out.println(username);//二进制转为字符,用ISO-8859-1的 }
//获取请求正文的参数乱码问题
private void test1(HttpServletRequest request)
throws UnsupportedEncodingException {
request.setCharacterEncoding("UTF-8");//设置请求正文的编码。只对POST有效 Student s = new Student();
System.out.println("封装前:"+s);
try {
BeanUtils.populate(s, request.getParameterMap());
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("封装后:"+s);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
<form action="/day08_01_request/servlet/RequestDemo5" method="post">
<input type="hidden" value="438" name="id"/>
<table border="1" width="438">
<tr>
<td>姓名</td>
<td>
<input type="text" name="name"/>
</td>
</tr>
<tr>
<td>密码</td>
<td>
<input type="password" name="password"/>
</td>
</tr>
<tr>
<td>性别</td>
<td>
<input type="radio" name="gender" value="male" checked="checked"/>男性
<input type="radio" name="gender" value="female"/>女性
</td>
</tr>
<tr>
<td>婚否</td>
<td>
<input type="checkbox" name="married"/>
</td>
</tr>
<tr>
<td>爱好</td>
<td>
<input type="checkbox" name="hobby" value="eat"/>吃饭
<input type="checkbox" name="hobby" value="sleep"/>睡觉
<input type="checkbox" name="hobby" value="java"/>学Java
</td>
</tr>
<tr>
<td>籍贯</td>
<td>
<select name="province">
<option value="BJ">北京</option>
<option value="SD">山东</option>
<option value="HB">湖北</option>
</select>
</td>
</tr>
<!--
<tr>
<td>靓照</td>
<td>
<input type="file" name="image"/>
</td>
</tr>
-->
<tr>
<td>简介</td>
<td>
<textarea rows="3" cols="38" name="description"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<!-- <input type="submit" value="注册"/> -->
<!-- <input type="image" src="an-0333.gif"/> -->
<input type="button" value="注册" onclick="toSubmit()"/>
</td>
</tr>
</table>
<script type="text/javascript">
function toSubmit(){
//验证用户的输入
document.forms[0].submit();
}
</script>
</form>
编码:
aaarticlea/png;base64,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" alt="" />
2.6 请求转发
//转发:源
//源和目标:共享请求范围中的数据
public class RequestDemo6 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("p", "ppp");
//ServletContext:地址的写法。必须以"/",代表当前应用。(应用开头的绝对路径)
// RequestDispatcher rd = getServletContext().getRequestDispatcher("/servlet/RequestDemo7");
//绝对路径
// RequestDispatcher rd = request.getRequestDispatcher("/servlet/RequestDemo7");
//相对路径
RequestDispatcher rd = request.getRequestDispatcher("RequestDemo7");
rd.forward(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
//转发:目标
public class RequestDemo7 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String s = (String)request.getAttribute("p");//注意和getParameter没有关系
response.getWriter().write(s);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
请求与重定向区别
aaarticlea/png;base64,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" alt="" />
2.7 包含:源 服务器端行为
public class RequestDemo8 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("我喜欢");
RequestDispatcher rd = request.getRequestDispatcher("/servlet/RequestDemo9");
rd.include(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
public class RequestDemo9 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("成都");
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
2.8 请求 和 包含 的小细节
//转发前后,源输出的任何响应正文无效
public class Forward1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setHeader("Refresh", "1");
System.out.println("转发前");
response.getWriter().write("forward before");//转发前会清空响应对象中的正文内容
request.getRequestDispatcher("/servlet/Forward2").forward(request, response);//转发
System.out.println("转发后");
response.getWriter().write("forward after");
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
//转发:目标
public class Forward2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().write("222222");//响应结束
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
//包含:源
//只会包含目标的正文,头部信息包含前清空
public class IncludeDemo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().write("11111");
request.getRequestDispatcher("/servlet/IncludeDemo2").include(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
//包含:目标
public class IncludeDemo2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setIntHeader("Refresh", 1);
response.getWriter().write("22222");
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} }
JavaWeb 后端 <三> 之 Response Request 学习笔记的更多相关文章
- JavaWeb 后端 <三> 之 Response Request
1. 响应对象 Response(重点:HTTP协议响应部分) 查看
- JavaWeb 后端 <四> 之 Cookie HttpSession 学习笔记
一.会话管理概述 1.什么是会话? 好比一次通话.打开浏览器,点击多次链接(发出多次请求和收到多次的响应),关闭浏览器,这个过程就是一次会话. 有功能 可以 文件 新建会话 2.解决的问题是什么? ...
- JavaWeb 后端 <六> 之 EL & JSTL 学习笔记
一.EL表达式(特别重要)
- 第三次作业-MOOC学习笔记:Python网络爬虫与信息提取
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 第一周 Requests库的爬 ...
- Python核心编程第三版第二章学习笔记
第二章 网络编程 1.学习笔记 2.课后习题 答案是按照自己理解和查阅资料来的,不保证正确性.如由错误欢迎指出,谢谢 1. 套接字:A network socket is an endpoint of ...
- CSS3秘笈第三版涵盖HTML5学习笔记6~8章
第二部分----CSS实用技术 第6章,文本格式化 指定备用字体: font-family:Arial,Helvetica,sans-serif; 当访问者没有安装第一种字体时,浏览器会在列表中继续往 ...
- CSS3秘笈第三版涵盖HTML5学习笔记1~5章
第一部分----CSS基础知识 第1章,CSS需要的HTML HTML越简单,对搜索引擎越友好 div是块级元素,span是行内元素 <section>标签包含一组相关的内容,就像一本书中 ...
- 第三周 day3 python学习笔记
1.字符串str类型,不支持修改. 2.关于集合的学习: (1)将列表转成集合set:集合(set)是无序的,集合中不会出现重复元素--互不相同 (2)集合的操作:交集,并集.差集.对称差集.父集.子 ...
- CSS3秘笈第三版涵盖HTML5学习笔记9~12章
第9章,装饰网站导航 限制访问,处于隐私方面考虑,浏览器已经开始限制可以对伪类:visited应用哪些CSS属性了.其中包括对已访问过的链接定义color.background-color.borde ...
随机推荐
- linux中搭建java开发环境
JDK安装 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载对应jdk版本, ...
- Unity游戏程序员面试题及解答
典型的一些如手写排序算法.一些基本数学问题,在此就不列举了.以下整理出一些代表性的.有参考价值的题,真实面试题,附有本人的解答,欢迎讨论. 题1.指出下列哪些属于值类型? int System.Obj ...
- 获取openId | 小程序
最近项目中需要使用微信授权,继上一篇<关于微信小程序拒绝授权后,重新授权并获取用户信息>之后,需要获取用户的openId,开发测试时,发现无论如何都获取不到: 官方文档如下: 相信很多同学 ...
- C语言错题小本子
int a; ; a = ! x< //a的值是多少 我的答案:0, 正确答案:1 错误原因:没有熟练掌握运算符的优先级 // 找出下面无效的C语言变量名 A. _a B. main C. pr ...
- Java IO流--练习2
1)写一个Java程序,输入3个整数,并求出三个数的最大数和最小数 代码: package 第十二章IO流; import java.io.BufferedReader; import java.io ...
- javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- Canvas学习系列二:Canvas的坐标系统
上一章内容中我们对canvas元素有了一个初步的认识,在接下来的章节中我们会慢慢学习canvas中图形的绘制:但是在绘制之前我们先来看看canvas中的坐标系统,因为这样我们才能知道绘制的图形放在什么 ...
- [原]vue实现全选,反选
用vue写业务代码时候,后端大神丢给我一堆数据,要求是做全选,反选功能,然后把用户更改的数据全部返回给他 基本思路 如果父级选中了,那么父级下面的子集全部选中checked=true; 如果子集中选中 ...
- php 数据连接 基础
1.造连接对象 $db= new MYSQLi("localhost","root","123","test_0306" ...
- python网络爬虫之scrapy 工程创建以及原理介绍
执行scrapy startproject XXXX的命令,就会在对应的目录下生成工程 在pycharm中打开此工程目录:并在Run中选择Edit Configuration 点击+创建一个Pytho ...