【Servlet使用2】

建立包cn.rs.servlet

建立a.html

*[HTML]:<form action="http://localhost:8080/Javaweb2/para" method="post">
    用户名:<input type="text" name="username"><br/>
    密码:<input type="password" name="password"><br/>
    兴趣爱好:<input type="checkbox" name="hobby" value="cpp">C++
    <input type="checkbox" name="hobby" value="java">Java
    <input type="checkbox" name="hobby" value="js">JavaScript<br/>
    <input type="submit">
</form>

内容

Javaweb2

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class Javaweb2 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求资源路径
        System.out.println("URI="+req.getRequestURI());

        //获取请求统一资源定位符(绝对路径)
        System.out.println("URL="+req.getRequestURL());

        //获取客户端IP地址
        System.out.println("客户端IP地址= "+req.getRemoteHost());

        //获取请求头
        System.out.println("请求头 user-agent= "+req.getHeader("User-Agent"));

        //获取请求的方式GET或POST
        System.out.println("请求的方式: "+req.getMethod());
    }
}

Servlet1

package cn.rs.servlet;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class Servlet1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
        //获取请求的参数(办事的材料)查看
        String username = req.getParameter("username");
        System.out.println("在Servlet1中查看参数: "+username);

        //给材料盖一个章,并传递到Servlet2去查看
        req.setAttribute("key","柜台1的章");

        //问路:Servlet2怎么走
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("http://www.baidu.com");

        //走向Servlet2
        requestDispatcher.forward(req,resp);

    }
}

Servlet2

package cn.rs.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class Servlet2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求的参数(办事的材料)查看
        String username = req.getParameter("username");
        System.out.println("在Servlet2中查看参数: "+username);

        //查看柜台1是否有盖章
        Object key = req.getAttribute("key");
        System.out.println("柜台1是否有章:"+key);

        //处理自己的业务
        System.out.println("Servlet2处理自己的业务");
    }
}

Response1

package cn.rs.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class Response1 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("曾到此一游 Response1");

        req.setAttribute("key1","value1");

//        //设置响应状态码302,表示重定向(已搬迁)
//        resp.setStatus(302);
//
//        //设置响应头,说明新的地址在哪里
//        //resp.setHeader("Location","http://localhost:8080/Javaweb2/response2");
//        resp.setHeader("Location","http://www.baidu.com");

        //响应状态码302固定,推荐使用
        resp.sendRedirect("http://localhost:8080/Javaweb2/response2");

    }
}

Response2

package cn.rs.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class Response2 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println(req.getAttribute("key1"));
        resp.getWriter().write("Response2's result!");
    }
}

ResponseIOServlet

package cn.rs.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class ResponseIOServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        设置服务器字符集为UTF-8
//        resp.setCharacterEncoding("UTF-8");

//        通过响应头,设置浏览器也使用UTF-8
//        resp.setHeader("Content-Type","text/html;charset=UTF-8");

        //同时设置服务器和客户端都使用UTF-8字符集,还设置了响应头
        //此方法一定要在获取流对象之前才有效
        resp.setContentType("text/html;charset=UTF-8");

        PrintWriter writer = resp.getWriter();
        writer.write("你是!");
    }
}

ForwardC

package cn.rs.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class ForwardC extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("经过了ForwardC程序");
        req.getRequestDispatcher("/a/b/c.html").forward(req,resp);
    }
}

ParameterServlet

package cn.rs.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;

public class ParameterServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("----------------doGet----------------");
        //获取请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobby = req.getParameterValues("hobby");

        System.out.println("用户名:"+username);
        System.out.println("密码:"+password);
        System.out.println("兴趣爱好:"+ Arrays.asList(hobby));
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("----------------doPost----------------");
        //设置请求体的字符集为UTF-8,从而解决post请求中文乱码的问题
        req.setCharacterEncoding("UTF-8");
        //获取请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobby = req.getParameterValues("hobby");

        System.out.println("用户名:"+username);
        System.out.println("密码:"+password);
        System.out.println("兴趣爱好:"+ Arrays.asList(hobby));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值