H5ke11--4java分发多servlet--用来把选课系统加快-含源代码

前言:

java有两个cookie,

举例子:充电桩计费在serversocket

客户端socket[

我怎么知道有没有东西传进来,就是端口

首先我客户端发送我的ip,然后serversocket进行监听客户端唻的

那我serversocket维护着一个队列,serversocket有个阈值啊超出进行排队

 代码详解:

1首先getParameter获取我们的参数,

String course=request.getParameter("sel");

2判断是哪个课程进行分发servlet

switch (course){

3RequestDispatcher对象,它可以用于将请求转发到另一个资源(如另一个Servlet),

ServletContext是一个接口,接口里面有一个方法getRequestDispatcher将控制权交给另一个资源,get就是我的手,哎拿到了,跳转servlet,ProcessMath,ProcesssEnglish,ProcesssChinese

需要用到:context(这个相当于我们上个的localstorage缓存,这个context在服务器关闭就没有了),getRequestDispatcher获取接口(一个Servlet到另一个Servlet)

      每个Web应用程序在服务器上都有一个唯一的ServletContext(Servlet和JSP页面共享),ServletContext context=request.getServletContext();

// 从HttpServletRequest对象中获取ServletContext对象  
ServletContext context = request.getServletContext();  
  
// 在ServletContext中存储一个属性  
context.setAttribute("key", "value");  
  
// 从ServletContext中获取一个属性  
Object value = context.getAttribute("key");

       dispatcherc=context.getRequestDispatcher("/process-chinese");

使用RequestDispatcher对象,Servlet可以将控制权交给另一个资源,并由该资源处理请求,然后返回结果给客户端。

     dispatcherc.forward(request,response);//f分配器调用方法,并传request,response

将请求转发到路径为/process-chinese的资源。

 区别:

sendRedirect与forward有什么区别

  1. 客户端行为:sendRedirect会导致客户端收到一个重定向的响应,并被引导到新的资源位置。在这种情况下,客户端会知道请求被转发到了另一个资源。而forward则是在服务器端进行的,客户端并不知道请求被转发到了另一个资源。

@WebServlet(name = "ProcessCourse",value = "/Process-course")
public class ProcessCourse extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String course=request.getParameter("sel");
        System.out.println(course);
        //获取上下文对象
        ServletContext context=request.getServletContext();
//        下面进行指派
        switch (course){
            case "chinese":
                System.out.println("hello");
                System.out.println("下面开始分发servlet");
                RequestDispatcher dispatcherc=context.getRequestDispatcher("/process-chinese");//变换
                dispatcherc.forward(request,response);//f分配器调用方法,并传request,response
                break;
            case "english":
                RequestDispatcher dispatchere=context.getRequestDispatcher("/process-english");//变换
                dispatchere.forward(request,response);
                break;
            case "Math":
                RequestDispatcher dispatcherm=context.getRequestDispatcher("/process-math");
                dispatcherm.forward(request,response);//直接取,不用
                break;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白天的我最菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值