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+"<br/>");
17         //response.getWriter() .println ("password:"+password+"<br/>");
18         //response.getWriter() .println ("hobbys:"+Arrays.toString(hobbys));
19         Map<String,String[]>map=request.getParameterMap();
20         //遍历map
21         Set<String> 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----"+"<br/>") ;

2020-03-28  16:01:26

posted @ 2020-03-28 16:07  恬恬超级甜  阅读(228)  评论(0编辑  收藏  举报