zoukankan      html  css  js  c++  java
  • Servlet细节整合

    最近在复习Servlet,发现其中有很多细节方面的东西都没有接触到,只是学了大概

    1.请求转发和请求重定向的区别

    2.输入参数为中文时候的乱码问题

    3.Web工程中的目录写法

    下面分别阐述


    1.请求转发和请求重定向的区别

    请求转发:request.getRequestDispatcher("/test.jsp").forward(request, response);

    请求重定向:response.sendRedirect("/test.jsp");

    请求转发是服务器行为,本质上是一次请求,所以参数可以传递

    请求重定向是浏览器行为,本质上是俩次请求,由浏览器重新发出的请求去访问页面。因为是新的请求,所以参数不能够传递。

    2.输入参数为中文时候的乱码问题

    最新版本的tomcat的编码默认为utf-8,所以get处理中文和post一样处理

    • 在浏览器端发送请求,调
      request.setCharacterEncoding("UTF-8");来设置服务器接受信息的编码
    • response.setContentType("text/html;charset=UTF-8");

      指定HTTP响应的编码,同时指定了浏览器显示的编码
    • response.setCharacterEncoding("UTF-8");

      来设置HTTP响应的编码,如果之前通过response.setContentType("text/html;charset=UTF-8");设置了,则会覆盖之前的设置,所以开发时候只使用上面的方法即可

    Web工程中的目录写法

    >如果"/"是给服务器使用,则代表当前的Web工程
    >如果"/"是给浏览器使用,则代表Webapps目录

    "/"代表的是当前Web工程#

    • this.getServletContext().getRealPath(/index.jsp)

    2.在服务器端forward到其他页面

    • this.getServletContext().getRequestDispatcher("/index.jsp");

    3.使用include指令或<jsp:include>引入页面

    • <%@include file = "/index.jsp"%>
    • <jsp:include page = "/index.jsp"%>

    "/"代表的是当前webapps目录

    1.请求重定向

    response.sendRedirect("/blockDemo01/index.jsp");

    2.使用超链接跳转

    3.form表单提交

    4.js脚本和css引用

    在JSP页面中获得项目名称(blockDemo01)有俩种方式
    ${pageContext.request.contextPath}<%=request.getContextPath() %>

  • 相关阅读:
    【python笔记】类
    【Marva Collins' Way】第八章
    【Marva Collins' Way】第七章
    【python笔记】包
    【python笔记】模块
    【Marva Collins' Way】第六章
    【Marva Collins' Way】第九章
    【python笔记】异常
    Axios跨域&封装接口
    js更新数据
  • 原文地址:https://www.cnblogs.com/libowen/p/6336488.html
Copyright © 2011-2022 走看看