如何用servelet传值,在jsp中显示

  • 为实现十天内自动登录功能而搜索到的方法

Servelet

简单用法

request.getSession().setAttribute(key, value);
request.getRequestDispatcher("XXX.jsp").forward(request, response);//跳转至目标界面,可不加

可使用 Cookie保存sessionID,用于设置时限


                //1 获取session对象
                HttpSession session = request.getSession();
                 //2 获取session的编号jsessionId
                String jsessionId = session.getId();
                //3 保存key-value
                session.setAttribute(key,value);
                response.getWriter().println(jsessionId);
                Cookie cookie = new Cookie("JSESSIONID",jsessionId);
                //存活时间
                cookie.setMaxAge(10*24*60*60);
                //项目地址
                cookie.setPath(request.getContextPath());
                response.addCookie(cookie);

JSP

<%=session.getAttribute(key) %>
在Servlet中添加JSP可以通过多种方式实现,主要包括转发请求和重定向请求。以下是两种常见的方法: ### 方法一:使用RequestDispatcher进行转发 这种方法将请求转发到JSP页面,URL不会改变。 ```java import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/exampleServlet") public class ExampleServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置请求属性 request.setAttribute("message", "Hello from Servlet!"); // 获取RequestDispatcher对象 RequestDispatcher dispatcher = request.getRequestDispatcher("/example.jsp"); // 转发请求到JSP页面 dispatcher.forward(request, response); } } ``` ### 方法二:使用sendRedirect进行重定向 这种方法将请求重定向到JSP页面,URL会改变。 ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/exampleServlet") public class ExampleServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置会话属性 request.getSession().setAttribute("message", "Hello from Servlet!"); // 重定向请求到JSP页面 response.sendRedirect("example.jsp"); } } ``` ### 方法三:直接在Servlet中输出JSP内容 这种方法直接在Servlet中输出HTML内容,但不太推荐,因为会混合Java代码和HTML。 ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/exampleServlet") public class ExampleServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html"); // 输出HTML内容 PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("<h1>Hello from Servlet!</h1>"); out.println("</body></html>"); } } ``` ### 推荐使用方法 推荐使用第一种方法(RequestDispatcher转发),因为它可以将请求数据递给JSP页面,并且URL不会改变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值