spring mvc 操作session工具类

spring mvc中,用户对象都是存到session中的,虽然可以通过直接传Httpsession 对象来使用session,但是每次操作都得传入session对象,比较麻烦。还有一种办法就是通过RequestContextHolder对象获取request,所以写了一个简单的工具类来获取session,操作用户:

public final class UserUtils {

    private static HttpSession getSession() {
        HttpSession session = null;
        try {
            session = getRequest().getSession();
        } catch (Exception e) {
        }
        return session;
    }

    public static HttpServletRequest getRequest() {
        ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        return attrs.getRequest();
    }

    /**
     * 从session中获取用户
     * 
     * @param session
     * @return user
     */
    public static User getUser() {
        return (User) getSession().getAttribute(SysConstant.USER);
    }

    public static void setUser(User user) {
        getSession().setAttribute(SysConstant.USER, user);
    }

    public static void removeUser() {
        HttpSession session = getSession();
        session.removeAttribute(SysConstant.USER);
        session.invalidate();
    }
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是使用Spring MVC实现一个注册登录模块的步骤: 1. 环境搭建 首先,需要准备好以下环境: - JDK 1.8 或以上版本 - Tomcat 7 或以上版本 - Eclipse 或 IntelliJ IDEA 等开发工具 - MySQL 数据库 在 Eclipse 中,可以通过以下步骤创建一个 Web 项目: 1. 打开 Eclipse,点击 File -> New -> Dynamic Web Project 2. 在创建项目的对话框中,输入项目名称和目标运行时,然后点击 Next 3. 在下一个页面中,选择 Generate web.xml deployment descriptor,然后点击 Finish 2. 创建数据库 在 MySQL 中,可以通过以下命令创建一个用户表: ``` CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); ``` 3. 编写代码 接下来,需要编写代码实现注册和登录功能。可以按照以下步骤进行: 1. 创建一个 UserController ,并使用 @Controller 注解进行标记 2. 在该中创建两个方法,一个用于显示注册页面,另一个用于处理注册表单的提交 3. 在注册表单提交的方法中,将表单数据保存到数据库中 4. 创建一个 LoginController ,并使用 @Controller 注解进行标记 5. 在该中创建两个方法,一个用于显示登录页面,另一个用于处理登录表单的提交 6. 在登录表单提交的方法中,查询数据库是否存在该用户,并根据查询结果返回不同的视图 UserController.java ```java @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/register") public String showRegisterForm(Model model) { model.addAttribute("user", new User()); return "register"; } @PostMapping("/register") public String submitRegisterForm(@ModelAttribute("user") User user) { userService.save(user); return "redirect:/user/login"; } } ``` LoginController.java ```java @Controller @RequestMapping("/user") public class LoginController { @Autowired private UserService userService; @GetMapping("/login") public String showLoginForm(Model model) { model.addAttribute("user", new User()); return "login"; } @PostMapping("/login") public String submitLoginForm(@ModelAttribute("user") User user, HttpSession session) { User dbUser = userService.findByUsernameAndPassword(user.getUsername(), user.getPassword()); if (dbUser != null) { session.setAttribute("user", dbUser); return "redirect:/home"; } else { return "login"; } } } ``` 4. 配置视图解析器 在 Spring MVC 中,需要配置视图解析器来解析视图名称,并返回对应的视图文件。可以按照以下步骤进行: 1. 在 web.xml 文件中添加 DispatcherServlet 的配置 ```xml <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` 2. 创建一个 dispatcher-servlet.xml 文件,并添加以下配置 ```xml <context:component-scan base-package="com.example.controller" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> ``` 5. 创建视图文件 在 /WEB-INF/views/ 目录下,创建 register.jsp 和 login.jsp 两个视图文件。 register.jsp ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Register</title> </head> <body> <h1>Register</h1> <form action="/user/register" method="post"> <label for="username">Username:</label> <input type="text" id="username" name="username" required> <br> <label for="password">Password:</label> <input type="password" id="password" name="password" required> <br> <label for="email">Email:</label> <input type="email" id="email" name="email" required> <br> <input type="submit" value="Register"> </form> </body> </html> ``` login.jsp ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <h1>Login</h1> <form action="/user/login" method="post"> <label for="username">Username:</label> <input type="text" id="username" name="username" required> <br> <label for="password">Password:</label> <input type="password" id="password" name="password" required> <br> <input type="submit" value="Login"> </form> </body> </html> ``` 6. 测试 最后,在浏览器中访问 http://localhost:8080/user/register 和 http://localhost:8080/user/login 进行注册和登录测试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值