请求相应

1.首先介绍一下在html中,说明了用哪个Servlet,一直有疑问如果有多个该用哪个Servlet

<form action="/MoreServlet/LoginServlet" method="post">
    用户名: <input type="text" name="username" /><br>
    密&nbsp;&nbsp;&nbsp;码 <input type="password" name="password"/><br>
      <input type="submit" value="登录" />

</form>

2.跳转

        response.setHeader("Refresh", "1;");

        response.getWriter().print(new java.util.Date());

定时刷新,也可以指定URL response.setHeader("Refresh", "1;URL=...");

3.重定向到另一个路径
        response.sendRedirect("...");

        //内填位置如:    /MoreServlet/login.html

4.获取请求消息头的参数及其键值

        Enumeration headerNames = request.getHeaderNames();
        // 获取请求消息头上有哪些参数
        while(headerNames.hasMoreElements()){
            String headerName = (String) headerNames.nextElement();
            // 获取参数名
            String value = (String) request.getHeader(headerName);
            // 获取键值
            out.print(headerName + ":" + value + "<br / >");

        }

5.判断是否盗链

        String referer = request.getHeader("referer");
        //获取访问地址
        String sitePart = "http://" + request.getServerName();
        if(referer != null && referer.startsWith(sitePart)){
            out.print("downloading...");
        }
        else{
            RequestDispatcher rd = request.getRequestDispatcher("/download.html");
            rd.forward(request, response);
            // 跳转到download.html页面

        }

6.获取请求参数

        String name = request.getParameter("name");
        // 获取参数名为name对应的值,如有多个,以第一个为准
        String[] hobby = request.getParameterValues("hobby");
        // 获取参数名为hobby对应的所有值,返回的是字符串数组
        System.out.print(name);
        for(int i=0;i<hobby.length;i++){
            System.out.println(hobby[i]);
        }

7.乱码

request.setCharacterEncoding("utf-8");

        //解决乱码的问题

8.转发机制

①:

        response.setContentType("text/html;charset=utf-8");
        //应该在第一次请求转发时就设定字体,否则后面都会按照第一次的字体,可能出现乱码
        request.setAttribute("Club", "bdzx");
        RequestDispatcher dispatcher = request.getRequestDispatcher("/First");
        dispatcher.forward(request, response);
        // 修改请求。增加参数,转发至另一个servlet供其回应

        //转发可以是在WebContent的html文件也可以是servlet

②:

        response.setContentType("text/html;charset=utf-8");
        String value = (String) request.getAttribute("Club");
        response.getWriter().print(value);
        RequestDispatcher dispatcher = request.getRequestDispatcher("/GetInfo");
        dispatcher.include(request, response);

        //不改变网址的情况下,新增调用其他的servlet,同时本页面的内容也会显示

当调用①之后又调用了②,会沿用第一个网址的URL


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值