在controller怎么让页面输出内容(弹框等)

例如:

package com.lcz.controller;

import com.lcz.pojo.User;
import com.lcz.service.UserService;
import com.lcz.util.IOCUtil;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "/Login.do", value = "/Login.do")
public class LoginController extends HttpServlet {
    //无论哪种提交方式,总是会访问service方法
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String userName = request.getParameter("userName");
        String userPassword = request.getParameter("userPassword");
        String id = request.getSession().getId();
        request.getSession().setAttribute("cookId", id);
        UserService service = IOCUtil.getService(UserService.class, request);
        User user = service.Login(userName, userPassword);
        if (user != null) {//登录成功
            //把user的cookid存入数据库
            Boolean aBoolean = service.updateUserCookId(user.getUserId(), id);
            request.getSession().setAttribute("userId", user.getUserId());
            System.out.println("用户的cookid更新结果:" + aBoolean);
            //控制器在页面输出内容
            response.getWriter().write("<script>alert('登录成功!');location.href = '/LoginForWeb/login/index.jsp';</script>");
            //要想在控制器弹窗,就要在控制器写js,那么导航链接的方式也需要使用js的方式(不可以再使用请求的转发或者是重定向),例如location.href,否则弹窗则不生效
            /*    request.getRequestDispatcher("/login/index.jsp").forward(request, response);*/
        } else {
            System.out.println("登录失败!");
            //js中的history.back();----->返回上一页
            response.getWriter().write("<script>alert('登录失败!');history.back();</script>");
            //不可以再使用重定向或者是请求的转发
            /*response.sendRedirect(request.getContextPath() + "/login.jsp");*/
        }
    }
    //以下是指定的提交方式
    /*@Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }*/
}

核心代码:

//控制器在页面输出内容
response.getWriter().write("<script>alert('登录成功!');location.href = '/LoginForWeb/login/index.jsp';</script>");
//要想在控制器弹窗,就要在控制器写js,那么导航链接的方式也需要使用js的方式(不可以再使用请求的转发或者是重定向),例如location.href,否则弹窗则不生效
/*request.getRequestDispatcher("/login/index.jsp").forward(request, response);*/

要想在控制器弹窗,就要在控制器写js,那么导航链接的方式也需要使用js的方式(不可以再使用请求的转发或者是重定向),例如location.href,否则弹窗则不生效

response.getWriter().write("<script>alert('登录成功!');location.href = '/LoginForWeb/login/index.jsp';</script>");

这里的<script></script>和前端页面上面的js代码一样,也可以正常在这里写js的代码:判断、导航、弹窗.....

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值