在action或Interceptor 中如何获得servelt

如何访问HttpServletRequest,HttpServletResponse或者HttpSession有两种方法可以达到效果,使用ActionContext:

Map attibutes = ActionContext.getContext().getSession();

或者实现相应的接口:

HttpSession SessionAware

HttpServletRequest ServletRequestAware

HttpServletResponse ServletResponseAware
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我作为AI语言模型无法提供完整的代码实现,但我可以给您提供一些参考。 用户登录、注册、退出: 1. 登录页面(login.jsp) ```html <form action="login" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="登录"> </form> ``` 2. 登录Servlet(LoginServlet.java) ```java protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); User user = userService.login(username, password); if(user != null){ // 登录成功,将用户信息存入Session request.getSession().setAttribute("user", user); // 跳转到首页 response.sendRedirect("index.jsp"); }else{ // 登录失败,返回登录页面 request.setAttribute("msg", "用户名或密码错误"); request.getRequestDispatcher("login.jsp").forward(request, response); } } ``` 3. 注册页面(register.jsp) ```html <form action="register" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> 确认密码:<input type="password" name="confirmPassword"><br> 邮箱:<input type="text" name="email"><br> 联系电话:<input type="text" name="phone"><br> <input type="submit" value="注册"> </form> ``` 4. 注册Servlet(RegisterServlet.java) ```java protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); String confirmPassword = request.getParameter("confirmPassword"); String email = request.getParameter("email"); String phone = request.getParameter("phone"); if(password.equals(confirmPassword)){ User user = new User(username, password, email, phone); boolean result = userService.register(user); if(result){ // 注册成功,跳转到登录页面 response.sendRedirect("login.jsp"); }else{ // 注册失败,返回注册页面 request.setAttribute("msg", "注册失败,请重新注册"); request.getRequestDispatcher("register.jsp").forward(request, response); } }else{ // 两次输入的密码不一致,返回注册页面 request.setAttribute("msg", "两次输入的密码不一致"); request.getRequestDispatcher("register.jsp").forward(request, response); } } ``` 5. 退出登录Servlet(LogoutServlet.java) ```java protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 删除Session的用户信息 request.getSession().removeAttribute("user"); // 跳转到首页 response.sendRedirect("index.jsp"); } ``` 查看个人信息、修改密码、查询所有用户信息: 1. 个人心页面(profile.jsp) ```html <h2>个人心</h2> 用户名:<%=user.getUsername()%><br> 邮箱:<%=user.getEmail()%><br> 联系电话:<%=user.getPhone()%><br> <a href="changePassword.jsp">修改密码</a> ``` 2. 修改密码页面(changePassword.jsp) ```html <form action="changePassword" method="post"> 原密码:<input type="password" name="oldPassword"><br> 新密码:<input type="password" name="newPassword"><br> 确认新密码:<input type="password" name="confirmPassword"><br> <input type="submit" value="修改密码"> </form> ``` 3. 修改密码Servlet(ChangePasswordServlet.java) ```java protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { User user = (User) request.getSession().getAttribute("user"); String oldPassword = request.getParameter("oldPassword"); String newPassword = request.getParameter("newPassword"); String confirmPassword = request.getParameter("confirmPassword"); if(user.getPassword().equals(oldPassword) && newPassword.equals(confirmPassword)){ user.setPassword(newPassword); boolean result = userService.updateUser(user); if(result){ // 修改密码成功,返回个人心 response.sendRedirect("profile.jsp"); }else{ // 修改密码失败,返回修改密码页面 request.setAttribute("msg", "修改密码失败,请重新修改"); request.getRequestDispatcher("changePassword.jsp").forward(request, response); } }else{ // 原密码错误或两次输入的新密码不一致,返回修改密码页面 request.setAttribute("msg", "原密码错误或两次输入的新密码不一致"); request.getRequestDispatcher("changePassword.jsp").forward(request, response); } } ``` 4. 查询所有用户信息Servlet(ListUserServlet.java) ```java protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<User> userList = userService.listUser(); request.setAttribute("userList", userList); request.getRequestDispatcher("listUser.jsp").forward(request, response); } ``` 权限角色问题: 可以通过JavaEE技术的Filter或Interceptor等技术来实现权限控制。例如,可以编写一个权限控制Filter,在用户登录后,对用户的角色进行判断,如果是管理员则放行,否则跳转到权限不足的提示页面。 购买记录、追踪、留言、在线阅读: 这些功能需要根据具体的业务需求进行设计和实现,需要涉及到多种技术和工具,包括JSP、Servlet、MySQL、HTML、CSS、Javascript等。以下是一些简单的实现思路: 1. 购买记录:用户在购买页面选择商品进行购买,购买记录可以存储在MySQL数据库,可以通过JSP和Servlet实现购买页面和购买记录的查询功能。 2. 追踪:可以通过订单号查询订单状态,可以通过Servlet和MySQL实现订单状态的查询和更新。 3. 留言:可以通过JSP和Servlet实现留言板的功能,将留言信息存储在MySQL数据库,并在留言板页面显示所有留言信息。 4. 在线阅读:可以通过HTML、CSS、Javascript实现在线阅读的功能,将电子书籍转化为HTML格式,通过Javascript实现翻页、目录等功能。同时,需要考虑版权等相关问题,确保网站的合法性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值