博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Session 起航 登录会话和注销请求 重定向和转发
阅读量:4322 次
发布时间:2019-06-06

本文共 2433 字,大约阅读时间需要 8 分钟。

【LoginServlet】

@WebServlet(name="loginServlet",urlPatterns = "/login")public class LoginServlet extends HttpServlet{    private static final Map
userDatabase = new Hashtable<>(); static { userDatabase.put("user1","123456"); userDatabase.put("user2","123456"); userDatabase.put("user3","123456"); userDatabase.put("user4","123456"); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = req.getSession(); if (req.getParameter("logout")!=null){ session.invalidate(); resp.sendRedirect("login"); return; // 已经登录上的 }else if (session.getAttribute("username")!=null){ resp.sendRedirect("tickets"); return; } req.setAttribute("loginFailed",false); req.getRequestDispatcher("/WEB-INF/jsp/view/login.jsp").forward(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = req.getSession(); //注销 if (req.getParameter("logout")!=null){ session.invalidate(); resp.sendRedirect("login"); return; // 登录会话 }else if (session.getAttribute("username")!=null){ resp.sendRedirect("tickets"); return; } String username = req.getParameter("username"); String userpassword = req.getParameter("userpassword"); if (username == null || userpassword == null || !LoginServlet.userDatabase.containsKey(username)|| !userpassword.equals(LoginServlet.userDatabase.get(username))){ req.setAttribute("loginFailed",true); req.getRequestDispatcher("/WEB-INF/jsp/view/login.jsp") .forward(req,resp); }else { session.setAttribute("username",username); req.changeSessionId();//登录更新会话id resp.sendRedirect("tickets"); } }}

【重定向和转发】

转发是服务器行为。

重定向是客户端行为。

【login.jsp】

登录

<% if ((boolean)request.getAttribute("loginFailed")){ out.println("您输入的密码或用户名不对"); } %>
" method="post"> 用户名
密码

 

转载于:https://www.cnblogs.com/chenhui7373/p/8622515.html

你可能感兴趣的文章
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
jxl写入excel实现数据导出功能
查看>>
linux文件目录类命令|--cp指令
查看>>
.net MVC 404错误解决方法
查看>>
linux系统目录结构
查看>>
学习进度
查看>>
使用Postmark测试后端存储性能
查看>>
NSTextView 文字链接的定制化
查看>>
第五天站立会议内容
查看>>
ATMEGA16 IOport相关汇总
查看>>
面试题5:字符串替换空格
查看>>
[Codevs] 线段树练习5
查看>>
Amazon
查看>>
hMailServer搭建简单邮件系统
查看>>
从零开始学习jQuery
查看>>
opacity半透明兼容ie8。。。。ie8半透明
查看>>
CDOJ_24 八球胜负
查看>>
Alpha 冲刺 (7/10)
查看>>