javaweb-HttpServletResponse对象
Posted 名字真的很急用
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb-HttpServletResponse对象相关的知识,希望对你有一定的参考价值。
HttpServletResponse是一个接口,它的父接口是ServletResponse,在开发中通常使用HttpServletResponse。
响应信息分为三部分:响应行,响应头,响应正文
发送状态码的相关方法
setStatus(int sc):参数是状态码
常见的状态码:200 响应成功
302 重定向
404 请求资源找不到
500 服务器代码出异常
错误信息方法:
sendError(int sc,String sm)参数是状态码
@WebServlet("/resp00")
public class 响应行的方法 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendError(404,"请求资源找不到!!!!");
}
}
setStatus(int sc,String sm)第一个参数是状态码,第二个参数就是状态码的描述。
@WebServlet("/resp01")
public class response01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setStatus(302);
resp.setHeader("LOCATION","/login.html");
}
}
发送响应消息头相关的方法:
响应消息头的数据格式:key-value形式,有的是一个key,一个value,有的是一个key,多个value。
设置响应头消息:
一个key,一个value
setHeader(String key,String value)
比如:setHeader(“aa”,“AA”)
如果多次操作就会覆盖前面的value值。
一个key,对应多个value,
addHeader(String key,String value)
比如:addHeader(“aa”,“bb”);
addHeader(“aa”,“cc”);
最终的结果:aa这个头对应的值为bb,cc
设置响应数据的长度
setContentLength(int src);
设置处理乱码的方法:
setCharacterEncoding(String a);参数就是一个码表格式,比如:utf-8
setContentType(String a);参数代表响应数据的类型和码表格式,比如:text/html;charset=utf-8;
发送响应体相关的方法
getOutputstream(),通过Response向浏览器返回图片,视频等二进制文件,当然也可以向浏览器返回文本数据。
getWriter(),通常response向浏览器返回文本数据,不能向浏览器返回图片,视频等二进制文件。
实现页面定时刷新
@WebServlet("/shauxin001")
public class 刷新 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setHeader("Refresh","5");
resp.getWriter().write(String.valueOf(new Date()));
}
}
@WebServlet("/resh")
public class Refesh extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setHeader("Refresh","5;/form.html");
}
}
实现简单的重定向
<body>
<form action="/login">
<h2>密码或者用户名错误!请重新输入......</h2>
用户名:<input type="text" name="name">
<br>
密码:<input type="password" name="pass">
<br>
<input type="submit" value="提交">
</form>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>欢迎来到对抗路!!!!</h1>
</body>
</html>
@WebServlet("/login")
public class logins extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");
String pass = req.getParameter("pass");
if("admin".equals(name) && "12345".equals(pass)){
resp.sendRedirect("/success.html");
}
else {
resp.sendRedirect("/login.html");
}
}
}
重定向的特点:
1.浏览器的地址栏发生了变换
2.发送了二次请求,都是由浏览器发送的请求
重定向路径:由于是浏览器发送得到的请求,所以路径最好携带项目名称。
以上是关于javaweb-HttpServletResponse对象的主要内容,如果未能解决你的问题,请参考以下文章
HttpServletrequest 与HttpServletResponse总结