UserServlet中获取登录用户名

来源:7-2 项目作业

视线模糊

2020-10-28 07:02:00

# 具体遇到的问题
UserServlet中怎么获取登录用户名?

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

package com.imooc.web.action;


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;


import com.imooc.domain.User;

import com.imooc.service.UserService;

import com.imooc.service.impl.UserServiceImpl;



@WebServlet("/LoginServlet")

public class LoginServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

  

    public LoginServlet() {

        super();

       

    }


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//接收参数

String methodName=request.getParameter("method");

//判断

if("login".equals(methodName)) {

login(request,response);

}else if("logout".equals(methodName)) {

logout(request,response);

}

}


private void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {

//1、销毁session

request.getSession().invalidate();

//2、跳转到登录页面

response.sendRedirect(request.getContextPath()+"/login.jsp");

}



private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 完成验证码的校验:

// 获得session中保存的验证码的信息

String code1 = (String) request.getSession()

.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);

// 接收前台表单提交的验证码的信息

String code2 = request.getParameter("checkCode");

if (code2 == null || !code2.equalsIgnoreCase(code1)) {

request.setAttribute("msg", "验证码输入不正确!");

request.getRequestDispatcher("/login.jsp").forward(request, response);

return;

}

//接收页面提交过来的用户名和密码

String username=request.getParameter("username");

String password=request.getParameter("password");

//输出接收到的用户名和密码

System.out.println(username+"   "+password);

//数据封装

User user=new User();

user.setUsername(username);

user.setPassword(password);

//处理数据

UserService userService=new UserServiceImpl();

User existUser=userService.login(user);

//根据处理结果,完成页面跳转

if(existUser==null) {

//登录失败,返回到登录页面

request.setAttribute("msg", "用户名或密码错误");

request.getRequestDispatcher("/login.jsp").forward(request, response);

}else {

//登录成功,保存用户信息

request.getSession().setAttribute("existUser", existUser);

response.sendRedirect(request.getContextPath()+"/MessageServlet");

// response.sendRedirect(request.getContextPath()+"/message_list.jsp");

}

}




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

doGet(request, response);

}


}

package com.imooc.web.action;


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("/UserServlet")

public class UserServlet extends HttpServlet {

private static final long serialVersionUID = 1L;



protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String methodName=request.getParameter("method");

if("edit".equals(methodName)) {

//根据已登录用户信息,将用户全部信息传递到edit_user.jsp页面

edit(request,response);

}

}


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

doGet(request, response);

}


/**

* 根据用户登录的信息,将所有用户信息查询出来并跳转至edit_jsp页面

* @param request

* @param response

*/

private void edit(HttpServletRequest request, HttpServletResponse response) {

//从登录用户中获取用户名

String userName=(String) request.getSession().getAttribute("existUser.getUsername");

System.out.println(userName);

}

}

​在这里输入代码,可通过选择【代码语言】突出显示

写回答

1回答

好帮手慕阿满

2020-10-28

同学你好,如下是将登录的用户信息存入session中,

http://img.mukewang.com/climg/5f98e15709df8bbf04490088.jpg

在UserServlet中,可以从session中获取User对象,再从对象获取用户名,代码参考:

​User  user=(User) request.getSession().getAttribute("existUser");
​String username = user.getUsername();


0

0 学习 · 8016 问题

查看课程