前言:
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有什么区别
- 客户端行为:
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,responsebreak;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;}} }