参数获取

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--全局初始化参数-->
    <context-param>
        <param-name>a</param-name>
        <param-value>全局初始化参数</param-value>
    </context-param>


    <filter>
        <filter-name>login</filter-name>
        <filter-class >filter.LoginFilter</filter-class>
        <!--过滤器中参数-->
        <init-param>
            <param-name>uri</param-name>
            <param-value>update,updateDo,delete</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>login</filter-name>
        <url-pattern>/user</url-pattern>
    </filter-mapping>
    <!--过滤器执行-->


    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>MyServlet</servlet-class>
        <init-param>
            <!--servlet初始化参数-->
            <param-name>charset</param-name>
            <param-value>servlet初始化参数</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
      <!-- 映射 -->
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/my</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>UserController</servlet-name>
        <servlet-class>UserController</servlet-class>
        <!--在服务器启动的时候就初始化servlet对象 值为初始化顺序-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>UserController</servlet-name>
        <url-pattern>/user/*</url-pattern>
    </servlet-mapping>
    <!--执行登录界面-->
</web-app>


//在servlet获取参数

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class MyServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        doGet( request,response);
    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        //获取servlet初始化参数
        ServletConfig servletConfig = getServletConfig();
        String v = servletConfig.getInitParameter("charset");
        System.out.println(v);

        //获取全局初始化参数
        ServletContext servletContext = getServletContext();
        String  value = servletContext.getInitParameter("a");
        System.out.println(value);

    }
}


//在过滤器中获取参数
  
package filter;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/*
*
* 登录过滤器
* */
public class LoginFilter implements Filter {
    private List<String> list;
    /*
    * 过滤器实例化以后会执行一次
    * */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        list =new ArrayList<>();
       /* list.add("update");
        list.add("updateDo");
        list.add("delete");*/

    //获取过滤器初始化参数
       String value = filterConfig.getInitParameter("uri");//uri 就是url除去协议端口的剩下部分
       String[] uris =value.split(",");   //数组
       for(String s:uris){
           list.add(s);
       }


    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest)servletRequest;  //强转类型
        HttpServletResponse response =( HttpServletResponse)servletResponse;

        //获取全局初始化参数
        String a = request.getServletContext().getInitParameter("a");
        System.out.println(a);

        String m = servletRequest.getParameter("m");
        if(list.contains(m)){  //判断如果存在这个参数
            HttpSession session =request.getSession();
            Object o = session.getAttribute("C_USER");
            if(o ==null){
                response.sendRedirect("/web/user?m=login");
                return;//退出该方法
            }

        }
        filterChain.doFilter(request,response);  //执行该该请求接下来的事情
    }

    @Override
    public void destroy() {

    }
}

 

posted @ 2019-04-22 11:46  后天2333  阅读(263)  评论(0编辑  收藏  举报