JavaWeb相关知识总结

一、请求响应及常用状态码

1.请求:在浏览器地址栏输入地址,点击回车请求服务器

2.响应:服务器根据浏览器发送的请求,返回数据到浏览器在网页上进行显示

3.常用状态码:

    200 响应成功

    302重定向

    404请求资源找不到

    500服务器代码出异常

二、如何查看网页中的响应头

百度:打开网页按F12,开启Chrome开发者工具,刷新网页后找到Network界面中的headers菜单,下拉点击User-AGgent

搜狗:右键单击审查元素,找到Network,刷新页面点击header菜单

谷歌:按下F12,打开开发者工具,切换到Network选项卡,刷新页面,点击具体的request,就可以查看http相关的信息了

四、页面中定时跳转与刷新

1.定时跳转需要用到Refresh响应头

例:

response.setHeader(“Refresh”,“5;URL=/chapter/login.html”);

这里面的“5”代表定时跳转的时间;“URL”表示跳转页面地址

2.定时刷新:当前页面地址不发生改变且可以自己定时刷新,页面数据也会发生改变

例:

response.setHeader(“Refresh”,“5”);

response.getWriter().print(new Data());

 

五、解决中文乱码问题

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 2         // 处理字符流流的中文乱码问题
 3         //2.处理服务器端的编码,让这个编码支持中文
 4             //response.setCharacterEncoding("utf-8");
 5         //3.处理浏览器端的编码
 6             //response.setHeader("Content-Type", "text/html;charset=utf-8");
 7             response.setContentType("text/html;charset=GB18030");
 8             String data="中国";
 9         //4.获取字符流
10             PrintWriter pw = response.getWriter();
11             pw.print(data);
12         
13         ServletOutputStream out = response .getOutputStream() ;
14         //2.处理乱码:服务器端的编码和浏览器端的编码一致
15         //3.让浏览器短的编码也是utf-8
16         //response.setHeader("Content-Type", "text/html;charset=utf-8");
17         response.setContentType("text/html;charset=utf-8");
18         //4.让服务器端的中文编码格式是utf-8
19         out.write(data.getBytes("utf-8"));
20     }

 

六、获取请求头的方法

1.根据请求头获取值:

String value = getHeader(消息头名称);  

2.获取所有请求头:

Enumeration er = getHeaderNames();

七、请求中文乱码解决方式

 1 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 2         
 3         //1.获取用户名
 4         response.setContentType("text/html;charset=utf-8");
 5         String value = request.getParameter("username");
 6         String newvalue = new String(value.getBytes("ISO8859-1"),"utf-8");
 7         response.getWriter().print("处理后的值:"+newvalue);
 8     }
 9 
10     private void paramMethod(HttpServletRequest request) {
11         // 1.根据name属性值,获取用户输入值:
12         String username = request.getParameter ("username");
13         String password = request.getParameter ("password");
14         //2.获取用户选择的值
15         String[] hobbys = request.getParameterValues("hobby");
16         //response.getWriter() .println ("username:"+username+"
");
17 //response.getWriter() .println ("password:"+password+"
");
18 //response.getWriter() .println ("hobbys:"+Arrays.toString(hobbys)); 19 Mapmap=request.getParameterMap(); 20 //遍历map 21 Set set=map.keySet(); 22 for(String key:set) { 23 String[] value = map.get(key); 24 System.out.println("name属性旳值:"+key+" "+Arrays.toString(value)); 25 } 26 } 27 28 /** 29 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 30 */ 31 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 32 33 //doGet(request, response); 34 //1.获取用户输入的值 35 //处理请求中文代码的乱码问题 36 request.setCharacterEncoding("utf-8"); 37 String value =request.getParameter("username"); 38 System.out.println(value); 39 //处理响应中文 40 response.setContentType("text/html;charset=utf-8"); 41 PrintWriter out=response.getWriter(); 42 out.print(value); 43 44 }

八、请求重定向与请求转发的区别

1.请求转发:
特点:发送了一次请求,响应一次,和request域对象配合使用,可以实现值得传递。
转发路径:转发动作是在服务器内部实现的,所以转发路径不要携带项目名称。
2.请求重定向:
特点:发送了两次请求,响应了两次,不能喝request域对象配合使用。
重定向路径:重定向动作在浏览器端执行的,所以路径需要携带项目名称。

九、请求包含

请求包含的动作

PrintWriter out = response.getWriter() ;
out .print (" including    before----"+"
") ;

2020-03-28  16:01:26

你可能感兴趣的:(JavaWeb相关知识总结)