Package com.sishuok.chapter4.web.servlet

Source Code of com.sishuok.chapter4.web.servlet.ApiServlet

/**
* Copyright (c) 2005-2012 https://github.com/zhangkaitao
*
* Licensed under the Apache License, Version 2.0 (the "License");
*/
package com.sishuok.chapter4.web.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.SessionCookieConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* <p>User: Zhang Kaitao
* <p>Date: 13-6-22 下午1:52
* <p>Version: 1.0
*/
@WebServlet(name = "apiServlet", urlPatterns = "/api")
public class ApiServlet extends HttpServlet {
    @Override
    protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
        //以前
        req.getSession().getServletContext();
        //现在
        ServletContext sc = req.getServletContext();

        //servlet主要版本
        System.out.println(sc.getEffectiveMajorVersion());
        //servlet次要版本
        System.out.println(sc.getEffectiveMinorVersion());



        //默认的session跟踪机制
        System.out.println(sc.getDefaultSessionTrackingModes());
        //有效的session跟踪机制
        System.out.println(sc.getEffectiveSessionTrackingModes());
        //设置session跟踪机制:有COOKIE URL SSL
        //需要在容器初始化时 完成 如ServletContextListener#contextInitialized方法中调用如下代码 具体看javadoc
//        Set<SessionTrackingMode> sessionTrackingModes = new HashSet<SessionTrackingMode>();
//        sessionTrackingModes.add(SessionTrackingMode.COOKIE);
//        sc.setSessionTrackingModes(sessionTrackingModes);

        //用于session跟踪的cookie配置,比如默认Name是JSESSIONID,可以修改之
        SessionCookieConfig sessionCookieConfig = sc.getSessionCookieConfig();
        System.out.println(sessionCookieConfig.getName());

        //把默认的JSESSIONID--修改为->id   可以观察客户端变成了id
        sessionCookieConfig.setName("id");

        //得到请求的session id
        req.getRequestedSessionId();

        /**得到分派的类型 请参考:{@link javax.servlet.DispatcherType}*/
        System.out.println(req.getDispatcherType());


        Cookie cookie = new Cookie("key", "value");
        //servlet 3,功能是禁止客户端脚本访问
        cookie.setHttpOnly(true);
        resp.addCookie(cookie);


        //得到响应的状态码
        resp.getStatus();
        //得到响应头
//        resp.getHeader();
//        resp.getHeaderNames();
//        resp.getHeaders();




    }
}
TOP

Related Classes of com.sishuok.chapter4.web.servlet.ApiServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.