servlet-response(响应)-重定向

response响应

response 响应

响应:(信息写回至浏览器)

作用:往浏览器写信息

组成部分:响应行 响应头 响应体

操作响应行

格式:协议/版本 状态码 状态码说明

状态码:

1xx:已发送请求

2xx:已完成响应

200:正常响应

3xx:还需浏览器进一步操作

302:重定向 配合响应头:location

304:读缓存

4xx:用户操作错误

404:用户操作错误

405:访问的方法不存在

5xx:服务器错误

500:内部异常

常用方法:

setStatus(int 状态码):针对于 1xx 2xx 3xx

了解 :sendError(int 状态码):针对于 4xx和5xx

操作响应头:

格式:key/value(value可以是多个值)

了解方法[HttpServletResponse类里]:

1).setHeader(String key,String value):设置字符串形式的响应头

了解:setIntHeader(String key,int value):设值整形的响应头

了解:setDateHeader(String key,long value):设值时间的响应头

2).addHeader(String key,String value):添加置字符串形式的响应头,之前设置过则追加,若无设置则设置

了解:addIntHeader(String key,int value):添加整形的响应头

了解:addDateHeader(String key,long value):添加时间的响应头

响应头:

location:重定向(掌握)

refresh:定时刷新

content-type:设置文件的 mime 类型[( Multipurpose Internet Mail Extensions )多用途

互联网邮件扩展类型],设置响应流的编码及告诉浏览器用什么编码方式打开

重定向:

方式1:

response.sendRedirect("/xxxweb/login");(掌握)

方式2:

response.setStatus(302);

respooen.setHeader("location","/xxxweb/login");

操作响应体:

页面上展示内容(如写入一个 table,回写信息之后浏览器则会显示这个 table 信息):

常用方法:

Writer getWriter():字符流

ServletOutputStream getOutputStream() :字节流

*:自己写的东西用字符流(使用较多),其他一概用字节流.

处理响应中文乱码(#前面项目编写一直也基于用这个设置)[掌握]:

response.setContentType("text/html;charset=utf-8");

页面index.jsp

html 复制代码
<%--  <%=request.getContextPath()%> 当前项目的路径--%>
  <a href="<%=request.getContextPath()%>/redirectServlet">servlet的重定向</a>

RedirectServlet

java 复制代码
//使用注解配置浏览器资源路径
@WebServlet("/redirectServlet")
public class RedirectServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
		//重定向,如果注释下一行,则跳转第一个界面
        response.sendRedirect(request.getContextPath()+"/two.jsp");
        //自动跳转到two页面,以下不显示
        response.getWriter().append("第一个界面");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

Two

java 复制代码
@WebServlet(value = "/two")
public class Two extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().append("第二个界面:重定向");

        SimpleDateFormat sdf = new SimpleDateFormat();// 格式化时间
        sdf.applyPattern("yyyy-MM-dd HH:mm:ss a");// a为am/pm的标记
        Date date = new Date();// 获取当前时间
        //System.out.println("现在时间:" + sdf.format(date)); // 输出已经格式化的现在时间(24小时制)
        response.setHeader("date", sdf.format(date));
        response.getWriter().append("时间回显:" + sdf.format(date));
    }


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

测试

如果不使用注解配置资源路径,就要配置web.xml

xml 复制代码
    <servlet>
        <servlet-name>RedirectServlet</servlet-name>
        <servlet-class>com.controller.RedirectServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>RedirectServlet</servlet-name>
        <url-pattern>/redirectServlet</url-pattern>
    </servlet-mapping>
        <servlet>
        <servlet-name>Two</servlet-name>
        <servlet-class>com.lx.controller.Two</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Two</servlet-name>
        <url-pattern>/tow</url-pattern>
    </servlet-mapping>
相关推荐
Best_Liu~32 分钟前
策略模式 vs 适配器模式
java·spring boot·适配器模式·策略模式
direction__1 小时前
Java Main无法初始化主类的原因与解决方法(VsCode工具)
java·vscode
帧栈1 小时前
开发避坑指南(29):微信昵称特殊字符存储异常修复方案
java·mysql
每天的每一天1 小时前
面试可能问到的问题思考-Redis
java
青云交2 小时前
Java 大视界 -- Java 大数据在智能安防人脸识别系统中的活体检测与防伪技术应用
java·大数据·生成对抗网络·人脸识别·智能安防·防伪技术·活体测试
学习至死qaq2 小时前
信创产品TongLinkQ安装及springboot2整合使用
java·东方通·tonglinkq
我崽不熬夜2 小时前
Java中基本的输入输出(I/O)操作:你知道如何处理文件吗?
java·后端·java ee
我崽不熬夜2 小时前
Java的异常处理机制:如何优雅地捕获和抛出异常?
java·后端·java ee
Slaughter信仰2 小时前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第二章知识点问答(21题)
java·开发语言·jvm
一叶飘零_sweeeet2 小时前
SPI 机制深度剖析:Java、Spring、Dubbo 的服务发现哲学与实战指南
java·spring·dubbo