web初级阶段

package cn.tedu.web;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/demo1")
public class Demo1Servlet implements Servlet {
    /**
     *
     * @param servletConfig
     * @throws ServletException
     */
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {}
    @Override
    public ServletConfig getServletConfig() {return null;}
    @Override
    public void service(ServletRequest servletRequest, ServletResponse response) throws ServletException, IOException {
        System.out.println("模拟器接收到请求了");
        PrintWriter writer = response.getWriter();
        writer.write("hello response");
    }
    @Override
    public String getServletInfo() {return null;}
    @Override
    public void destroy() {}
}
package cn.tedu.web;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(urlPatterns = {"/demo2","/demo222"})
public class Demo2Servlet extends HttpServlet {
    /**
     * 服务方法:浏览器每次访问,都会执行该方法
     * @param req:请求对象,处理请求数据
     * @param resp:响应对象,处理响应数据
     * @throws ServletException
     * @throws IOException
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        response.getWriter().write("what the fox say!!!");
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
package cn.tedu.web;
//本类用于测试response的中文乱码的处理问题
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(urlPatterns = "/date")
public class Demo3Servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //响应数据中包含中文,会乱码,用以下代码指定编码,缓冲字符输出流内部有一个缓冲区
        //这个缓冲区的默认字符集是ISO-8859-1
        resp.setContentType("text/html;charset=utf-8");
        //给浏览器响应数据
        resp.getWriter().write("暗香残留");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}
package cn.tedu.web;
//请求转发测试类
/*请求转发是服务器内部资源的一种跳转方式,即当浏览器发送请求访问服务器中的某一个资源时
* 该资源将请求转交给另外一个资源进行处理的过程,就叫做请求转发,具有以下特点:
* 1,请求转发整个过程是一次请求、一次响应
* 2,请求转发前后,浏览器地址栏地址不会发生变化(浏览器–访问–>A–转发–>B,地址栏地址始终指向A的地址)
* 3,请求转发前后的request对象是同一个
* 4,转发前后的两个资源必须属于同一个Web应用,否则将无法进行转发
* 5,使用代码: request.getRequestDispatcher(访问目的资源的路径).forward(request,response);
* 6,也可以使用 setAttribute()/getAttribute()来验证*/
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(urlPatterns = "/demo4")
public class Demo4 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Demo4...service");
        req.getRequestDispatcher("/demo5").forward(req,resp);
    }
}
package cn.tedu.web;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(urlPatterns = "/demo5")
public class Demo5 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Demo5...service");
        resp.getWriter().write("Demo5...response");
    }
}
package cn.tedu.web;
/*浏览器资料上传测试*/
/*Request对象用来解析请求参数,当浏览器访问服务器时,携带着一些请求参数
 * 可以通过Servlet提供的Request对象提供的API来解析请求参数请求对象有两个*/
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
/**1.定义类Demo6继承HttpServlet的方式
 * 作用:获取浏览器提交的数据,以及响应数据给浏览器
 * 2. doGet方法: request,response
 * request请求对象:在服务器端,获取浏览器提交的请求数据
 * response响应数据:响应数据到浏览器
 * 3. doPost方法: request,response
 * request请求对象:在服务器端,获取浏览器提交的请求数据
 response响应教粥:响应数据到浏览器*/
@WebServlet(urlPatterns = "/d6")
public class Demo6 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        //根据参数名获取参数的值
        //方式1:根据参数名获取一个值
        String name = req.getParameter("username");
        System.out.println("请求的用户名"+name);
        String psw = req.getParameter("psw");
        System.out.println("请求的用户密码"+psw);
        //获取所有参数的值并存入数组
        //方式2:根据参数名获取所有值,并返回数组
        String[] love = req.getParameterValues("love");
        System.out.println("请求的用户爱好"+ Arrays.toString(love));
        //给浏览器做出响应
        resp.getWriter().print("曹狗出来对线");
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String userValue = req.getParameter("username");
        System.out.println("请求的用户名"+userValue);
        String pswValue = req.getParameter("psw");
        System.out.println("请求的用户密码"+pswValue);
        String[] love = req.getParameterValues("love");
        System.out.println("请求的用户爱好"+ Arrays.toString(love));
    }
}
package cn.tedu.web;
//本类用于重定向测试
/*当浏览器向服务器发送请求访问某一个资源A时
* 资源A在响应时通知浏览器需要再进一步请求才能获取到对应的资源
* 浏览器再次向服务器发送请求访问资源B,最终是由资源B响应浏览器要获取的数据
* 这个过程叫做重定向*/
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(urlPatterns = "/d7")
public class Demo7 extends HttpServlet {
    /*重定向具有以下特点:
     * 1,重定向前后是两次请求、两次响应
     * 2,重定向前后,浏览器地址栏地址会发生变化(因为两次请求都是通过浏览器发起
     * 浏览器知道这个跳转过程,因此地址栏地址会发生变化)。
     * 3,重定向前后的request对象不是同一个 (因此重定向前后是两次请求
     * 服务器根据两次请求会创建两个request对象,因此request对象不是同一个)
     * 4,重定向前后的两个资源可以来自不同的Web应用,甚至可以是来自不同的虚拟主机或者服务器。
     * 5,使用代码: response.sendRedirect(“重定向到资源的路径”);*/
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //重定向的地址,可以随意设置,不是必须在同一工程中
        resp.sendRedirect("https://blog.csdn.net/Jcskson?type=blog");
//        resp.sendRedirect("https://d.tanwan.cn/h/19981.html?cplaceid=130082556.4919950329.181098262618&bd_vid=10700144543780212867");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值