前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JSP 页面访问用户验证

JSP 页面访问用户验证

作者头像
阳光岛主
发布于 2019-02-19 07:31:56
发布于 2019-02-19 07:31:56
16.6K00
代码可运行
举报
文章被收录于专栏:米扑专栏米扑专栏
运行总次数:0
代码可运行

jsp安全性问题,当别人知道某个jsp文件的网址后就可以跳过登陆页面直接访问该jsp文件了,这样无法禁止外部无权限用户的访问。本文讨论内容是通过权限验证的用户,才可以访问特定的页面。

JSP 页面验证,涉及到的知识有Session, 网页权限, 用户验证等。

session对象

session对象用来存储有关用户会话的所有信息,一个会话就是浏览器与服务器之间的一次通话,它包含浏览器与服务器之间的多次请求、响应过程。session是JSP内置对象,与浏览器一一对应,允许用户存储和提取会话状态的信息,信息保存在服务器端。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
session信息获取
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1JSP
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
session.setAttribute("userinfo", USERNAME);		// session保存登录信息和用户名
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2) Java(Servlet)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
request.getSession().setAttribute("userinfo", USERNAME);	   // session保存登录信息和用户名
其中,request为HttpServletRequest对象,在doPost(HttpServletRequest request, HttpServletResponse response){...}引用
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
session超时设置
1) web.xml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
    ...
    <session-config>
        <session-timeout>30</session-timeout>           <!-- 单位为分钟,例如30分钟 -->
    </session-config>
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
</web-app>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2) Java
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
request.getSession().setMaxInactiveInterval(30*60);		// 设置session失效时间(timeout),单位为秒
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
注: setMaxInactiveInterval() 比 web.xml 优先级高,如果两者同时设置则采用 setMaxInactiveInterval()
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JSP 网页权限
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JSP 网页权限,有两种配置方式: 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) include 文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
如: 验证文件 logincheck.jsp
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%
	if(session.getAttribute("userinfo") == null) {
%>
		<script type="text/javascript" language="javascript">
			alert("您还没有登录,请登录...");
			window.document.location.href="userlogin.html";
		</script>	
<%
	}
%>

在需要验证的jsp网页起始位置,包含 logincheck.jsp , 例如在需要验证的jsp网页 page111.jsp 中添加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <%@ include file="logincheck.jsp" %>
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2) filter 过滤
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
首先,在web.xml配置文件中设置过滤页
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>com.homer.LoginFilter</filter-class>  
    </filter>

    <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>/page222.jsp</url-pattern>
    </filter-mapping>

注: 目前配置方式仅仅是在用户访问page222.jsp的时候才走过滤器,也可以配置/*, /user/*等目录进行批量网页过滤

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
然后,在 LoginFilter.java(web.xml配置文件中的com.homer.LoginFilter)文件中, 进行过滤验证:
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class LoginFilter implements Filter {
	@Override
	public void init(FilterConfig arg0) throws ServletException {
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest)arg0;
		HttpServletResponse response = (HttpServletResponse)arg1;
		
		HttpSession session = request.getSession();
		if(session.getAttribute("userinfo") == null) {
			response.setCharacterEncoding("utf-8");
			PrintWriter out = response.getWriter();
			out.print("<script>alert('您还没有登录,请登录...'); window.location='userlogin.html' </script>");
			out.flush();
			out.close();

//			request.setAttribute("loginError", "您还没有登录,请登录...");
//			request.getRequestDispatcher("userlogin.html").forward(request, response);
		} else {
			arg2.doFilter(request, response);
		}
	}

	@Override
	public void destroy() {
	}
}
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
用户登录验证
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
用户登录验证,有两种方式:JSP网页前端和Java(Serlvet)后台
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1JSP网页前端验证(login.jsp)
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%
	String USERNAME = "admin";
	String USERPWD = "123456";
	
	request.setCharacterEncoding("utf8");

	String userName = request.getParameter("username").trim();
	String userPwd = request.getParameter("userpwd").trim();
	
	if(userName == null || userPwd == null){
		response.sendRedirect("userlogin.html");
		return;
	}
	
	if(userName.equals(USERNAME) && userPwd.equals(USERPWD)) {
		session.setMaxInactiveInterval(30*60);			// 设置session失效时间(timeout),单位为秒
		session.setAttribute("userinfo", USERNAME);		// 用户名和密码正确,保存登录信息
		response.sendRedirect("page111.jsp");
	} else {
		response.sendRedirect("userlogin.html");		// 用户名和密码错误,跳转到登录界面
	}
%>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2) Java(Serlvet)后台验证(Login.java)
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Login extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	private final static String USERNAME = "admin";
	private final static String USERPWD = "123456";
	
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) {
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		
		String userName = request.getParameter("username").trim();
		String userPwd = request.getParameter("userpwd").trim();
		
		if(userName == null || userPwd == null) {
			response.sendRedirect("userlogin.html");
		}
		
		if(userName.equals(USERNAME) && userPwd.equals(USERPWD)) {
			request.getSession().setMaxInactiveInterval(30*60);		// 设置session失效时间(timeout),单位为秒
			request.getSession().setAttribute("userinfo", USERNAME);		// 用户名和密码正确,保存登录信息(获得session与jsp网页稍有不同)
			response.sendRedirect("page111.jsp");
		} else {
			response.sendRedirect("userlogin.html");			// 用户名和密码错误,跳转到登录界面
		}
	}
}

其中,需要在web.xml配置Servlet映射关系:

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <servlet>
        <description>Login</description>
        <display-name>Login</display-name>
        <servlet-name>Login</servlet-name>
        <servlet-class>com.homer.Login</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

注: Login.java映射成对样网页为/login,login可以在网页(html和jsp)form中指定,如 action="login" 用户登录界面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
用户登录界面,是用户在访问整个网站之前需要访问的,因此最好制作成静态页面HTML,本例如:userlogin.html
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>userlogin.html</title>
</head>

<body>
<center>

<form method="POST" name="form1" action="login">
<table>
	<tr>
		<td>UserName : </td>
		<td><input type="text" name="username" /></td>
	</tr>
	<tr>
		<td>UserPwd : </td>
		<td><input type="text" name="userpwd" /></td>
	</tr>
	<tr>
		<td colspan="2" align="center">
			<input type="submit" name="btnSubmit" value="login"/>
		</td>
	</tr>
</table>
</form>

</center>
</body>

</html>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
注: 此时 action="login" 默认对应Java(Servlet)中对应的 Login.java 进行验证解析
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
userlogin.html 针对上述两种 用户登录验证 方式,分别提供了两种POST方式:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) 针对JSP方式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form method="POST" name="form1" action="login.jsp">
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2) 针对Java(Servlet)方式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form method="POST" name="form1" action="login">
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
本示例代码说明
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
本示例主要代码结构图如下:
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) head.jsp 和 foot.jsp 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
统一控制jsp页面的上,下部内容,类似ASP.NET的模板
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2) index.jsp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
网站默认的登录页面,本示例主要用作跳转到登录页面  userlogin.html :
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	<script type="text/javascript" language="javascript">
		window.location="userlogin.html";
	</script>
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
3)userlogin.html
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
静态登录页面,见上面 用户登录界面 的所示
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
4) login.jsp 和 Login.java
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
login.jsp 网页验证用户登录信息(用户名和密码),见上面的 用户登录验证 方式1
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Login.java 后台验证用户登录信息(用户名和密码),见上面的 用户登录验证 方式2
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
5) logincheck.jsp 和 LoginFilter.java 
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
logincheck.jsp 网页验证用户是否已登录,见上面的 JSP 网页权限 方式1
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LoginFilter.java 后台验证用户是否已登录,见上面的 JSP 网页权限 方式2
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
6) page111.jsp, page222.jsp, page333.jsp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) page111.jsp 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
采用  logincheck.jsp 网页权限验证,其代码内容为:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%@ include file="logincheck.jsp" %>
<%@ include file="head.jsp" %>
	I am page111.jsp
<%@ include file="foot.jsp" %>
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2) page222.jsp 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
采用  logincheck.jsp 网页权限验证,其代码内容为:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%@ include file="head.jsp" %>
	I am page222.jsp
<%@ include file="foot.jsp" %>

注:采用filter过滤方式,在web.xml配置文件中设置了哪些jsp网页需要过滤,见上面 JSP 网页权限 ---》 2) filter 过滤

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
3) page333.jsp 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
采用  logincheck.jsp 网页权限验证,其代码内容为:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%@ include file="head.jsp" %>
	I am page333.jsp
<%@ include file="foot.jsp" %>

注: 没有任何验证,用户可以直接输入网址进行访问

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
7) logout.jsp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
用户退出时,注销session中的登录信息
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	<%
		session.invalidate();
		response.sendRedirect("http://blog.csdn.net/sunboy_2050/article/details/8032693");
	%>
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
本示例运行界面:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) 登录界面
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 userlogin.html 
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2JSP 页面验证
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
logincheck.jsp (或LoginFilter.java)页面访问前进行登录验证
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
3) 验证通过访问JSP页面
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
login.jsp(或Login.java)用户登录后才可以正常访问JSP页面
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
源码下载
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
参考推荐:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
跳过登陆页面直接访问该jsp文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
如何实现JSP页面的访问控制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
session 保存登录信息
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Application Session Cookie区别
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012年09月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Javaweb02-jsp
jsp编译后放的目录:工作空间\.metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\myWeb01\org\apache\jsp
化羽羽
2022/10/28
5550
纯JSP实现用户登录注册,记事本
没有美化,没有格式,没有样式 1.JSP登陆注册 将用户注册的信息保存在application对象中,用于登录时的验证。 首页如下: 如果未登录,在  session 中找不到 currentUser 的值,则直接跳转到其他页面。 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tran
二十三年蝉
2018/02/28
5.4K0
JSP内置对象Session
session.setAttribute(String name , Object obj)
全栈程序员站长
2022/09/06
8190
JSP内置对象Session
大数据必学Java基础(一百一十二):开发案例之登录验证
需求:通过过滤器控制,只有登录过之后可以反复进入welcome.jsp欢迎页,如果没有登录,提示用户进入登录页进行登录操作。
Lansonli
2022/12/23
2750
大数据必学Java基础(一百一十二):开发案例之登录验证
jsp课程笔记之session(二)
注销session及共享session案例 login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"
兮动人
2021/06/11
6100
jsp课程笔记之session(二)
Java框架中常见的几个过滤器——JSP、Spring Boot、Servlet过滤器、Struts2拦截器
JSP过滤器是在JSP页面生成之前或之后执行的一种过滤器,它可以对请求进行拦截、处理和转发,还可以对响应进行修改和过滤。使用JSP过滤器可以实现很多功能,例如字符编码转换、登录验证、请求日志记录等。
秋名山码神
2023/10/16
5980
Java框架中常见的几个过滤器——JSP、Spring Boot、Servlet过滤器、Struts2拦截器
JavaWeb-简单学生信息管理系统的实现-Jsp+Servlet+MySql
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131958.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/30
6.1K2
JavaWeb-简单学生信息管理系统的实现-Jsp+Servlet+MySql
JavaWeb-网站在线用户信息、网站访问量以及管理踢出用户实例
这个稍微比上个版本做得完善了一点,用了JavaBean来封装用户信息,添加了一个管理踢用户的功能。 上一个的用户访问量是通过监听request来统计的,在这个实例中,我们也可以通过过滤器来实现统计网站访问量。
谙忆
2021/01/21
2.9K0
JavaWeb-网站在线用户信息、网站访问量以及管理踢出用户实例
JSP实现用户登录样例
  业务描述   用户在login.jsp页面输入用户名密码登录:   如果用户名为xingoo,密码为123,则跳转到成功界面login_success.jsp,并显示用户登录的名字;   如果用户名密码错误,则跳转到失败界面login_failure.jsp,并提示返回登录界面。   login.jsp代码 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYP
用户1154259
2018/01/17
3.2K0
Session、Cookie 学习笔记
  在开始今天的博文之前首先为自己庆祝一下自己有了三个粉丝,也有了同僚的评论,说实话因为这个开心了好久!哈哈,好了在开始今天的正题之前,首先大家需要了解以下几点:     a. HTTP 协议是无状态的协议,WEB 服务器本身不能识别出哪些请求是同一个浏览器发出的,浏览器的每一次请求都是孤立的;     b. 作为服务器必须能够采用一种机制来唯一标识一个用户,同时记录该用户的状态;     c. WEB 应用中的会话是指一个客户端浏览器与 WEB 服务器之间连续发生的一系列请求和响应过程;     d. W
bgZyy
2018/05/16
1.4K0
javaweb中怎样实现登录功能
数据库的名称是“mydb”。然后在该数据库中创建表,表名是”tb_user”。表的结构如下图所示:
不会写代码的杰尼
2022/05/19
6500
javaweb中怎样实现登录功能
jsp+Servlet创建简单登陆页面
登陆页面的主要功能-> 输入正确信息时跳转到welcome.jsp,并且浏览器保存正确信息 输入错误信息时显示“用户名或密码错误” . 再次登录时系统会显示保存的信息 . 4.未登录直接访问welcome.jsp时会提示请先登录 大体思路 -> 输入信息正确时,使用 response.sendRedirect重定向到welcome.jsp。 错误时,建立一个err,赋值“用户名或密码错误”,然后request.getRequestDispatcher请求转发到lo
且陶陶
2023/04/12
1.4K0
jsp+Servlet创建简单登陆页面
Filter、Listener 学习总结
  今天我们来介绍 Filter、Listener 这两个模块一些简单的知识和应用,接下来我们开始我们的正题 !   1. Filter(过滤器)     1.1 对 Servlet 容器调用 Servlet 的过程进行拦截,从而在 Servlet 进行响应的前后实现一些特殊的功能,我们需要知道 JSP 的底层实现也是 Servlet 所以所拦截的当然包括 JSP     1.2 如何写一个 FIiter?       a. 实现 Filter 接口(类似于 Servlet 接口,我们可以对比 Servle
bgZyy
2018/05/16
1.2K0
第75节:Java中的JSP,EL和JSTL
请求转发请求1次,只能对当前项目跳转,重定向请求2次.重定向是无法传递的,重定向对跳转范围没有限制.
达达前端
2019/07/03
1.4K0
第75节:Java中的JSP,EL和JSTL
jsp课程笔记之session(一)
客户端第二/n次请求服务端时:服务端会先用客户端cookie种的JSESSIONID 去服务端的session中匹配sessionid,如果匹配成功(cookie jsessionid和sesion sessionid),说明此用户 不是第一次访问,无需登录;
兮动人
2021/06/11
5140
jsp课程笔记之session(一)
Servlet Session基本概念和使用方法
Session是Web开发中的一种机制,用于在服务器端跟踪和管理用户的状态信息。它允许服务器在用户访问网站期间存储和检索与特定用户相关的数据。
久绊A
2023/12/23
2590
Servlet实现注册登录列表页面及其相互跳转功能
需求 注册页面添加登录链接 登录页面添加注册链接 注册成功跳转到登录页面 注册失败跳转到注册页面 登录成功跳转到用户列表页面 登录失败跳转到登录页面 分析 建库建表 一个连接数据库的DBUtil工具类 一个用户列表的model包 注册,登录,用户列表三个.java代码页面 三个.jsp页面 一个web.xml文件 代码实现 1. 创建DBUtil工具类 增删改查共同代码 package top.gaojc; import java.sql.Connection; import java.sql.Drive
是阿超
2021/10/15
1.9K0
初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面
1:JSP JSP的基本语法: 指令标识page,include,taglib; page指令标识常用的属性包含Language用来定义要使用的脚本语言;contentType定义JSP字符的编码和页
别先生
2017/12/29
2.3K0
初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面
java使用过滤器和监听器防止用户重复登录
相信很多小伙伴都使用QQ聊天工具,那是否遇到过这样的场景呢?当在一台电脑上已经登录QQ,此时因为某些原因需要在另一台电脑再登录相同号码的QQ,登录成功后会发现之前电脑上的QQ下线了。这就是QQ限制了同一个号码在电脑上不能重复登录,我们的Web程序也可以进行重复登录的限制,那么本次任务就是用过滤器和监听器来解决重复登录问题。具体任务如下:
害恶细君
2022/11/22
5340
java使用过滤器和监听器防止用户重复登录
JSP学习笔记
本文章是Java web 课的课堂笔记,一来觉得学东西的时候记录下来效率会比较高,二来记忆力下降明显,方便自己以后复习吧😁😁 JSP简介✨ JSP(Java Server Page,Java服务器页面)是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP是在传统的网页HTML文件中嵌入Java程序代码段和JSP标记,从而形成JSP文件,后缀名为“.jsp”。 JSP 开发环境搭建 首先配置 JDK 环境,如未安装,可参阅 Java 开发环境配置 然后配置JSP环境,如果你使用的是 E
小简
2022/12/29
8760
JSP学习笔记
推荐阅读
相关推荐
Javaweb02-jsp
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文