五:request和response的使用

接着上一篇我们在搞完servlet的终极模式之后,接着就需要对发送的请求做出响应了

在这里,所谓的响应,都是返回页面的语言在浏览器上显示也就是HTML语言,所以返回的结果只有HTML语言才能在浏览器上显示

1.response

  response在使用之前有需要设置response的编码格式,否则输入中文就会乱码设置时需要注意,一定要在response.getWriter()之前,因为有些servlet在生成的时候回默认在doget生成一个,否则就没有用response.getWriter()

response.setHeader("Content-type", "text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
乱码请设置

1.response.getWriter()  写的字符串就是HTML就是网页源代码,也就是说换行就是writer.write("<br>");

  

PrintWriter writer= response.getWriter();
writer.write("

aaa    响应成功

aaa");
writer方式

2.如果要返回一个页面则需要重定向

response.sendRedirect("res_and_rsp.html");
重定向


2.request

1.网页中填写的表单,会以request.getParameter()的方式取出

  

String username = request.getParameter("username");
String password = request.getParameter("password");
requser取出form中的值

2.request获得当前页面的路径

String path = request.getContextPath();

3.转发请求    先获取一个转发器   然后输入路径在forward即可

RequestDispatcher Dispatcher= request.getRequestDispatcher("res_and_rsp.html");
Dispatcher.forward(request, response);
转发

转发的重定向的区别

1.1转发对浏览器来说是一次请求 处理发送的过程在服务器内部发生,也就是说,浏览器告诉服务器要给我一个东西,服务器就给了

1.2重定向是两次请求 首先请求服务器,服务器告诉你,你需要请求的页面地址,然后你再次请求该页面地址得到结果

2.1转发地址栏地址无变化,重定向地址栏有变化

3.1转发可以访问WEB-INF目录下的资源,重定向不可以

//转发
RequestDispatcher Dispatcher= request.getRequestDispatcher("WEB-INF/one.html");
Dispatcher.forward(request, response);

//重定向
response.sendRedirect("WEB-INF/one.html");
WEB-INF/one.html文件测试
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>你有权利</h1>
</body>
</html>
WEB-INF/one.html

 4.1转发可以共享request域中的数据,重定向不可以共享request域中的数据

原文地址:https://www.cnblogs.com/BookMiki/p/13971367.html