serlvet总结

1.serlvet简介

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

2.get与post方法

GET 方法是默认的从浏览器向 Web 服务器传递信息的方法,它会产生一个很长的字符串,出现在浏览器的地址栏中

 POST 方法不是把信息作为 URL 中 ?字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息

3.Servlet 处理表单数据

  • getParameter():您可以调用 request.getParameter() 方法来获取表单参数的值。
  • getParameterValues():如果参数出现一次以上,则调用该方法,并返回多个值,例如复选框。
  • getParameterNames():如果您想要得到当前请求中的所有参数的完整列表,则调用该方法。

4.servlet过滤器

web.xml中过滤器的映射

<filter>

    <filter-name>helloFilter</filter-name>

    <filter-class>filter.Loginfilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>helloFilter</filter-name>

    <url-pattern>*.jsp</url-pattern>

  </filter-mapping>
<filter> 指定一个过滤器。
  • <filter-name>用于为过滤器指定一个名字,该元素的内容不能为空。
  • <filter-class>元素用于指定过滤器的完整的限定类名。
  • <init-param>元素用于为过滤器指定初始化参数,它的子元素<param-name>指定参数的名字,<param-value>指定参数的值。
<filter-mapping> 元素用于设置一个 Filter 所负责拦截的资源。一个Filter拦截的资源可通过两种方式来指定:Servlet 名称和资源访问的请求路径
  • <filter-name>子元素用于设置filter的注册名称。该值必须是在<filter>元素中声明过的过滤器的名字
  • <url-pattern>设置 filter 所拦截的请求路径(过滤器关联的URL样式)

配置是拦截了所有的jap界面,但是login.jsp要放行所以在过滤器界面中进行处理

HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;
        HttpSession session = request.getSession();
        String username= (String) session.getAttribute("username");
        // 获得用户请求的URI
        String path = request.getRequestURI();
        // 登陆页面无需过滤
        if(path.indexOf("login.jsp") > -1) {
            chain.doFilter(request, response);
            return ;
        }
        if(username==null) {
            response.sendRedirect(request.getContextPath()+"/login.jsp");
        }
        else {
            chain.doFilter(req, resp);
        }

public void doFilter (ServletRequest, ServletResponse, FilterChain)

该方法完成实际的过滤操作,当客户端请求方法与过滤器设置匹配的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain用户访问后续过滤器。

5.cookie

Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息

设置cookie的步骤

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。


1.创建cookie对象

Cookie cookie=new Cookie("key","value");


2.设置最大生存周期(秒为单位)

cookie.setMaxAge(60*60*24);

3.发送cookie打牌response响应头

response.addCookie(cookie);

4.读取cookie

Cookie cookie=null;

Cookie[] cookies=null;

cookies=request.getCookies();

for(int i=0;i<cookies.length;i++){

  cookie=cookies[i];

}

5.删除cookie

设置生命周期为0

cookie.setMaxAge(0);

6.session

HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录。

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

删除session:public void removeAttribute(String name) 

猜你喜欢

转载自blog.csdn.net/hewenjing8168/article/details/80372152