import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; @WebServlet(name = "registerServlet", value = "/registerServlet") public class registerServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-Type","text/html;charset=UTF-8");//设置浏览器编码为utf-8,防止出现中文乱码 //接收前端表单输入的用户名和密码 String username = request.getParameter("Username"); String userPassword = request.getParameter("UserPassword"); //创建cookie,并将上文接收的用户名和密码存入cookie中 Cookie cookie=new Cookie(userPassword,username); cookie.setMaxAge(60*10);//设置cookie存活时间为10分钟 //发送cookie至客户端,并跳转至注册成功页面 response.addCookie(cookie); String massage="<meta http-equiv='refresh' content='3;url=/Cookie_war_exploded/Login.jsp'>三秒后跳转到登陆页面,如果没有跳转,请点击<a href='login.jsp'>跳转按钮</a>";//实现三秒之后自动跳转功能。 request.setAttribute("massage",massage); request.getRequestDispatcher("/registerVictory.jsp").forward(request,response); } }
时间: 2024-04-28 09:25:18 浏览: 204
这是一个使用 Java Servlet 技术实现的注册页面的后端代码,当用户在前端输入用户名和密码后,通过调用 `doGet` 方法将它们存入 Cookie 中,同时将用户重定向到注册成功页面。其中,`@WebServlet` 注解用于声明这是一个 Servlet 类,`request.getParameter()` 用于获取前端输入的参数,`Cookie` 用于创建和操作 Cookie,`response.addCookie()` 用于将 Cookie 发送至客户端,`request.setAttribute()` 用于设置跳转页面的提示信息。
相关问题
//package com.javakc.javaQ.servlet; // //import jakarta.servlet.ServletException; //import jakarta.servlet.annotation.WebServlet; //import jakarta.servlet.http.HttpServlet; //import jakarta.servlet.http.HttpServletRequest; //import jakarta.servlet.http.HttpServletResponse; // //import java.io.IOException; // ///** // * // */ //@WebServlet( // name = "ResponseServlet", // urlPatterns = "/response.do", // loadOnStartup = 0 //) // //public class ResponseServlet extends HttpServlet { // @Override // protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // // } //} package com.javakc.javaQ.servlet; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.*; import java.nio.file.Files; import java.nio.file.Path; @WebServlet( name = "ResponsvleteSer", urlPatterns = "/Sp.do" ) public class ResponseServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String type = req.getParameter("type"); String video = "E:\\学习\\javaQ\\javaQ\\src\\main\\webapp\\views\\yemian\\11.mp4"; Path p = Path.of(video ); byte[] b = Files.readAllBytes(p); resp.setContentType("video/mpeg4"); OutputStream ops = resp.getOutputStream(); System.out.println(b.length); if (type.equals("1")) { ops.write(b); ops.flush(); ops.close(); } if (type.equals("2")) { FileInputStream f=new FileInputStream(video ); byte[] b1=new byte[100]; int len=0; while ((len=f.read(b1))!=-1){ ops.write(b1,0,len); try { Thread.sleep(1); } catch (InterruptedException e) { throw new RuntimeException(e); } ops.flush(); } ops.close(); } } }
这段代码是一个 Java Servlet,在接收到 HTTP 请求后,会根据请求中的参数返回一个 MP4 视频文件给客户端浏览器。
具体来说,当客户端发送一个 HTTP GET 请求到 /Sp.do 路径时,该 Servlet 会读取名为 11.mp4 的视频文件,并根据请求中的 type 参数选择不同的传输方式将视频文件返回给客户端浏览器。
如果 type 参数的值为 "1",则该 Servlet 会将整个视频文件的内容一次性写入输出流中,并关闭输出流。
如果 type 参数的值为 "2",则该 Servlet 会使用分段传输的方式将视频文件的内容逐块写入输出流中,每次写入一小块数据后,会让线程暂停一段时间再继续写入下一块数据,以避免短时间内输出过多数据导致浏览器无法处理的问题。
需要注意的是,在使用 Servlet 返回文件时,必须设置正确的 Content-Type,以确保浏览器能够正确地解析和播放该文件。在该代码中,我们使用 resp.setContentType("video/mpeg4") 来设置返回的文件类型为 MP4 视频。
import jakarta.servlet.*; import jakarta.servlet.http.*; import jakarta.servlet.annotation.*; import java.io.IOException; @WebServlet(name = "ForwordServlet", value = "/ForwordServlet") public class ForwordServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.setAttribute("usernamer","张三"); RequsetDispatcher dispatcher = request.getRequestDispatcher("/ResultServlet"); dispatcher.forward(request,response); } @Override protected void doPost这段代码的RequestDispacher错误怎么解决(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
这段代码中的错误在于"RequsetDispatcher"拼写错误,应为"RequestDispatcher"。正确的代码应该是:
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "ForwordServlet", value = "/ForwordServlet")
public class ForwordServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setAttribute("usernamer","张三");
RequestDispatcher dispatcher = request.getRequestDispatcher("/ResultServlet");
dispatcher.forward(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
阅读全文