j2ee基础知识点笔记(一) - 15841333625/Java GitHub Wiki

获得 Session id 的三种方法

  1. Cookie
  2. url rewriting
  3. hidden field

Cookie

服务器端有HttpSession对象集合

service(req,res) {
     HttpSession session = request.getSesion();
}

url重写

在每一个url上都接一个session id

hidden field

<form action="/contextpath/servleturl" method="post">
    <input type="hidden" name="username" value=""/>
</form>

从客户端提交的请求中获取参数:

如果客户端以get方式向服务器发送请求,表单中的数据通过查询字符串(url上可见)发送到服务器,服务器通过request.getQueryString()获得参数

http://localhost:8080/exmmm/aaa?abc="abc"&&xyz="xyz"
String abc = request.getParametor("abc");

http://localhost:8080/exmmm/aaa?abc="abc"&&xyz=
String[] values = request.getParametorValues();
//返回字符串数组,第一个为"abc",第二个为""

Servlet中如何获得session

HttpSession getSesssion()
//使session失效
request.getSession().invalidate();
# session超时设置,时间单位为min
<session-config>
    <session-timeout>30</session-timeout>
</session-config>

Filter

拦截预处理客户端发送的请求,后处理服务器端的响应 Examples that have been identified for this design are: * Authentication Filters * Logging and Auditing Filters * Image conversion Filters * Data compression Filters * Encryption Filters * Tokenizing Filters * Filters that trigger resource access events * XSL/T filters * Mime-type chain Filter

//Filter
default void 	init(FilterConfig filterConfig)
void 	doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

//FilerChain 过滤器链
void 	doFilter(ServletRequest request, ServletResponse response)

public class MyFilter implements Filter {
    public void init(FilterConfig filterConfig) {
        this.filterConfig = filterConfig;
    }
    public void destory() {}
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
        long start = System.currentTimeMillis(); //记录请求到达时间
        chain.doFilter(request, reponse);
        long end = System.currentTimeMillis(); //记录响应结束时间
    }
}

//过滤器,判断是否登陆过,若登陆过则可以访问,未登录则先登录
public class SecureFilter extends HttpFilter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
        HttpSession session = request.getSession();
        Object o = session.getAttribute("login");
        if(o == null) {
            request.getRequestDispatcher("/login.html").forward(request, response);
        }
        Boolean b = (Boolean) o;
        if(b) {
            chain.doFilter(request, response);
        } else {
            request.getRequestDispatcher("/login.html").forward(request, response);
        }
    }
}
⚠️ **GitHub.com Fallback** ⚠️