zoukankan      html  css  js  c++  java
  • servlet中的细节

    Get方法有大小限制:1024个字符。这些信息使用 Query_String头传递,并通过Query_String环境变量访问。
    Post方法:请求体信息使用FromData头传递。
    读取所有表单参数:getParamterNames()方法。枚举类型。
    遍历枚举:使用hasMoreElements()来确定何时停止循环,使用nextElement()方法来获取每个参数名称。

    Servlet请求:
    String host = req.getHeader("Host"); // localhost:8080 主机和端口
    String referer = req.getHeader("Referer"); // http://localhost:8080/myservlet/index.jsp 页面1链接到页面2,到页面2后,页面1的URL地址
    String contextPath = req.getContextPath(); // /myservlet
    String requestURI = req.getRequestURI(); // /myservlet/DisplayHeader
    StringBuffer requestURL = req.getRequestURL(); // http://localhost:8080/myservlet/DisplayHeader
    String requestedSessionId = req.getRequestedSessionId(); // F06D8A91D7A213B23BD42107CFA68601 Session 会话 id
    int serverPort = req.getServerPort(); // 8080 端口号

    http://localhost:8080/myservlet/DisplayHeader?method=show 详解
    http: 传输协议
    localhost: 主机地址
    8080: 端口号
    myservlet: contextPath
    DisplayHeader: servletPath
    method=show: 参数


    Servlet 响应:
    resp.setContextType("text/html");
    PrintWriter out = resp.getWriter();
    out.print("hello world!");


    一个有意思的小栗子(每隔5秒刷新页面):
    resp.setIntHeader("Refresh", 5);
    Calendar calendar = new GregorianCalendar();
    String am_pm;
    int hour = calendar.get(Calendar.HOUR);
    int minute = calendar.get(Calendar.MINUTE);
    int second = calendar.get(Calendar.SECOND);
    if(calendar.get(Calendar.AM_PM) == 0)
    am_pm = "AM";
    else
    am_pm = "PM";
    String CT = hour+":"+ minute +":"+ second +" "+ am_pm;

    resp.setContentType("text/html");
    PrintWriter out = resp.getWriter();
    out.print(CT);


    Servlet过滤器目的:
    在它们访问后端资源之前,拦截这些来自客户端的请求
    在他们发送回客户端之前,处理这些来自服务端的响应

    规范建议的各种类型的过滤器:
    身份验证过滤器。
    数据压缩过滤器。
    加密过滤器。
    触发访问事件资源的过滤器。
    图像转换过滤器。
    日志记录和审核过滤器。
    MIME-类型链过滤器。
    Tokenizing 过滤器。
    转换 XML 内容的 XSL/T 过滤器。


    filter-mapping 顺序决定了过滤顺序


    Cookie的键和值不能包含后边的任意一个字符: [ ] ( ) = , " / ? @ : ;

    Session:
    删除整个会话:你可以调用 public void invalidate() 方法来删除整个会话。
    设置会话超时:你可以调用 public void setMaxInactiveInterval(int interval) 方法来单独设置会话超时。
    web.xml 配置 Session 会话超时(分钟):
    <session-config>
    <session-timeout>15</session-timeout>
    </session-config>

  • 相关阅读:
    Android-实现切换Fragment页功能
    Mybatis中insert返回主键ID
    ScrollView 与ListView 滑动冲突完美解决
    fresco的源码学习自我总结
    React-Native错误笔记-EPERM
    React-Native的基本控件属性方法
    React Native之ViewPagerAndroid跳转页面问题
    Android应用中-更新提示显示红点的方案
    关于GrideView Item点击后出现错乱重叠的情况
    分享一个Unity3D小作品,源码地址已公布在文章开头!
  • 原文地址:https://www.cnblogs.com/solverpeng/p/5613568.html
Copyright © 2011-2022 走看看