Javaweb-request与response
Servlet 生命周期(什么时候创建的,什么时候销毁的);
Servlet(是一个运行在服务器上的java小程序);
初始化:运行时初始化 ;
销毁 : 服务器正常关闭时销毁 ;
在javax.servlet.Servlet接口中定义了三个方法 init service destroy它们就是servlet的生命周期方法;
直接重写 init(),destroy(),service() 方法:
@Override public void init(ServletConfig config) throws ServletException { System.out.println("初始化"); }
@Override protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { System.out.println("处理来自浏览器的请求-----"); }
@Override public void destroy() { System.out.println("销毁"); }
toget() topost() 重写 , 手写一个类继承httpservlet,最后需要配置 web.xml文件 servlet, 生成的话不需要配置web.xml文件,
Servlet生命周期总结:
1.第一次访问servlet,servlet会被创建,并将servlet对象常驻内存, 调用init方法进行初始化操作,init方法中执行一次。
2.调用service方法,用于处理来自浏览器端的请求,以后都是开启一个线程来处理浏览器端请求。
3.当tomcat服务器正常关闭时,会调用destroy方法将servlet销毁。
response 响应对象:
(1) 重定向:就是冲向跳转到指定的资源页面; 第一种方法: 响应头 :response
1. 设置状态码 response.setStatus(302);
2. 设置响应头 "location"; (跳转的资源地址)
response.setHeader("location", "/Project26/demo13");
第二种方法:
直接设置路径 response.sendRedirect("/Project26/demo13");
(2) 定时跳转:
第一种方法: 设置响应头 "refresh"; response.setHeader("refresh", "5;/Project26/demo01.html");
第二种方法:
<!DOCTYPE html>
<html> <head> <meta charset="UTF-8">
<meta http-equiv="refresh" content="5;url=http://localhost:8080/Project26/demo02.html">
<title>Insert title here</title>
<script type="text/javascript">
var ti = window.setInterval("showtime()", 1000);
function showtime() { var ele = document.getElementsByTagName("span")[0];
var times = ele.innerHTML;
times--;
ele.innerHTML = times;
if (times <= 0) { window.clearInterval(ti); }
} </script
> </head>
<body>
<span>5</span>秒后跳转,如果跳转失败, <a href="demo02.html">请点击</a>
</body>
</html>
3.操作响应正文:
response.getwriter().write("内容") 防止乱码问题: response.setContentType("text/html;charset=utf-8")
4.Request 对象详细介绍 : 我们在开发中可以通过request对象来获取http请求信息及客户机信息。
http请求分为三部分 请求行 请求头 请求正文,通过request对象我们就可以获取http请求信息。 操作http请求行 : 1 . 2 .3 注意有返回值 (String)
1.请求的方式(方法 doget() ,dopost() ) String getMethod();
2.获取请求的资源路径: String getRequestURI();
3.获取请求的协议版本: getProtocol();
5. 操作http请求正文: 问题:什么情况下请求正文有内容?
只要有请求参数的情况下才会在正文中存在内容。
问题:怎样可以获取到请求参数?
String getParameter(String) 根据指定的请求参数的名称获取对应的值。
String[] getParameterValues(String); 根据指定的请求参数的名称获取对应的多组值。
Map<String,String[]> getParameterMap(); 它是获取所有的请求参数封装的Map集合,集合的key就是请求参数的名称。
Enumeration getParameterNames() 它是获取所有的请求参数的名称封装到Enumeration中。
(reqeust.setCharacterEncoding(“utf-8”)来处理请求参数乱码。)