齐河网站建设,网页设计分为哪些板块,小红书 wordpress,项目加盟代理商一#xff0c;JSP中的page指令
1. % page language“java” session“true”% session#xff1a;此页面是否使用session#xff0c;默认值为true
二#xff0c;使用Session完善之前的登录程序
1. 如何禁止直接输入URL地址进入登录功能的欢迎界面#xff1f;
…一JSP中的page指令
1. % page language“java” session“true”% session此页面是否使用session默认值为true
二使用Session完善之前的登录程序
1. 如何禁止直接输入URL地址进入登录功能的欢迎界面
首先我们需要创建一个登录Servlet用于处理用户的登录请求并在用户成功登录后设置Session
package com.haina.web;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;WebServlet(/check)
public class CheckServlet extends HttpServlet {Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String u req.getParameter(userName);String s req.getParameter(password);String autoreq.getParameter(autoLogin);MapString,Stringmapnew HashMap();map.put(admin,123);map.put(test,456);map.put(abc,xyz);//通过用户名去map中查找密码如果用户名存在则可以找到否则为空String xmap.get(u);//SetString kmap.keySet();if (x!nullx.equals(s)/*k.contains(u) map.get(k).equals(s)*/) {//auto!null表示勾选了自动登录if (auto!null){//我们使用login作为cookie的键用这个cookie来实现自动登录Cookie cnew Cookie(login,u);c.setMaxAge(60);resp.addCookie(c);}//从请求对象获取session对象HttpSession session req.getSession();//把当前登录的用户名存放在sessionkey是abcsession.setAttribute(abc,u);//如果要实现退出登录功能可以使用removeAttribute删除登陆时存放的session数量//session.removeAttribute();//跳转到成功页面//只有第一个参数前面有问号后续的都是符号// eg:?nameage20gendertrueresp.sendRedirect(welcome.jsp?nameu);}/*else if(test.equals(u)456.equals(s)){resp.sendRedirect(welcome.jsp?nameu);}else if (abc.equals(u)xyz.equals(s)){resp.sendRedirect(welcome.jsp?nameu);}*/else {//跳回到登陆页面resp.sendRedirect(login2.jsp);}}
}
然后在需要保护的页面例如welcome.jsp中我们在页面顶部添加以下代码以检查用户是否已经登录
%--Created by IntelliJ IDEA.User: ***Date: 2024/7/18Time: 17:03To change this template use File | Settings | File Templates.
--%
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle欢迎页面/title
/head
body%Object osession.getAttribute(abc);if (onull){//未登录禁止访问登陆页面直接跳转回登陆页面response.sendRedirect(login2.jsp);}
%
h1登陆成功,欢迎:%request.getParameter(name)%
/h1/body
/html
在这个例子中我们首先获取当前的Session对象如果用户没有登录则Session对象为null。然后我们检查Session对象中是否存在名为“username”的属性。如果不存在我们将用户重定向到登录页面。
2.Login流程图 3.Check流程图 三Session
1. session保存在服务器端的内存中以“key-value”对的形式保存数据与客户端相关。 2. 客户端支持Cookie 在服务器端创建session把SessionID保存在客户端内存中
3. 接口HttpServletRequest中处理session的方法 HttpSession getSession(boolean isNew) 如果session已经存在则返回一个HttpSession对象如果不存在并且isNew为true则会新建一个HttpSession对象
4. HttpSession接口的常用方法 void setAttribute(String name,Object value) 绑定一个session的对象 Object getAttribute(String name) 返回session如果没有返回null long getCreateTime() 返回session的创建时间 String getId() 返回session的id void invalidate() 销毁当前session void removeAttribute(String name) 销毁指定的session内容