重庆承越网站建设公司,青岛网站建设代理加盟,wordpress花园破解,多元网络兰州网站建设web服务器接收到客户端的http请求#xff0c;针对这个请求#xff0c;分别创建一个代表请求的HttpServletRequest对象#xff0c;代表响应的一个HTTPServletResponse#xff1b;
如果要获取客户端请求过来的参数#xff1a;找HttpServletRequest如果要给客户端响应一些信息…web服务器接收到客户端的http请求针对这个请求分别创建一个代表请求的HttpServletRequest对象代表响应的一个HTTPServletResponse如果要获取客户端请求过来的参数找HttpServletRequest如果要给客户端响应一些信息找HtttpServletResponse简单分类负责向浏览器发送数据的方法publicServletOutputStreamgetOutputStream()throwsIOException;publicPrintWritergetWriter()throwsIOException;负责向浏览器发送响应头的方法voidsetCharacterEncoding(Stringvar1);voidsetContentLength(intvar1);voidsetContentLengthLong(longvar1);voidsetContentType(Stringvar1);voidsetDateHeader(Stringvar1,longvar2);voidaddDateHeader(Stringvar1,longvar2);voidsetHeader(Stringvar1,Stringvar2);voidaddHeader(Stringvar1,Stringvar2);voidsetIntHeader(Stringvar1,intvar2);voidaddIntHeader(Stringvar1,intvar2);响应的状态码intSC_CONTINUE100;intSC_SWITCHING_PROTOCOLS101;intSC_OK200;intSC_CREATED201;intSC_ACCEPTED202;intSC_NON_AUTHORITATIVE_INFORMATION203;intSC_NO_CONTENT204;intSC_RESET_CONTENT205;intSC_PARTIAL_CONTENT206;intSC_MULTIPLE_CHOICES300;intSC_MOVED_PERMANENTLY301;intSC_MOVED_TEMPORARILY302;intSC_FOUND302;intSC_SEE_OTHER303;intSC_NOT_MODIFIED304;intSC_USE_PROXY305;intSC_TEMPORARY_REDIRECT307;intSC_BAD_REQUEST400;intSC_UNAUTHORIZED401;intSC_PAYMENT_REQUIRED402;intSC_FORBIDDEN403;intSC_NOT_FOUND404;intSC_METHOD_NOT_ALLOWED405;intSC_NOT_ACCEPTABLE406;intSC_PROXY_AUTHENTICATION_REQUIRED407;intSC_REQUEST_TIMEOUT408;intSC_CONFLICT409;intSC_GONE410;intSC_LENGTH_REQUIRED411;intSC_PRECONDITION_FAILED412;intSC_REQUEST_ENTITY_TOO_LARGE413;intSC_REQUEST_URI_TOO_LONG414;intSC_UNSUPPORTED_MEDIA_TYPE415;intSC_REQUESTED_RANGE_NOT_SATISFIABLE416;intSC_EXPECTATION_FAILED417;intSC_INTERNAL_SERVER_ERROR500;intSC_NOT_IMPLEMENTED501;intSC_BAD_GATEWAY502;intSC_SERVICE_UNAVAILABLE503;intSC_GATEWAY_TIMEOUT504;intSC_HTTP_VERSION_NOT_SUPPORTED505;Response下载文件向浏览器输出消息下载文件要获取下载文件的路径下载的文件名是啥设置想办法浏览器能够支持下载我们需要的东西获取下载文件的输入流创建缓冲区获取OUtputStream对象将FileOutputStream流写入到buffer缓冲区使用OutputStream将缓冲区中的数据输出到客户端publicclassFileServletextendsHttpServlet{OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{// a. 要获取下载文件的路径StringrealPaththis.getServletContext().getRealPath(WEB-INF/classes/img/头像.jpg);System.out.println(下载文件的路径realPath);// b. 下载的文件名是啥StringfileNamerealPath.substring(realPath.lastIndexOf(\\)1);// c. 设置想办法浏览器能够支持下载我们需要的东西中文需要进行URL编码resp.setHeader(Content-Disposition,attachment;filenameURLEncoder.encode(fileName,UTF-8));// d. 获取下载文件的输入流FileInputStreamfileInputStreamnewFileInputStream(realPath);// e. 创建缓冲区intlen0;byte[]bytesnewbyte[1024];// f. 获取OUtputStream对象ServletOutputStreamoutputStreamresp.getOutputStream();// g. 将FileOutputStream流写入到buffer缓冲区while((lenfileInputStream.read(bytes))!-1){outputStream.write(bytes,0,len);}// h. 使用OutputStream将缓冲区中的数据输出到客户端fileInputStream.close();outputStream.close();}}web.xmlservletservlet-namefile/servlet-nameservlet-classcom.cike.www.FileServlet/servlet-class/servletservlet-mappingservlet-namefile/servlet-nameurl-pattern/file/url-pattern/servlet-mapping·访问浏览器可以成果看见下载文件Response验证码实现验证码怎么来的前端实现后端实现需要用到 Java 的图片类生成一个图片publicclassImageServletextendsHttpServlet{OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{// 如何让浏览器5秒自动刷新1次resp.setHeader(refresh,5);// 在内存中创建一个图片BufferedImageimagenewBufferedImage(80,20,BufferedImage.TYPE_INT_RGB);// 得到图片Graphicsg(Graphics2D)image.getGraphics();//笔// 设置图片的背景颜色g.setColor(Color.white);g.fillRect(0,0,80,20);// 给图片写入数据g.setColor(Color.BLUE);g.setFont(newFont(null,Font.BOLD,20));g.drawString(makeNum(),0,20);// 告诉浏览器这个请求用图片的方式打开resp.setContentType(image/jpeg);// 网站存在缓存不让浏览器存在缓存resp.setDateHeader(Expires,-1);resp.setHeader(Cache-Control,no-cache);resp.setHeader(Pragma,no-cache);resp.setHeader(Cache-Control,max-age0);// 把图片写给浏览器ImageIO.write(image,jpeg,resp.getOutputStream());}// 生成随机数privateStringmakeNum(){RandomrandomnewRandom();Stringnumrandom.nextInt(99999999);StringBuffersbnewStringBuffer();for(inti0;i-num.length();i){sb.append(0);}returnsb.toString()num;}}web.xmlservletservlet-nameimg/servlet-nameservlet-classcom.cike.www.ImageServlet/servlet-class/servletservlet-mappingservlet-nameimg/servlet-nameurl-pattern/img/url-pattern/servlet-mappingResponse重定向B一个web资源收到客户端请求后B他会通知A客户端去访问另外一个web资源C这个过程叫重定向常见场景用户登录voidsendRedirect(Stringvar1)throwsIOException测试publicclassRedirectServletextendsHttpServlet{OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{/* resp.setHeader(Location,/response/img); resp.setStatus(HttpServletResponse.SC_FOUND); */// 设置的路径为网站访问的真实路径也可以是Tomcat配置的路径为开始resp.sendRedirect(/response/img);}}web.xmlservletservlet-nameredirect/servlet-nameservlet-classcom.cike.www.RedirectServlet/servlet-class/servletservlet-mappingservlet-nameredirect/servlet-nameurl-pattern/redirect/url-pattern/servlet-mapping面试题请你聊一聊重定向和转发的区别相同点页面都会实现跳转不同点请求转发的时候url不会产生变化重定向的时候url地址栏会发生变化附加登录小实验-登录重定向Successindex.jsp%--CreatedbyIntelliJIDEA.User:Love_MengYaoDate:2025/11/6Time:11:02Tochangethistemplate useFile|Settings|FileTemplates.--%% page contentTypetext/html;charsetUTF-8languagejava%htmlheadtitleAdmin/title/headbodyh1HelloWorld!/h1%--这里提交的路径需要找到项目的路径--%%--${pageContext.request.contextPath}代表当前项目的路径--%form action${pageContext.request.contextPath}/loginmethodget用户名input typetextnameusernamebr密码input typepasswordnamepasswordbr登录input typesubmit/form/body/htmlsuccess.jsp% page contentTypetext/html;charsetUTF-8languagejava%htmlheadtitleSuccess/title/headbodyh1Success/h1/body/htmlRequestTest.javapublicclassRequestTestextendsHttpServlet{OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{// 处理请求Stringusernamereq.getParameter(username);Stringpasswordreq.getParameter(password);System.out.printf(username:password);// 重定向一定要注意路径否则显示404resp.sendRedirect(/response/success.jsp);}}web.xmlservletservlet-namerequest/servlet-nameservlet-classcom.cike.www.RequestTest/servlet-class/servletservlet-mappingservlet-namerequest/servlet-nameurl-pattern/login/url-pattern/servlet-mapping