用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - jsp代码库

Servlet------request

2017-05-23 作者: 逻辑与思维举报

[jsp]代码库

request功能 ------这里doGet()和doPost()方法不解释了
 
1. request功能-----获取客户端基本信息
 public class RequestDemo1 extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // getRequestURL方法 -- 返回客户端发出请求完整URL
        String url=request.getRequestURL().toString();
        System.out.println("url:"+url);
        // getRequestURI方法 -- 返回请求行中的资源名部分
        String uri=request.getRequestURI();
        System.out.println("uri:"+uri);
        // getQueryString方法 -- 返回请求行中的参数部分
        String query=request.getQueryString();
        System.out.println("query:"+query);
        // getRemoteAddr方法 -- 返回发出请求的客户机的IP地址
        String addr=request.getRemoteAddr();
        System.out.println("addr:"+addr);
        // getMethod方法 -- 返回客户机的请求方式
        String method=request.getMethod();
        System.out.println("method:"+method);
        // getContextPath方法 -- 获得当前web应用的虚拟目录名称
        String contextpath=request.getContextPath();
        System.out.println("contextpath:"+contextpath);
        // response.sendRedirect(request.getContextPath()+"/index.jsp");
    }
 
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            doGet(request, response);
         
    }
}
****************************************************************************************************************************************
****************************************************************************************************************************************
2. request功能-----获取请求头信息
 
        // getHeader(name)方法 --- String
         
        String host = request.getHeader("host");
        System.out.println("host: "+host);
         
        // getHeaders(String name)方法 --- Enumeration<String>
        Enumeration values = request.getHeaders("host");
        while (values.hasMoreElements()) {
            String value = (String) values.nextElement();
            System.out.println("value: "+value);
        }
         
        // getHeaderNames方法 --- Enumeration<String>
        Enumeration headers = request.getHeaderNames();
        while (headers.hasMoreElements()) {
            String header = (String) headers.nextElement();
            String value = request.getHeader(header);
            System.out.println(header+" : "+value);
        }
****************************************************************************************************************************************
****************************************************************************************************************************************
3.   request功能3---  获取请求参数
               /*
         * request   -----获取请求参数
         *getParameter(String name) -- String 通过name获得值
         *getParameterValues(String name) -- String[] 通过name获得多值 如: 爱好
         *getParameterNames() -- Enumeration<String> 获得所有请求参数的name
         *getParameterMap() -- Map<String,String[ ]> key :name value: 多值
                */
        //设置服务器接受时采用utf-8 ,必须在获取参数之前设置,否则会采用默认编码ISO8859-1来接受数据
        //request.setCharacterEncoding("utf-8");//服务器默认接受参数是采用ISO8859-1编码
         //1.通过name属性获得对应的值
        System.out.println("username:"+request.getParameter("username"));//  name="username"
        System.out.println("password:"+request.getParameter("password"));//
        System.out.println("email:"+request.getParameter("email"));//
 
        //2. 一个属性多个值的情况 :
         //getParameterValues(String name) -- String[] 通过name获得多值 如: 爱好
        //String[ ] values=request.getParameterValues("name");//返回的是一个string数组
 
        //3  获取所有请求参数的值:getParameterNames() -- Enumeration<String> 获得所有请求参数的name
        Enumeration<String>e=request.getParameterNames();
        while (e.hasMoreElements()) {
            String name = (String) e.nextElement();//参数的key
            String[] value=request.getParameterValues(name);//参数的value
            System.out.println(name+":"+Arrays.toString(value));
        }
        //获取多个参数和值(键值对)采用map
        Map <String,String[]>map=request.getParameterMap();
                /*
                 * 对于客户端的提交方式不同:编码问题会导致乱码
                 *  POST发送方式-----request.setCharacterEncoding("utf-8");
                 *  GET发送方式------
                 */
                    String username=request.getParameter("username");
            byte[] by=username.getBytes("iso8859-1");
            username=new String(by,"utf-8");  
****************************************************************************************************************************************
****************************************************************************************************************************************
4   request功能4------实现请求转发
            //实现请求转发
        request.getRequestDispatcher("/RequestDemo4").forward(request, response);
                // 其中web.xml要添加如下:
                     <servlet>
                               <servlet-name>RequestDemo4</servlet-name>
                               <servlet-class>request.RequestDemo4</servlet-class>
                     </servlet>
                <servlet-mapping>
                                <servlet-name>RequestDemo4</servlet-name>
                                <url-pattern>/RequestDemo4</url-pattern>
                     </servlet-mapping>
****************************************************************************************************************************************
****************************************************************************************************************************************
 5   Request 功能5------ 实现请求包含(两个servlet的响应都会返回给客户端)
             (RequestA和RequestB处理的请求响应)-----include(request, response)
             request.getRequestDispatcher("/RequestB").include(request, response);
****************************************************************************************************************************************
****************************************************************************************************************************************
6    通过转发将数据带给客户端的jsp页面中去
          RequestA:          
                // 1通过查询获取到的个人信息
        String name="张飞";
        int age=18;
        String nickname="小飞飞";
        String address="河北邯郸";
        // 2  将数据保存到request域中
        request.setAttribute("name", name);
        request.setAttribute("age", age);
        request.setAttribute("nickname", nickname);
        request.setAttribute("address", address);
        //3 通过转发将数据带到jsp页面中
        request.getRequestDispatcher("/index.jsp").forward(request, response);
         index.jsp: 
                 其中body部分:
                 <body>
                               姓名:<%=request.getAttribute("name") %> <br>
                               年龄:<%=request.getAttribute("age") %> <br>
                               昵称:<%=request.getAttribute("nickname") %> <br>
                               住址:<%=request.getAttribute("address") %> <br>
                 </body>


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...