zoukankan      html  css  js  c++  java
  • Servlet------>request

     request细节一----->通过request获取ip

    /**
     * Servlet request常用方法
     */
    @WebServlet("/RequestDemo1")
    public class RequestDemo1 extends HttpServlet {
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//页面访问次数,拦截访问
    		System.out.println(request.getRequestURI());//很常见
    		System.out.println(request.getRequestURL());
    		System.out.println(request.getQueryString());//得到查询信息也就是http://www.snowing.com?name=1
    		//得到name=1
    		System.out.println(request.getRemoteAddr());//得到访问者ip地址
    		System.out.println(request.getRemoteHost());//得到访问者主机名---》如果没在dns上注册就打印主机名 
    		System.out.println(request.getRemotePort());//得到访问者端口(随机的)
    		System.out.println(request.getLocalAddr());//返回web服务器的主机地址
    		System.out.println(request.getLocalName());//返回web服务器的主机名---》如果没在dns上注册就打印主机名 
    		System.out.println(request.getMethod());//得到客户机请求方式
    		
    		
    		
    	}
    
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doGet(request, response);
    	}
    
    }
    

    结果:访问:http://localhost:8082/day05/RequestDemo1?name=1

     request细节二----->通过request获取头信息

     request细节三----->通过request获取请求头数据

     

     

      request细节四----->通过request控制编码问题

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //        request.setCharacterEncoding("UTF-8");//只有post生效
            String username=new String(request.getParameter("username").getBytes("iso8859-1"),"UTF-8");
            //反向查找,get/post都可以
            //URLEncoder.encode(username, "UTF-8");
            System.out.println(username);
        }
    
    <meta charset="UTF-8">

    另一种处理方式,在uri里带参数的情况,可以在tomcat server.xml里配置

    post和get都通用的乱码配置情况:

    servlet里配置:

    server.xml:

      request细节四----->MVC模式(model=javabean view=jsp controller=servlet)

    jsp:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    ${data} 
    <%
       String data=(String) request.getAttribute("data");
       out.write(data);
    %>
    </body>
    </html>
    

    servlet:

    /**
     * 请求转发,以及使用request域对象把数据带给转发资源
     */
    @WebServlet("/RequestDemo3")
    public class RequestDemo3 extends HttpServlet {
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		
    		String data="aaaa";
    		request.setAttribute("data", data);
    		request.getRequestDispatcher("/1.jsp").forward(request, response);//把数据转发给jsp,并显示
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response);
    	}
    
    }
    

     转发不能在response关闭后转发,所以一定记得,return!!!

    //forward会清空response中的数据

     页头和页脚总一样就用这种方式:

    注意:head.jsp和foot.jsp要这样

    既往不恋,未来不迎,当下不杂
  • 相关阅读:
    windows2012 永激活及配置
    Fiddler2 英文版翻译
    你知道using的用法吗?
    你会利用css写下拉列表框吗?
    完美解决.net2.0和.net4.0在同一个iis中共同运行
    深入剖析new override和virtual关键字
    思科防火墙,h3c三层交换机配置笔记
    c# 笔记 数据类型转换 数组 函数
    Silverlight 完美征程 笔记1 (控件模型)
    C#笔记(流程控制)
  • 原文地址:https://www.cnblogs.com/SnowingYXY/p/6668521.html
Copyright © 2011-2022 走看看